Powershell Get-Module 显示已安装,Uninstall-Module 显示未找到

Powershell Get-Module 显示已安装,Uninstall-Module 显示未找到

如何卸载模块以便 Get-Module 不再报告找到该模块?

> Get-Module -list -Name Pester

ModuleType Version    Name  
---------- -------    ----  
Script     3.4.0      Pester

> Uninstall-Module -Name Pester

PackageManagement\Uninstall-Package : No match was found for the specified search criteria and module names 'Pester'.

答案1

下面的操作很好地删除了 pester 3.4.0。
下面操作需要使用参数运行-RunAsAdministrator

$modulePath = "C:\Program Files\WindowsPowerShell\Modules\Pester"
if (-not (Test-Path $modulePath)) {
    "There is no Pester folder in $modulePath, doing nothing."
    break
}

takeown /F $modulePath /A /R
icacls $modulePath /reset
icacls $modulePath /grant Administrators:'F' /inheritance:d /T
Remove-Item -Path $modulePath -Recurse -Force -Confirm:$false

解决方案已采取来自 GitHub

然后我就可以运行以下命令......

Install-Module Pester -Force -Scope CurrentUser

...然后验证。

附言:
的输出C:\WINDOWS\system32> get-installedmodule是:

Version    Name            Repository      Description
-------    ----            ----------      -----------
1.1.183.17 MSOnline        PSGallery       Microsoft Azure Active Directory Module for Wind...
4.9.0      Pester          PSGallery       Pester provides a framework for running BDD styl...

希望有帮助:)

答案2

您所提到的特定软件包的问题在于它非常特殊。纠缠电源外壳用于测试的模块电源外壳模块。

您在示例中提到的版本3.4.0也可能是随附的版本微软 视窗 电源外壳集成 Shell 脚本环境 (IS-SE),并且也可以更新。

因此,摘录中出现的错误消息由Uninstall-Module 微软 视窗 电源外壳Command-Let 可能会产生误导。这并不意味着纠缠模块不存在,但微软 视窗 电源外壳环境不允许卸载它。它已被这样编码。

答案3

如果你正在使用 OneDrive,你可能会遇到这个错误:https://github.com/PowerShell/PowerShellGet/issues/509

似乎 Get-InstalledModule 和 Uninstall-Module 不能正确处理指向 OneDrive 的 Documents 文件夹并报告未安装模块。

相关内容