dai*_*isy 0 vmware vmware-server vmware-workstation
我有多台VMware机器; 他们都在运行Windows服务器,我想在所有这些机器上运行程序,而不是通过复制和双击执行,而是通过使用一些VMware API来实现,就像VirtualBox SDK一样.
VMware API中是否有任何功能允许我对VMware计算机执行程序?
如VMware API文档中所述,您需要的功能是VixVM_RunProgramInGuest(),它要求您在guest虚拟机操作系统(在虚拟机上运行的操作系统)上进行身份验证VixVM_LoginInGuest().
该文档有一个关于如何在来宾操作系统中调用程序的示例; 它是一个完整的示例,显示如何连接到虚拟机服务器,打开定义虚拟机的文件,并启动它.基本代码如下:但是你应该阅读完整的例子.
// Authenticate for guest operations.
jobHandle = VixVM_LoginInGuest(vmHandle,
"vixuser", // userName
"secret", // password
0, // options
NULL, // callbackProc
NULL // clientData
);
err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
if (VIX_OK != err) {
// Handle the error.
goto abort;
}
Vix_ReleaseHandle(jobHandle);
// Run the target program.
jobHandle = VixVM_RunProgramInGuest(vmHandle,
"c:\\myProgram.exe",
"/flag arg1 arg2",
0, // options
VIX_INVALID_HANDLE, // propertyListHandle
NULL, // callbackProc
NULL // clientData
);
err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
if (VIX_OK != err) {
// Handle the error.
goto abort;
}
Vix_ReleaseHandle(jobHandle);
Run Code Online (Sandbox Code Playgroud)
连接到虚拟机服务器的部分如下.
jobHandle = VixHost_Connect(VIX_API_VERSION,
VIX_SERVICEPROVIDER_VMWARE_SERVER,
NULL, // hostName
0, // hostPort
NULL, // userName
NULL, // password
0, // options
VIX_INVALID_HANDLE, // propertyListHandle
NULL, // callbackProc
NULL // clientData
);
err = VixJob_Wait(jobHandle, VIX_PROPERTY_JOB_RESULT_HANDLE, &hostHandle, VIX_PROPERTY_NONE);
if (VIX_OK != err) {
// Handle the error.
goto abort;
}
Vix_ReleaseHandle(jobHandle);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
740 次 |
| 最近记录: |