(转)Vix_API 操作 VMware

对虚拟机(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的绝对路径,不要出现中文)",如有其他可行的命令欢迎评论。

时间: 2024-08-30 11:50:29

(转)Vix_API 操作 VMware的相关文章

数据分析系统DIY2/3:本地64位WIN7+DEV C++编译程序操作VMware CentOS7+MariaDB

数据分析系统DIY中要完毕的三个任务. 一.用VMware装64位CentOS.数据库服务端用CentOS自带的就好. 二.数据採集与预处理用Dev-C++编程解决. 三.用本地Win7 64上的MATLAB R2012b连接数据库进行挖掘分析. 本文是完毕第二个任务的过程. 1.Terminal中输入命令行"ifconfig"确认CentOS虚拟机ip:192.168.124.128 2.输入命令行"netstat -anp|grep mysqld"确认maria

VMware虚拟磁盘编程指导(一)

最近在看VMware相关的东西,由于需要对ESX/ESXi远程主机上的虚拟机进行备份,所以下载了<Virutal Disk Program Guide>(虚拟磁盘编程指导),里面讲解了虚拟磁盘的基本概念.API函数.备份还原等,但由于是英文的,没有中文版,所以起初看起来有点困难.自从去年看过一遍后,感觉没有多么深刻的概念,所以现在回过头来再看一次,为了加深自己的理解,我采用一边看一边翻译的方式.现在将自己陆陆续续翻译的内容和大家分享,其中有很多自己也不敢肯定的翻译,我一般在后面附上英文原文,还

Virtual Box 安装过程(卸载Vmware后)

VirtualBox安装前的操作:(或许某些操作不一定有用,但是我是这么做下来的,最后也安装成功了) 步骤一:停止之前安装的vmware的所有服务(如果之前没有安装过虚拟机软件,无需做此操作)VMware Authorization ServiceVMware DHCP ServiceVMware NAT ServiceVMware USB Arbitration ServiceVMware Workstation Server 步骤二:在window运行栏,输入regedit,修改networ

MAC使用VMware Fusion为centos设置静态IP

https://blog.csdn.net/yjkkkkk/article/details/78695278 https://blog.csdn.net/johnnycode/article/details/40624403 最近在上一个linux运维的课,要求环境是CentOS.于是在mac的vmware fusion中安装了CentOS.但是用mac的终端远程连接到CentOS的时候,由于家里和学校IP不同,虚拟机的IP也会变化,每次还要重新查看,并且之后配置集群什么的也会出现问题,所以需要

VMWare apt 本地源 快速配置

1.简介 1.1 介绍     一开始 也没有 太在意 虚拟机 还有 如此 快速的 配置方式,偶然间 尝试了下,在离线的 虚拟环境上 这个 还是 不错的,不需要 手动 修改 配置文件(/etc/apt/source.list)     1.2 操作系统 ## 其实 适用于 VMWare 下的 所有 虚拟机,但是 本着 严谨的 原则,还是附上本文操作系统 ## 本文操作系统 Ubuntu 16.04 amd64 # lsb_release -a      2.VMWare 设置     在 图形界

PowerCLI

最近需要用命令行操作VMWare,现将一些经常用的命令记录一下.安装VMWare命令很简单,不再像原来需要单独下载PowerCLI安装包,直接在Powershell Gallery里在线安装即可. # 连接 Connect-VIServer -Server prod-corp-vc # 克隆虚拟机 New-VM -VM $source -Name $destination -VMHost 'prod-ctc-esx-bk1.cotoso.com' -DiskStorageFormat Thin

使用命令行操控vmware--安装

在虚拟化出现之前,服务器的使用率很低,一般只有15%-20%,其余的资源处于闲置状态,但vmware出现之后,首先,可以充分的利用资源,从而达到节约成本的目的,其次,使得虚机便于维护.一般小型公司使用vmware时,在vsphere client端点击鼠标即可完成虚机创建.环境搭建等操作,但是无法实现自动化,本文的目的就是为了实现vmware的自动化,解放解放管理员.提高效率. 使用命令行去操作vmware有两种方法,第一种是esxi主机后台操作(本身就是linux系统),第二是powercli

Linux中VMware虚拟机增加磁盘空间的扩容操作

用VMwareware虚拟机安装的Cent OS 7系统剩余空间不足,造成软件无法正常安装.如果重新装一遍系统就需要重新配置好开发环境和软件的安装配置.通过上网搜集的资料,结合自己的实践,总结了如下扩大硬盘空间的详细步骤,希望对大家有帮助. (1)打开VMware,选择Edit Virtual mache settings,Utilities下拉框中找到Expand如下图 (2)将磁盘空间扩大到70G,点击Expand即可,随后进入一个较长的Expand过程,完成后这是新的空间已经增加,但lin

VMware虚拟机安装+Linux操作系统安装视频教程_Linux实验环境安装

VMware虚拟机安装+Linux操作系统安装视频教程_风哥版Linux实验环境安装 1.VMware虚拟机安装(VMWare Server+VMWare WorkStation) 2.VMware虚拟机配置 3.VMware虚拟机克隆 4.Linux操作系统安装配置 5.Linux操作系统虚拟机的多机克隆 视频学习地址: http://edu.51cto.com/course/course_id-3733.html