在 PowerShell 中使用 Chocolatey 辅助函数

Jan*_*n H 7 powershell chocolatey

Chocolatey辅助函数旨在在 Chocolatey 包脚本中使用。

注意:这些脚本适用于包脚本,不能直接在 PowerShell 中使用。这是在创建包部分,而不是使用 Chocolatey 部分。

不过,有一些有用的辅助函数,例如 Install-ChocolateyPinnedTaskBarItem我想在 PowerShell 控制台中尝试一下。

有什么方法可以在 PowerShell 控制台中运行这些辅助函数吗?

Tar*_*aro 5

您要导入的内容位于文件中 C:\ProgramData\chocolatey\helpers\chocolateyInstaller.psm1

但这也可能取决于用户 - 有人可能会覆盖巧克力安装并将其放在其他文件夹中。

但您只想在必要时使用相同的辅助函数,否则不使用。

您可以在脚本的开头使用以下脚本.ps1

if( -not ( get-command Install-ChocolateyPackage -erroraction silentlycontinue ) ) {
    Write-Host "Importing chocolateyInstaller.psm1..."
    Import-Module C:\ProgramData\chocolatey\helpers\chocolateyInstaller.psm1 #-Verbose
}
Run Code Online (Sandbox Code Playgroud)

在这里,我检查函数是否Install-ChocolateyPackage已导入 - 如果没有 - 则按默认路径导入。

不需要后删除Write-Host并发表评论。#- Verbose


Gar*_*ark 2

在大多数情况下,这些辅助函数应该“正常”工作。您可以将 Chocolatey PowerShell 模块加载到当前的 PowerShell 会话中并使用帮助程序函数。

事实上,实际上有一个 Chocolatey 扩展可以做到这一点,以帮助创建 Chocolatey 包:

https://chocolatey.org/packages/chocolateypowershell

但是,应该注意的是,在执行 Chocolatey 本身时,这些 PowerShell 函数中使用的某些变量和其他内容可能无法正确设置。执行时,Chocolatey 实际上创建了自己的 PowerShell 主机,并按照成功执行所需的方式进行设置。可能是直接加载 PowerShell 模块并没有设置所有事情完全按照预期工作所需的一切。

话虽如此,更简单的帮助函数(例如您提到的 Install-ChocolateyPinnedTaskBarItem)应该可以正常工作。