如何卸载旧版本的模块

lit*_*lit 7 powershell

系统似乎安装了两 (2) 个版本的 PowerShellGet 模块。

Script     2.2        PowerShellGet
Script     1.0.0.1    PowerShellGet
Run Code Online (Sandbox Code Playgroud)

如何卸载旧版本?该Uninstall-Module命令似乎正在2.2目录中查找。这是为什么?

>Uninstall-Module -Name 'PowerShellGet' -RequiredVersion '1.0.0.1'
PackageManagement\Uninstall-Package : No match was found for the specified search criteria and module names 'PowerShellGet'.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.2\PSModule.psm1:12655 char:21
+ ...        $null = PackageManagement\Uninstall-Package @PSBoundParameters
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...ninstallPackage:UninstallPackage) [Uninstall-Package], Exception
    + FullyQualifiedErrorId : NoMatchFound,Microsoft.PowerShell.PackageManagement.Cmdlets.UninstallPackage
Run Code Online (Sandbox Code Playgroud)

当我尝试指定旧版本时,它会报告新版本。

>Get-Module -FullyQualifiedName @{ModuleName="PowerShellGet";ModuleVersion="1.0.0.1"}

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     2.2        PowerShellGet                       {Find-Command, Find-DscResource, Find-Module, Find-RoleCapability...}

>($PSVersionTable.PSVersion).ToString()
5.1.14409.1018
>(Get-CimInstance -ClassName Win32_OperatingSystem).Caption
Microsoft Windows 7 Enterprise
Run Code Online (Sandbox Code Playgroud)

HAL*_*256 8

简短的回答:

您不能卸载用的东西PowerShellGet,如果它没有安装PowerShellGet

长答案:

PowerShellGet v1.0.0.1作为 Windows 的一部分安装,并且不使用PowerShellGet(自然)。因此,你为什么不能使用PowerShellGetUninstall-Module它。

PowerShellGet v2.2在另一方面,安装了PowerShellGet,所以你可以 Uninstall-Module吧。您也可以更新它等。

如果你真的要卸载 v1.0.0.1 版本,你必须按照以下 步骤操作

  1. 浏览到 C:\Program Files\WindowsPowerShell\Modules\
  2. 进入C:\Program Files\WindowsPowerShell\Modules\PowershellGet文件夹,删除子文件夹1.0.0.1
  3. 然后同样操作C:\Program Files\WindowsPowerShell\Modules\PackageManagement,删除子文件夹1.0.0.1