[英]C# cannot connect to vmware
我有一個項目,我將必須構建雙堆疊虛擬機。 我通常使用Powershell,但似乎無法做到這一點。 我可能必須使用C#。 我對此感到有點生銹,但是由於某種原因,此代碼給我一個錯誤“無法創建抽象類或接口'VMware.Vim.VimClient'的實例”。
using System.Text;
using VMware.Vim;
namespace Vimfunctions
{
public class VimFunctions
{
protected VimClient ConnectServer(string viServer, string viUser, string viPassword)
{
**VimClient vClient = new VimClient();**
ServiceContent vimServiceContent = new ServiceContent();
UserSession vimSession = new UserSession();
vClient.Connect("https://" + viServer.Trim() + "/sdk");
vimSession = vClient.Login(viUser, viPassword);
vimServiceContent = vClient.ServiceContent;
return vClient;
}
我添加了對項目的引用。 我一定忘了做某事。
按照https://communities.vmware.com/thread/478700的說明 :“要么堅持使用PowerCLI 5.5版本,要么修改代碼以使用VimClientImpl類而不是VimClient(現在是接口)。”
我使用的一個完整的簡單示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VMware.Vim;
namespace vSphereCli
{
class Program
{
static void Main(string[] args)
{
VMware.Vim.VimClientImpl c = new VimClientImpl();
ServiceContent sc = c.Connect("https://HOSTNAME/sdk");
UserSession us = c.Login("admin@vsphere.local", "password");
IList<VMware.Vim.EntityViewBase> vms = c.FindEntityViews(typeof(VMware.Vim.VirtualMachine), null, null, null);
foreach (VMware.Vim.EntityViewBase tmp in vms)
{
VMware.Vim.VirtualMachine vm = (VMware.Vim.VirtualMachine)tmp;
Console.WriteLine((bool)(vm.Guest.GuestState.Equals("running") ? true : false));
Console.WriteLine(vm.Guest.HostName != null ? (string)vm.Guest.HostName : "");
Console.WriteLine("");
}
Console.ReadLine();
}
}
}
添加對“ C:\\ Program Files(x86)\\ VMware \\ Infrastructure \\ vSphere PowerCLI \\ VMware.Vim.dll”的引用。 更新主機名,密碼; 和跳!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.