Powershell is hell

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

Reading Time: 2 minutes.

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.

Failed updating module 'SharePointPnPPowerShellOnline' version 3.19.2003.0. Update the module and then try again. Error Could not execute Command. The error: System.InvalidOperationException: PowerShell Gallery is currently unavailable.  Please try again later.

Luckily, like usual, there are a few ways to fix this!

Solution

Time needed: 10 minutes.

How to fix “System.InvalidOperationException: PowerShell Gallery is currently unavailable.” in 1 to 5 easy steps

  1. Verify whether you have a recent enough PowerShell version

    Run this:

    Get-Host | Select-Object Version

    If it’s 5.1 or newer, you’re probably good! If not, download latest version here: https://www.microsoft.com/en-us/download/details.aspx?id=54616

  2. Verify you have the right repository

    Run this commandlet in your PowerShell:

    Get-PSRepository

    Your output is somewhat like this:

    Name InstallationPolicy SourceLocation
    ---- ------------------ --------------
    PSGallery Untrusted https://www.powershellgallery.com/api/v2


    There’s 3 things that COULD be wrong in this case. Depending on the exact error message you got, either:
    1) The source needs to be trusted (see step 3)
    2) The SourceLocation is not accessible (see step 4)
    3) The SourceLocation URI needs to end with ‘/’ (see step 5)

  3. Set your PSGallery to be trusted

    Run the following commandlet:

    Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted

    If you get an error like this:

    Get-PSGalleryApiAvailability : PowerShell Gallery is currently unavailable. Please try again later.

    Then you can’t access the URI either because it doesn’t have a trailing slash (see step 5) or because it’s not accessible (see step 4)

  4. Verify you have access to the URI

    Open up your browser and navigate to this address:
    https://www.powershellgallery.com/api/v2/

    If you get something like the screenshot below, you access this address, but your PowerShell can’t.

    The expected XML output of https://www.powershellgallery.com/api/v2/

    In this case your PowerShell is probably unable to access it due to a mismatch in TLS versions – try running this commandlet to enable TLS 1.2 and see if it helps:

    [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

  5. Fix the PSGallery’s URI

    In case the PSGallery URI does not end with a trailing slash, run the following commands (this’ll set the new PSRepository to be Trusted as well):

    Unregister-PSRepository PSGallery
    Register-PSRepository -Name PSGallery -SourceLocation "https://www.powershellgallery.com/api/v2/" -InstallationPolicy Trusted


    If you get an error after running this, you can also try naming your Repository something else.


And with that, you should be good!

mm
0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments