Problem
When trying to update a module from PSGallery (PSWindowsUpdate in this case), the package manager claims that the PSGallery repository does not exist with one of the following errors.
- “ Unable to find repository ‘https://www.powershellgallery.com/api/v2/’.”
- “ Unable to find repository ‘PSGallery’.”
Analysis
There seems to be a problem with the URL for the PSGallery repository missing a trailing slash, as I could find a lot of posts about this online. If we do a Get-PSRepository and compare this with a Get-InstalledModule –Name PSWindowsupdate|fl we can see that the URL differs:
There is also something wrong with the link between the repository and the package, the repository line above should say PSGallery, not https://www.powershellgallery.com/api/v2/.
I do not know why or when this happened, but sometime in the second half of 2018 is my best guess based on the last time we patched PSWindowsUpdate the servers in question.
The PackageManagement version installed on these servers were rather old, version 1.0.0.1. Come to think of it, the PackageManagement moved to PSgallery itself at some point, but this version is not as it is found using Get-Module, and not Get-InstalledModule:
Solution
After a long and winding path I have come up the following action plan:
- Update the NuGet provider.
- Uninstall the “problem” module.
- Unregister the PSGallery repository.
- Re-register the PSGallery repository.
- Install the latest version of PowerShellGet from PSGallery.
- Reinstall the problem module.
- Reeboot to remove the old PackageManagement version.
You can find a sample Powershell script using PSWindowsUpdate as the problem module below. If you have multiple PSGallery modules installed, you may have to re-install all of them.
Install-PackageProvider Nuget –Force Uninstall-Module PSWindowsupdate Unregister-PSRepository -Name 'PSGallery' Register-PSRepository -Default Get-PSRepository Install-Module –Name PowerShellGet -Repository PSGallery –Force install-module -Name PSWindowsUpdate -Repository PSGallery -Force -Verbose