Powershell is hell

Solving “Unable to find repository ‘https://www.powershellgallery.com/api/v2’.”

So, you’re running a PowerShell command that requires a connection to PowerShell gallery, but you run into an error message, somewhat like this: “Unable to find repository ‘https://www.powershellgallery.com/api/v2’. This can happen when you’re running something like Install-Module or Update-Module. The whole error message might be somewhat like this: What gives? Posts Related to “Solving “Unable to find repository ‘https://www.powershellgallery.com/api/v2’.””:How to fix “System.InvalidOperationException: PowerShell Gallery is currently unavailable.”Getting Connect-MsolService (and other Azure Active Directory PowerShell cmdlets) to workHow to solve errors about missing PnP Cmdlets on…Continue reading Solving “Unable to find repository ‘https://www.powershellgallery.com/api/v2’.”

Printer's misbehaving? Nothing a bit of PowerShell wouldn't fix!

How to change printer paper size using PowerShell?

This article explains (with conveniently copy-pasteable code samples) how you can query your printers using PowerShell and modify properties, such as paper size, for one or more of them. Very useful, if you have multiple printers and multiple computers you use them from, AND if you frequently move between continents, you might face the same, totally typical and widespread issue: Your favorite printer might default to using “Letter” paper size, but you’d really need to get it printed in that sweet, sweet “A4” instead. And…Continue reading How to change printer paper size using PowerShell?

PowerShell not loading them DLLs

How to list all of the assemblies loaded in a PowerShell session?

In this article, I’ll do my best to explain how to list all loaded assemblies in a PowerShell session. See PowerShell is great at caching assemblies in the weirdest possible way, so ending up with all kinds of mismatches in loaded DLL versions is pretty typical. Or just being plainly blocked from loading a new one as you already have a cached reference in. I mean, I’ve ran into all kinds of issues even if I only use PowerShell occasionally. Or maybe that’s the reason.…Continue reading How to list all of the assemblies loaded in a PowerShell session?

Powershell is hell

How to fix “System.InvalidOperationException: PowerShell Gallery is currently unavailable.”

This article explains how to fix an issue when updating a module in PowerShell. The error is something along the lines of: “System.InvalidOperationException: PowerShell Gallery is currently unavailable. Please try again later.” The whole error looks something like the one below, although you can probably get it for many different commandlets. The main point is the latter part of the error: PowerShell Gallery is currently unavailable. This, quite simply, stops you from installing or updating any modules, as you can’t access the PowerShell gallery, that…Continue reading How to fix “System.InvalidOperationException: PowerShell Gallery is currently unavailable.”

Epic Visio Skills produced this cool illustration of Microsoft Teams extensibility!

How to fix a Teams team with no Owners?

As Teams adoption grows (partially driven by the megatrend of digitalization, partially by the massive surge in working from home due to Covid-19), different problems managing Teams also become more obvious. The growth seems to have been largely organic. Teams and organizations are adopting the tools that best help them get their work done with little regard to how the tools are maintained and best used. Teams are often created as needed, and by whoever needs them. The creator also becomes the owner – often,…Continue reading How to fix a Teams team with no Owners?

Obfuscation is the language of Gods.

Obfuscar 2.0 errors with loading types from assembly

I plugged Obfuscar into my build pipeline (the easiest configuration ever, by the way) because I needed to obfuscate a DLL I was going to push as a NuGet package. The DLL was obfuscated without changing any of the public APIs, Classes or Parameters – only internal stuff was scrambled. Simple stuff. Essentially, the article linked below describes what I was working towards: However, I wasn’t quite having the success I hoped for. Whilst the obfuscation was successful, and I could even reference the obfuscated…Continue reading Obfuscar 2.0 errors with loading types from assembly

PowerShell not loading them DLLs

How to resolve issues when loading DLLs in PowerShell?

This post describes a few different things that can (and will) go wrong when you’re trying to load DLLs in PowerShell, and a couple of ways you can try to fix them. Typically, you’d run into an error message like “Exception calling LoadFrom with 1 argument(s): Could not load file or assembly…. “ These issues most typically arise when you’re running a PowerShell script that depends on certain DLLs to be loaded (to then execute some of the methods from them). This could happen kind…Continue reading How to resolve issues when loading DLLs in PowerShell?

PowerShell commandlet "new-unifiedgroup" - The alias is being used by another group in your organization. Please try a different alias.

How to resolve the error “The alias is being used by another group in your organization”

Okay – another simple one. When you’re creating a new Office Group (or “Unified Group”, like they’re called as well), you might get an error for the alias already being used. Pretty simple, but still – let’s see how to fix it. Problem So, this error pops up, while you’re trying to create a new Office Group: The alias is being used by another group in your organization. Please try a different alias. An example script & output is shown below: # Historically, Groups have…Continue reading How to resolve the error “The alias is being used by another group in your organization”

SharePoint PnP logo

Another fix to “Connect-PnPOnline : The sign-in name or password does not match one in the Microsoft account system.”

This post describes a simple way to get around the following error while running Connect-PnPOnline: “The sign-in name or password does not match one in the Microsoft account system.” Truthfully, this one is kind of simple and stupid – but as I’ve seen before, it’s surely worth documenting anyway! Below is an example of such error. PS C:\> Connect-PnPOnline https://contoso.sharepoint.com/sites/CommunicationSite/ Connect-PnPOnline : The sign-in name or password does not match one in the Microsoft account system. At line:1 char:1 + Connect-PnPOnline https://contoso.sharepoint.com/sites/CommunicationS … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…Continue reading Another fix to “Connect-PnPOnline : The sign-in name or password does not match one in the Microsoft account system.”

How to revert Modern view back to Classic for SharePoint libraries using PowerShell

If your customers are anything like ours, some of them love the new modern library view, some will adjust and some just hate it and want to get as far away from it as possible. While embracing the new stuff is usually smart, there’s some value to sticking to what works as well. The Modern view is going to be the superior choice of the two (if it isn’t already!), but there are a multitude of reasons why one might want to revert to the…Continue reading How to revert Modern view back to Classic for SharePoint libraries using PowerShell

entity-framework-logo

EntityFramework Core – Update-Database error “The EntityFramework package is not installed”

Another weird, but simple issue I ran into when building a simple .NET Core application. The article should apply to pretty much any .NET Core version, but the version I was on was 2.2. I was just minding my own business, crafting since bits of code into something remotely functional, while I ran into an issue. While trying to apply my changes to the database using .NET Core Entity Framework, executing Update-Database simply failed with the following error: The EntityFramework package is not installed You…Continue reading EntityFramework Core – Update-Database error “The EntityFramework package is not installed”

If you could just fix SharePoint... That would be great.

Solving yet another “Microsoft.SharePoint.Client.ServerException: Unknown Error”

There’s maybe a thousand things that can throw an “Microsoft.SharePoint.Client.ServerException”, but a bit smaller amount of things, that are ambiguous enough to be called “Unknown error”. This post describes one, fairly usual fix for this issue! But let’s get back to the beginning for a second – you get what and when now? When running any code, that provisions new sites (much like https://www.koskila.net/new-pnpsite-fails-with-sitestatus3/), you get an error like this almost immediately: Microsoft.SharePoint.Client.ServerException: Unknown Error at Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream) at Microsoft.SharePoint.Client.ClientRequest.ProcessResponse() at Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb) at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()…Continue reading Solving yet another “Microsoft.SharePoint.Client.ServerException: Unknown Error”

Get-Command -Module AzureRM.Profile. You're seeing it correctly - it doesn't have a Logout-AzureRmAccount, Disconnect-AzureRmAccount, Remove-AzureRmAccount or even Remove-AzureRmContext commandlets! That's a lot of fun :)

Oh no! PowerShell cached my Azure credentials and I messed up wrong customer’s environment!

Whoops. Could happen to anyone, since the Azure PowerShell since (approximately) version 6.3.0 will cache your credentials between sessions without warning you. It’s really easy to run your commands with cached accounts, and end up executing your scripts against the wrong environment. In less serious cases, this means that you’ll end up running commandlets twice against the test environment, while you think you’re running them first against test, and then production. In more serious cases, you’ll deploy your ARM templates or run your cleanup scripts against wrong…Continue reading Oh no! PowerShell cached my Azure credentials and I messed up wrong customer’s environment!

If you could just fix SharePoint... That would be great.

Fixing “-2147024891, System.UnauthorizedAccessException” when accessing SharePoint SOAP Web Services

This article explains how to fix error 2147024891 (or sometimes -2147024891), “System.UnauthorizedAccessException” when accessing functionality in SharePoint that’s built on top of SOAP Web Services. In a sense, we’re delving into some legacy stuff – Microsoft has still kept SOAP-based SharePoint Web Services included in the product, since a lot of functionality has been built on top of them. We encountered the issue where you suddenly started getting exceptions for Unauthorized Access (-2147024891, System.UnauthorizedAccessException) for accessing list items, no matter if you actually had access…Continue reading Fixing “-2147024891, System.UnauthorizedAccessException” when accessing SharePoint SOAP Web Services

SharePoint PnP logo

How to fix Add-PnPApp failing with an Access Denied error

This was a peculiar case! An issue I hadn’t run into before, and luckily a disturbingly simple fix. But first, let’s set up the scene: We were running a long-ish PowerShell script using a Global Administrator account. One part of the script was supposed to add and deploy a couple of SharePoint apps. But while running Add-PnPApp, we ran into errors: Add-PnPApp -Path $path -Scope $app.Scope -ErrorAc… , Error: {“error”:{“code”:”-2147024891, System.UnauthorizedAccessException”,”message”:{“lang”:”en-US”,”value”:”Access denied. You do not have permission to perform this action or access this resource.”}}}…Continue reading How to fix Add-PnPApp failing with an Access Denied error

SharePoint PnP logo

New-PnPSite fails with “SiteStatus” : 3

While running “New-PnPSite” or actually any other site creation, method in PowerShell or programmatically, the site creation fails and you get an error like the one below back: Ouch! Where does this come from? In the code of New-PnPSite, the actual function call is shown below: (Source) So, the error is not thrown by PnP cmdlet, but rather comes from SharePoint CSOM. This is pretty normal and not surprising, but means we can’t debug it that much, as CSOM is not open source. Alright –…Continue reading New-PnPSite fails with “SiteStatus” : 3

"Get-UnifiedGroup" cmdlet produces a list of your Office 365 Groups with some default properties shown

How to fix an Office Group with no Owners

This post explains how to add new Owners to your Office Groups using PowerShell. If your group has ended up without any owners, PowerShell might even be the only option, since the graphical user interfaces for Office Groups management are not that good.  Background The hype around Office Groups kind of died down a little bit a while back, since their role wasn’t that clear – they didn’t really do much, and were confusing for end users. Back then, I posted about them replacing Site…Continue reading How to fix an Office Group with no Owners

PowerShell header

Properly checking if an item in a folder is a Directory or not in PowerShell

Got a great tip from a colleague, on how to properly check if an item is a file or a directory. In one case, we weren’t really ever sure, if another script had finished its running and unzipped a certain zip package into a folder – and we had to verify it had, before continuing the execution. Our initial implementation worked most of the time… But not quite always. The purpose of this blog post is to explain how we found a pretty well working…Continue reading Properly checking if an item in a folder is a Directory or not in PowerShell

Get-MsolServicePrincipalCredential - how to get the expiration date for a clientId

Fastest way to verify your Client Id and Client Secret are valid with PowerShell

So, you have a Client Id and a Client Secret, but don’t know if they work anymore? Maybe they are expired? Maybe someone removed them? No worries! We can use PowerShell to validate them easily! This article explains a simple way to validate and debug your client id and client secret using PowerShell. Solution By using PowerShell, it’s fairly straightforward to verify, that your Client Id and Client Secret work. See the snippets below for the 2 different steps: Posts Related to “Fastest way to…Continue reading Fastest way to verify your Client Id and Client Secret are valid with PowerShell

PowerShell header

How to get the user count for Azure AD Enterprise Application

Have you ever tried to find out the number of users of an enterprise application in your Office 365 tenant? This could be needed for multiple different reasons: maybe your organization is paying for the app and you want to know who’s actually using it, maybe the usage is required by a company policy and it’s useful to know if organization’s members are actually using it, or maybe you just want to know about the user adoption of an app. For apps with under 100…Continue reading How to get the user count for Azure AD Enterprise Application