PowerShell SnapIns之间的Cmdlet争用

时间:2010-08-05 03:03:59

标签: powershell powercli pssnapin

我在使用PowerShell的Vmware PowerCLI和System Center Virtual Machine Manager管理单元时遇到了问题。它们都包含类似命名的cmdlet,如“Get-VM”和“Get-VMHost”。似乎加载的最后一个管理单元获胜,因此我在脚本中添加了逻辑以加载&当我需要获取VMware数据或Hyper-V数据时,卸载管理单元。我想知道是否有任何方法可以防止这种争用,或者为一个cmdlet创建一些独特的句柄,同时仍然允许另一个cmdlet加载&按预期运作?

2 个答案:

答案 0 :(得分:2)

使用snapins时的最佳方法是使用管理单元名称完全限定cmdlet名称。例如,如果PowerCLI的管理单元名称是PowerCLI,则使用:

PowerCLI\Get-VM

对于SCVMM管理单元,使用它的名称作为前缀。要查看管理单元名称,请执行:

Get-PSSnapin -Registered

答案 1 :(得分:2)

对于搜索VMware的vSphere PowerCLI snapin cmdlet的实际命名空间/前缀的任何人来说,它是:

VMWare.VimAutomation.Core

因此,上述示例的实际前缀是:

VMware.VimAutomation.Core\Get-VM