Reputation: 6944
Win10 laptop, in service for a couple years.
I tried this command:
Install-Module –Name PowerShellGet –Force -AllowClobber
Which throws this error:
WARNING: The version '1.4.7' of module 'PackageManagement'
is currently in use. Retry the operation after closing the applications.
I can see in task manager there are no other sessions of powershell running.
I can exit all the sessions, and run this from a plain cmd:
powershell -NoProfile -Command "Install-Module -Name PowerShellGet -Force -AllowClobber"
And I get the SAME error.
OK, so I exit all powershell instances (as seen in Details tab of taskmgr) and do this:
powershell -NoProfile -Command "Uninstall-Module PowerShellGet"
powershell -NoProfile -Command "Install-Module -Name PowerShellGet -Force -AllowClobber"
And I get the same error.
So I do the uninstall again, (which runs without messages or errors). And I take out the big guns... powershell.exe is not running, and I navigate to:
C:\Users\$user\Documents\WindowsPowerShell\Modules\PackageManagement\1.4.7
And I delete the 1.4.7 directory.
And the commands above run with the same behavior and same error.
How do I move past this?
Additional Background:
PS C:\WINDOWS\system32> Get-Module -ListAvailable PowerShellGet,PackageManagement
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.4.7 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Binary 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Script 2.2.5 PowerShellGet {Find-Command, Find-DSCResource, Find-Module, Find-RoleCap...
Script 1.0.0.1 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module...}
PS C:\WINDOWS\system32> Get-Module -ListAvailable PowerShellGet,PackageManagement | % path
C:\Program Files\WindowsPowerShell\Modules\PackageManagement\1.4.7\PackageManagement.psd1
C:\Program Files\WindowsPowerShell\Modules\PackageManagement\1.0.0.1\PackageManagement.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2.5\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1
Also Tried
Limiting scope to current user:
PS C:\WINDOWS\system32> Install-Module -Name PowerShellGet -Force -Scope CurrentUser
WARNING: The version '1.4.7' of module 'PackageManagement' is currently in use. Retry the operation after closing the
applications.
PS C:\WINDOWS\system32> exit
# OK, check taskmgr that all powershell.exe have exited, and run the below
C:\WINDOWS\system32>powershell -command "Install-Module -Name PowerShellGet -Force -Scope CurrentUser"
WARNING: The version '1.4.7' of module 'PackageManagement' is currently in use. Retry the operation after closing the
applications.
SOLUTION
I did not track exactly the step, but one of the comments below led to a path that did resolve.
One of the tricks was to watch the process list, and to be sure that all vscode and other powershell-loading process were terminated prior to doing the update.
Upvotes: 26
Views: 61083
Reputation: 1294
Was getting this error in PS 7.
Opened Windows PS 5.1 and did
Install-PackageProvider -Name NuGet -Force
Reboot.
Upvotes: 0
Reputation: 46
I had Two PowerShellGet Modules deployed to C:\Program Files\WindowsPowerShell\Modules\PowerShellGet , removing the 2.2.5 version fixed this for me
Upvotes: 0
Reputation: 569
I was able to fix this by running the command below in an admin PowerShell:
Update-Module -Name PowerShellGet -RequiredVersion 2.2.5.1
Hope this helps others!
Source: https://github.com/PowerShell/PowerShellGetv2/issues/599
Updated the version to 2.2.5.1 as the latest version on PowerShellGet
Source: https://github.com/PowerShell/PowerShellGetv2/blob/master/CHANGELOG.md
Upvotes: 20
Reputation: 41
I'm using PS 7 and was having the same problem.
Steps I followed to fix the issue...:
$env:PSModulePath -split ';'
. Result was list of paths where modules are stored as per scope (read here for more on the topic).List of Paths:
- C:\Users\**USER**\OneDrive - Microsoft\Documents\PowerShell\Modules
- C:\ProgramFiles\PowerShell\Modules
- **c:\program files\powershell\7\Modules**
- C:\Program Files\WindowsPowerShell\Modules
- C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
- C:\Program Files (x86)\Microsoft Azure Information Protection\Powershell
Get-InstalledModule
to make sure I PackageManagement is not there anymoreInstall-Module -name PowerShellGet -RequiredVersion 2.2.5 -Force
to install PowerShellGet.and job's a good'un! At least for me :)
Upvotes: 3
Reputation: 39
I don't have the rep to post a comment, but James Graham's post suggesting using the Update-Module worked for me too. Exact same issue, with the exact same version numbers, almost a year later. Yet, I just checked and there's now a 3.0.12 beta available which requires the code below:
Install-Module -Name PowerShellGet -AllowPrerelease -Force
I tried for a while to figure out the syntax highlighting but to no avail.
Upvotes: 3