我有一组PowerShell脚本,它们有时一起运行,有时一次运行一个。每个脚本都需要加载某个管理单元。
现在,每个脚本都在一开始调用Add-PSSnapin XYZ。
现在,如果我连续运行多个脚本,则后续脚本将抛出:
无法添加PowerShell管理单元XYZ,因为它已添加警报。请验证管理单元的名称,然后重试。
如何让每个脚本在调用Add-PSSnapin之前检查管理单元是否已加载?
发布于 2009-09-25 16:09:40
您应该能够这样做,您可以查询管理单元,但告诉PowerShell如果找不到它就不要出错:
if ( (Get-PSSnapin -Name MySnapin -ErrorAction SilentlyContinue) -eq $null )
{
Add-PsSnapin MySnapin
}发布于 2009-09-25 16:41:35
斯科特已经给你答案了。您也可以加载它,如果它已经加载,则忽略该错误:
Add-PSSnapin -Name <snapin> -ErrorAction SilentlyContinue发布于 2014-11-20 18:18:54
令人惊讶的是,没有人提到脚本指定依赖项的本机方法:#REQUIRES -PSSnapin Microsoft.PowerShell...注释/预处理器指令。同样,您可能需要使用-RunAsAdministrator的提升,使用-Modules Module1,Module2的模块,以及特定的运行空间版本。
通过键入Get-Help about_requires阅读更多信息
https://stackoverflow.com/questions/1477994
复制相似问题