PowerShell Add-PSSnapIn来自高级(cmdlet)功能

时间:2010-07-01 13:51:34

标签: powershell powershell-v2.0

我想创建一个带有cmdlet函数的高级模块,该函数执行一些逻辑并添加一些pssnapins。这是代码:

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

export-module -function Add-DefaultSnapIns

如果我从任何一点调用该函数(例如,powershell提示符),操作都会成功,但是snapin在函数范围之外不可用。管理单元显示已注册,但其功能均未导出到全局范围。我怎么能解决它?

1 个答案:

答案 0 :(得分:4)

好的想法是,模块是自包含的,除了它们导出的cmdlet,函数和别名之外,不会将太多的“东西”溢出到全局会话空间中。最好在模块初始化时自己添加管理单元,然后通过Export-ModuleMember导出这些管理单元的cmdlet。