为什么 Uninstall-ChocolateyPackage cmdlet 无法识别?

die*_*gus 3 powershell chocolatey

我正在尝试运行 PowerShell 脚本以owncloud-client从 Windows 10 虚拟机中卸载。下面显示的代码可以在以下位置找到

https://chocolatey.org/packages/owncloud-client (tools\chocolateyUninstall.ps1)

我只想通过从 PowerShell 运行代码来测试代码,看看它是否确实卸载了软件。

$unfile = "ownCloud\uninstall.exe"

if (Test-Path "${Env:ProgramFiles(x86)}\$unfile") {
  $unpath = "${Env:ProgramFiles(x86)}\$unfile"
} else {
  $unpath = "${Env:ProgramFiles}\$unfile"
}

Uninstall-ChocolateyPackage 'owncloud-client' 'exe' '/S' "$unpath"
Run Code Online (Sandbox Code Playgroud)

我通过键入以下内容从包含该脚本的目录运行脚本:

.\chocolateyUninstall.ps1
Run Code Online (Sandbox Code Playgroud)

作为输出,我收到以下错误:

Uninstall-ChocolateyPackage  is not recognized as the name of cmdlet, function, script file, or operable program.
Run Code Online (Sandbox Code Playgroud)

Uninstall-ChocolateyPacakge.ps1 软件包由 Chocolatey 提供。我检查了我的机器,这个包位于:

C:\ProgramData\chocolatey\helpers\functions\Uninstall-ChocolateyPackage.ps1
Run Code Online (Sandbox Code Playgroud)

但它仍然不被 powershell 识别为 cmdlet。我怎么解决这个问题?谢谢

Gar*_*ark 5

运行安装/卸载脚本时,Chocolatey 首先包含 Chocolatey PowerShell 模块。这是在后台完成的,通常,最终用户不需要担心它。

对于您想要执行的操作,您需要首先Import-Module对 Chocolatey 模块执行操作,将其带入当前的 PowerShell 会话。你可以在这里找到这个:

老的:C:\ProgramData\chocolatey\lib\chocolatey\tools\chocolateyInstall\helpers\chocolateyInstaller.psm1

新的:C:\ProgramData\chocolatey\helpers\chocolateyInstaller.psm1

这应该允许您直接测试脚本。

或者,您可以运行软件包的安装,然后运行卸载以查看它是否也有效。