Load-Module эквивалентен в PowerShell v1 - PullRequest
3 голосов
/ 13 января 2011

По причинам переносимости скриптов мне нужно динамически загружать оснастки в скрипте PowerShell. Это легко достигается в PowerShell v2 с помощью функции Load-Module. Мне нужно запустить этот конкретный сценарий на компьютере, где я по разным причинам не хочу устанавливать PowerShell v2, но имею v1.

Существует ли эквивалент Load-Module в PowerShell v1?

Ответы [ 2 ]

4 голосов
/ 13 января 2011

Вы имеете в виду Import-Module?Если так, то это зависит от того, как определен модуль.Если это DLL-библиотека оснастки, то оснастка должна быть установлена ​​на машине V1, и тогда вы будете использовать Add-PSSnapin.Если он находится в .psm1 файле, то вам нужно будет переименовать файл в .ps1, а затем вы можете попытаться поставить его в точку, например . .\mymodule.ps1.Однако, если он использует какую-либо функцию v2, такую ​​как Export-ModuleMember, вам необходимо закомментировать их.И v1 не будет знать, что делать с файлом .psd1.

2 голосов
/ 16 января 2011

Import-Module загружает модули, а модули предназначены только для V2.

PowerShell V1 имел «оснастки», написанные на языке .NET (C #, VB, ...), но не сценарий PowerShell и загруженные в сеанс с Add-PSSnapin (оснастки также поддерживаются в V2, но модули обладают расширенным набором возможностей оснастки, поэтому придерживайтесь модулей, если невозможно выполнить обновление до V2).

...