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

时间:2016-02-22 16:35:10

标签: powershell chocolatey

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

找到

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"

我通过typying:

从包含它的目录运行脚本
.\chocolateyUninstall.ps1

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

Uninstall-ChocolateyPackage  is not recognized as the name of cmdlet, function, script file, or operable program.

Uninstall-ChocolateyPacakge.ps1包由chocolatey提供。我检查了我的机器,这个包裹在下面:

C:\ProgramData\chocolatey\helpers\functions\Uninstall-ChocolateyPackage.ps1

但仍然没有被PowerShell识别为cmdlet。我怎么解决这个问题?感谢

2 个答案:

答案 0 :(得分:3)

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

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

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

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

或者,您可以运行安装包,然后运行卸载以查看它是否也能正常工作。

答案 1 :(得分:1)

使用最新的审核工具,您无需检查每个包装(我的意思是,除非它让您感觉更安全)。您始终可以检查自动化测试。包标题右侧有一个状态点。

enter image description here

您可以找到测试摘要

  

owncloud-client v2.1.1.5837 - 通过 - 包测试结果

     

https://chocolatey.org/packages/owncloud-client/2.1.1.5837   测试2016年2月10日12:51:22 +00:00   针对win2012r2x64进行测试(Windows Server 2012 R2 x64)   测试了最新版本的choco,可能是测试版。   使用chocolatey-package-verifier服务v0.4.0-15-g979d0cc进行测试   安装成功。   卸载成功。

https://gist.github.com/choco-bot/45f343e23cc12e101130#file-_summary-md

或直接浏览卸载日志。

https://gist.github.com/choco-bot/45f343e23cc12e101130#file-uninstall-txt