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