我想创建一个带有cmdlet函数的高级模块,该函数执行一些逻辑并添加一些pssnapins。这是代码:
function Add-DefaultSnapIns
{
[CmdletBinding()]
param()
begin {}
process {
# ...
Add-PsSnapIn SnapInName
}
end {}
}
export-module -function Add-DefaultSnapIns
如果我从任何一点调用该函数(例如,powershell提示符),操作都会成功,但是snapin在函数范围之外不可用。管理单元显示已注册,但其功能均未导出到全局范围。我怎么能解决它?
答案 0 :(得分:4)
好的想法是,模块是自包含的,除了它们导出的cmdlet,函数和别名之外,不会将太多的“东西”溢出到全局会话空间中。最好在模块初始化时自己添加管理单元,然后通过Export-ModuleMember导出这些管理单元的cmdlet。