VMware 公司的MKS客户端
 
该项目是断开所有CD从所有与一键点击虚拟机的完成,所以我想这是一个新项目的时间。 .让我们构建一个VDI的连接代理与嵌入式XP的虚拟机控制台。 我首先需要做的是弄清楚如何我可以嵌在我的VB的一个控制台应用程序的视图。 .经过一番在VMware论坛搜索和两个同事的帮助。 我决定去看一看WEB Access, 当您登录到网络接入并选择一个虚拟机,在您的Internet Explorer浏览器中可以看到一个控制台。登录到Web Access   通过 https:/ / vcserver /ui 
      选择一个虚拟机然后点击控制台选项卡,然后点击转到您的Internet临时文件夹【C:\Documents and Settings\Eric\Local Settings\Temporary Internet Files】,找到一个名字叫vmTabView[1].html的文件。拷贝此文件到桌面上然后用记事本打开。
<object id="mks" classid="CLSID:DC7D77DA-E1AC-4D40-930B-B87B2954E034" codebase='plugin/msie/vmware-mks.cab#version=2,0,1,0' width="100%" height="100%">  </object>
 你看到的是ActiveX链接对象,当我们打开一个控制台虚拟机就是用到了它 。 然后我就开始用CLSID开始在论坛上搜索,我找到了一篇和我要做的视图是一样的代码。他贴出来的代码如下。
<script language="Javascript" type="text/javascript">
// hostAddress -> ESX host name (fqdn) or the IP address. 宿主机名称或者IP
// authdPort -> 902 (please make sure port 902 and 903 are open) . 宿主机端口号 
// vmCfgPath -> The VMX location (for the VM in question) . 虚拟机配置文件路径
// uname -> A valid user name. 宿主机的用户名
// password -> A valid password. 宿主机的密码
例如:
mks.connect(esxserver, 902, /vmfs/volumes/45783090-7ae6a1d6-eaed-001185e85a6b/virtual.vmx, uname,  password);
</script>
下面就是我们如何得到这样上面所用到的信息,MOB就是你最好的帮手,在IE浏览器中打开 https://esxserver/mob 用Windows身份登录,然后找到如下路径 RetrieveServiceContent / Invoke Method / rootFolder / childEntity / vmFolder /选择一个虚拟机(非模版)然后跳到该页面的底部,你会发现有一个 VirtualMachineMksTicket,执行AcquireMksTicket方法,你就会得到你需要的所有信息
cfgFile
 
string
 
"/vmfs/volumes/455ab25f-5b192a18-8911-0019bb240e8a/ VirtualMachine/VirtualMachine.vmx"
 
dynamicProperty
 
DynamicProperty[]
 
Unset
 
dynamicType
 
string
 
Unset
 
host
 
string
 
"192.168.1.1"
 
port
 
int
 
902
 
ticket
 
string
 
"52c75705-6cea-4837-4ecb-1120ceda692e"
上面的uname和password就可以用这个ticket来代替了,ticket是一个动态的结果,每次调用AcquireMksTicket方法,ticket就会改变。下面就给出一个新的HTML页面代码
  
<object id="mks" classid="CLSID:DC7D77DA-E1AC-4D40-930B-B87B2954E034" codebase='https://vcserver/ui/plugin/msie/vmware-mks.cab#version=2,0,1,0' width="100%" height="100%">  </object>
<script language="Javascript" type="text/javascript">
mks.connect(192.168.1.1
, 902, /vmfs/volumes/455ab25f-5b192a18-8911-0019bb240e8a/ VirtualMachine/VirtualMachine.vmx, 52c75705-6cea-4837-4ecb-1120ceda692e,  52c75705-6cea-4837-4ecb-1120ceda692e);
</script>
 
这个时候你就可以看到你想要的结果了。