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. 宿主机的密码
// 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>
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>
<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>
这个时候你就可以看到你想要的结果了。
转载于:https://blog.51cto.com/abao0918/563528