Используйте вспомогательные функции Chocolatey в PowerShell

вспомогательные функции Chocolatey предназначены для использования в сценариях пакета Chocolatey.

ПРИМЕЧАНИЕ. Эти сценарии предназначены для сценариев пакетов, а не для использования непосредственно в PowerShell. Это находится в разделе создания пакетов, а не в разделе использования Chocolatey.

Однако есть несколько полезных вспомогательных функций, таких как Install-ChocolateyPinnedTaskBarItem, которые я хотел бы попробуйте в консоли PowerShell.

Можно ли как-нибудь запустить эти вспомогательные функции в консоли PowerShell?


person Jan H    schedule 10.09.2018    source источник
comment
С какой проблемой вы столкнулись? Я не понимаю, почему вы не можете просто запустить эти функции, просто потому, что это говорит, что вы не должны этого делать.   -  person Clijsters    schedule 10.09.2018


Ответы (3)


По большей части эти вспомогательные функции должны «просто» работать. Вы можете загрузить модули Chocolatey PowerShell в текущий сеанс PowerShell и использовать вспомогательные функции.

На самом деле существует расширение Chocolatey, которое делает именно это, чтобы помочь с созданием пакетов Chocolatey:

https://chocolatey.org/packages/chocolateypowershell

Однако следует отметить, что некоторые переменные и другие вещи, используемые в этих функциях PowerShell, могут быть неправильно установлены при выполнении самого Chocolatey. При выполнении Chocolatey фактически создает свой собственный хост PowerShell и настраивает все так, как это необходимо для успешного выполнения. Возможно, прямая загрузка модулей PowerShell не настраивает все, что требуется для того, чтобы все работало именно так, как задумано.

Сказав это, более простые вспомогательные функции, например упомянутый вами Install-ChocolateyPinnedTaskBarItem, должны работать нормально.

person Gary Ewan Park    schedule 10.09.2018

Материал, который вы хотите импортировать, находится в файле 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
}

Здесь я проверяю, была ли уже импортирована функция Install-ChocolateyPackage, если нет, то импортировать по пути по умолчанию.

Удалите комментарии Write-Host и #- Verbose, если они вам не нужны.

person TarmoPikaro    schedule 23.06.2020

Да, я хочу того же, чтобы протестировать несколько полезных вспомогательных функций в консоли PowerShell.

Для того, что мы пытаемся сделать, вам нужно будет сначала выполнить Import-Module в модуле Chocolatey, чтобы включить его в текущий сеанс PowerShell. Вы можете найти это здесь: C:\ProgramData\chocolatey\lib\chocolatey\tools\chocolateyInstall\helpers\chocolateyInstaller.psm1

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

Это должно позволить вам напрямую протестировать скрипт и все остальные справочники помощников шоколада.

Другой альтернативой является установка chocolateypowershell, вы можете запустить установку пакета, а затем запустить шоколадные вспомогательные функции, чтобы посмотреть, работает ли он. https://chocolatey.org/packages/chocolateypowershell

person Community    schedule 17.07.2019