PowerShell 管理单元之间的 Cmdlet 争用
我在使用适用于 PowerShell 的 Vmware PowerCLI 和 System Center Virtual Machine Manager 管理单元时遇到了问题。它们都包含名称相似的 cmdlet,例如“Get-VM”和“Get-VMHost”。看来最后一个加载的管理单元获胜,因此我在脚本中添加了加载和加载的逻辑。当我需要获取 VMware 数据或 Hyper-V 数据时,卸载管理单元。我想知道是否有任何方法可以防止这种争用,或者以其他方式为一个 cmdlet 创建一些唯一的句柄,同时仍然允许另一个 cmdlet 加载和加载。按预期运行?
I ran into an issue while using both the Vmware PowerCLI and System Center Virtual Machine Manager snap-ins for PowerShell. They both contain similarly named cmdlets, like 'Get-VM' and 'Get-VMHost'. It appears that the last snap-in to load wins, so I added logic in my script to load & un-load the snap-in when I needed to get either VMware data or Hyper-V data. I'd like to know if there is any way to prevent this contention, or otherwise create some unique handle to one cmdlet, while still allowing the other to load & operate as intended?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用管理单元时的最佳方法是使用管理单元名称完全限定 cmdlet 名称。例如,如果 PowerCLI 的管理单元名称为 PowerCLI,则使用:
对于 SCVMM 管理单元,使用其名称作为前缀。要查看管理单元名称,请执行:
The best approach when using snapins is to fully qualify the cmdlet name with the snapin name. For instance, if the snapin name for PowerCLI is PowerCLI then use:
For the SCVMM snapin use it's name as a prefix. To see the snapin names, execute:
对于任何搜索 VMware vSphere PowerCLI snapin cmdlet 的实际命名空间/前缀的人来说,它是:
因此,上面示例的真正前缀是:
And for anyone searching for the actual namespace/prefix for VMware's vSphere PowerCLI snapin cmdlets, it's:
Hence the real prefix for the example above is: