PowerShell Add-PSSnapIn из расширенной функции (командлет) - PullRequest
2 голосов
/ 01 июля 2010

Я хотел бы создать расширенный модуль с функцией командлета, который выполняет некоторую логику и добавляет некоторые pssnapins.Это код:

function Add-DefaultSnapIns
{
    [CmdletBinding()]
    param()
    begin {}
    process {
        # ...
        Add-PsSnapIn SnapInName
    }
    end {}
}

export-module -function Add-DefaultSnapIns

Если я вызываю функцию из любой точки (например, из командной строки powershell), операция завершается успешно, но оснастка недоступна вне области действия функции.Оснастка выглядит зарегистрированной, но ни одна из ее функций не была экспортирована в глобальную область.Как я мог решить это?

1 Ответ

4 голосов
/ 01 июля 2010

Идея состоит в том, что модули являются самодостаточными и не проливают слишком много своих «вещей» в глобальное пространство сеанса, кроме экспортируемых ими командлетов, функций и псевдонимов.Возможно, было бы лучше добавить оснастки как часть инициализации модуля, а затем экспортировать командлеты этих оснасток через Export-ModuleMember.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...