(转)Vix_API 操作 VMware

摘要:
对虚拟机进行编程控制,并在VMware官网上查询一些内容,但在调试过程中仍存在许多问题。启用:vmware xvm。vmx关闭:vmrunstopvm。vmx重新启动:vmrunresetvm。vmxsoft挂起:vmrunsuspendvm。vmx幸运的是,Vix从6.0版开始就可用了_ API,您可以在自己的程序中直接使用Vix _ API操作虚拟机,所有功能都可以实现:-)VMwareWorkstation6.0完成安装后,安装目录中将有一个VMwareVIX文件夹,其中包含Vix_ API和相关文档、dll、lib和其他文件。文件中有相关说明。不同版本的VMware对应不同的dll文件。否则,在VixHost_连接时,将报告参数错误的错误!

对虚拟机(VMware Workstation)进行程序控制,查询了VMware官方网站的一些内容,但调试的时候还是出现很多问题。

    刚开始想通过命令行的方式控制虚拟机,但总是存在一些问题,到现在也没搞懂。

    首先,网上下载的绿色版还是有很多功能不能实现。

    其次,虚拟机版本不一样,其支持的命令也不一样,版本越高,支持的命令越多。

    我使用VMware Workstation 6.0.3 build-80004,在命令行下,仅可以执行(1)开启(2)关闭(3)重启(4)挂起 这四个功能,我最想使用的恢复快照却不能使用。

    开启:vmware -x vm.vmx

    关闭:vmrun stop vm.vmx

    重启:vmrun reset vm.vmx soft (无soft时为直接重启)

    挂起:vmrun suspend vm.vmx

    幸好,从6.0版本开始提供Vix_API了,可以直接在自己的程序中使用Vix_API操作虚拟机,而且各项功能都可以实现 :-)

    在完整安装VMware Workstation 6.0后,在安装目录下就会有VMware VIX文件夹,其中包含了Vix_API及相关文档、dll、lib等文件。

    第一,包含头文件,连接lib

    vix.h、vm_basic_types.h、VixAllProducts.lib、VixAllProductsd.lib

    第二,按照文档说明操作Vix_API

    VixHost_Connect()、 VixHost_Disconnect()、VixHost_FindItems()、VixHost_RegisterVM()、VixHost_UnregisterVM()、VixJob_CheckCompletion()、VixJob_GetError()、VixJob_GetNthProperties()、VixJob_GetNumProperties()、VixJob_Wait()、VixSnapshot_GetChild()、VixSnapshot_GetNumChildren()、VixSnapshot_GetParent()、VixVM_AddSharedFolder()、ixVM_CopyFileFromGuestToHost()、VixVM_CopyFileFromHostToGuest()、VixVM_CreateDirectoryInGuest()、VixVM_CreateSnapshot()、VixVM_CreateTempFileInGuest()、VixVM_Delete()、VixVM_DeleteDirectoryInGuest()、VixVM_DeleteFileInGuest()、VixVM_DirectoryExistsInGuest()、VixVM_EnableSharedFolders()、VixVM_FileExistsInGuest()、VixVM_GetCurrentSnapshot()、VixVM_GetNamedSnapshot()、VixVM_GetNumRootSnapshots()、VixVM_GetNumSharedFolders()、VixVM_GetRootSnapshot()、VixVM_GetSharedFolderState()、VixVM_InstallTools()、VixVM_KillProcessInGuest()、VixVM_ListDirectoryInGuest()、VixVM_ListProcessesInGuest()、VixVM_LoginInGuest()、VixVM_LogoutFromGuest()、VixVM_Open()、VixVM_OpenUrlInGuest()、VixVM_PowerOff()、VixVM_PowerOn()、VixVM_RemoveSharedFolder()、VixVM_RemoveSnapshot()、VixVM_RenameFileInGuest()、VixVM_Reset()、VixVM_RevertToSnapshot()、VixVM_RunProgramInGuest()、VixVM_RunScriptInGuest()、VixVM_SetSharedFolderState()、VixVM_Suspend()、VixVM_UpgradeVirtualHardware()、VixVM_WaitForToolsInGuest()、Vix_FreeBuffer()、Vix_GetErrorText()、Vix_GetHandleType()、Vix_GetProperties()、Vix_GetPropertyType()、Vix_PumpEvents()、Vix_ReleaseHandle()、

      第三,使用正确的dll文件

    我遇到的这个问题,困扰了我一天来调试。在文档中有相关说明,不同版本的VMware 对应不同的dll文件,否则在VixHost_Connect时就会出现报出参数出错的错误!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

根据具体实践,使用命令行模式,首先调到VIX目录下,但只有一条命令是有效的,vmrun start "(.vmx的绝对路径,不要出现中文)",如有其他可行的命令欢迎评论。

免责声明:文章转载自《(转)Vix_API 操作 VMware》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】IIS上的反向代理Fastreport 获取数据集里字段下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

myeclipse 在webinf/lib中导入包

今天用myeclipse的时候发现无法在web-inf/lib导入包,如果直接在工程上导入,则进入了一个referenced libraries的文件夹里,而web-inf/lib里面是没有jar包的。 在网上找了一些答案,下面的方法解决了疑惑: 你应该尽量避免使用外部包。正确并且规范的做法是:在你的项目下单独创建一个lib目录(也可在WEB-INF下建...

论文阅读 《MDev-NVMe: A NVMe Storage Virtualization Solution with Mediated Pass-Through》

1 Background NVMe协议 传统的SATA接口已经不能满足现在对更高的吞吐量的IO需求,而NVMe协议中正是使用PCIe接口设计和开发的,可以满足当前的IO需求,PCIe接口取代了SATA接口。NVMe中含有多个IO(SQ&CQ)队列对,将传统的串行存储改为并行存储,很大程度上提高了吞吐量,降低了延时。在NVMe SSDs设备的应用场景...

anaconda2下面安装opencv2.4.13.4完成----解决默认安装的问题----Thefunction is not implemented. Rebuild the library with Windows, GTK+ 2.x orCarbon support. If you are on Ubuntu or Debian, install libgtk2.0‑dev and pkg

转载自: http://blog.csdn.net/qingyanyichen/article/details/73550924 本人下载编译安装了opencv2.4.9,oppencv2.4.10,opencv2.4.11,opencv3.0.0,opencv3.1.0,opencv3.2.0版本,总结anaconda下opencv安装经验如下。   1...

免密登录,密钥登录,远程登录

远程登录 我们启动linux系统之后,打开Xshell链接两个虚拟机,像我们这样的小白我是使用两个虚拟机(自己配置一个可以克隆一个,改变一下静态IP就可以),练习的时候在Xshell里链接两个虚拟机。 在其中一个虚拟机中敲入命令:ssh-keygen -t  rsa   其中 rsa是密钥对的格式,回车之后会出来交互语句: 第一句话的意思是将生成的密钥对...

Vmware centos 虚拟机 磁盘扩容

一,lvm ext4 扩容 1,首先关闭虚拟机,在vSphere Client 将硬盘大小增加或者新增一块硬盘 (从原来10G增加到50G) 2,开机   此时,df -hT只显示原来的磁盘大小      使用 fdisk /dev/sda  然后按 p 可以打印查看已经扩展的空间 3,分区   fdisk /dev/sda   按 n ;再按 3 (如...

CentOS 6.9下KVM虚拟机网络Bridge(网桥)方式与NAT方式详解(转)

摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式。Bridge方式的配置原理和步骤。Bridge方式适用于服务器主机的虚拟化。NAT方式适用于桌面主机的虚拟化。 NAT的网络结构图: Bridge的网络结构见图: 一、Bridge方式 问题 客户机安装完成后,需要为其设置网络接口,以便和主机网络,客户机之间的网络通信。事实上,如果要在安...