【发布时间】:2020-05-26 12:17:33
【问题描述】:
如果这个问题已经得到回答,我很抱歉,我没有找到任何关于它的信息。
我正在为 vSphere 6 开发 PowerCLi 6.0。
我拥有特定文件夹(称为“XXXFolder”)的所有权限,但没有整个主机的权限。 在此文件夹中,我尝试使用 C# 自动执行关机/开机操作。
VMware.Vim.VimClientImpl myClient = new VimClientImpl();
myClient.Connect("https://" + hostName + ":443/sdk");
myClient.Login(userName, passWord);
NameValueCollection propertyFilter = new NameValueCollection();
propertyFilter.Add("name", "VMName");
VMware.Vim.VirtualMachine myVM = (VirtualMachine)myClient.FindEntityView(typeof(VirtualMachine), null, propertyFilter, null);
powerOff 操作以这种方式工作正常:
myVM.PowerOffVM();
但是对于 PowerOn 方法,它将 VM 所在的主机作为参数。所以像:
myVM.PowerOn(myVM.Runtime.Host);
但是因为我对主机没有权限(仅在我提醒 VM 所在的特定文件夹上),我异常退出并显示以下消息:
"Permission to perform this operation was denied."
请注意,使用以下 Powershell 命令可以正常工作:
Start-VM -VM $myVM
有人知道在 C# 中如何启动位于特定文件夹中的虚拟机吗?
非常感谢您的帮助。
【问题讨论】:
标签: c# vmware vsphere powercli