(转)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的绝对路径,不要出现中文)",如有其他可行的命令欢迎评论。
(转)Vix_API 操作 VMware的更多相关文章
- 使用命令行操作vmware esxi -- powershell
之前提到过用linux命令行的方法操作vmware,这节我们来使用powershell的方式来操作.在操作之前需要下载安装一款命令行工具PowerCLI,本节只列出一些常用命令. 个人认为powerc ...
- 使用命令行操作vmware esxi -- linux
为实现自动化,发现了两种命令行工具,一是开启vmware esxi后用xshell等连接工具去连接esxi后台:二是安装powercli连接.本文将介绍一些常用的命令去操作vmware esxi 本文 ...
- python操作vmware
import pysphere from pysphere import VIServer host_ip = "200.200.173.45" username = " ...
- 【转载】Vmware Vconverter从物理机迁移系统到虚拟机P2V
本文完整记录了如何从物理服务器,保持所有环境配置信息,纹丝不动的迁移到虚拟机上,俗称 P2V .采用的工具是VMware公司的 VMware vcenter vconverter standalone ...
- Virtual Box 安装过程(卸载Vmware后)
VirtualBox安装前的操作:(或许某些操作不一定有用,但是我是这么做下来的,最后也安装成功了) 步骤一:停止之前安装的vmware的所有服务(如果之前没有安装过虚拟机软件,无需做此操作)VMwa ...
- PowerCLI
最近需要用命令行操作VMWare,现将一些经常用的命令记录一下.安装VMWare命令很简单,不再像原来需要单独下载PowerCLI安装包,直接在Powershell Gallery里在线安装即可. # ...
- 使用命令行操控vmware--安装
在虚拟化出现之前,服务器的使用率很低,一般只有15%-20%,其余的资源处于闲置状态,但vmware出现之后,首先,可以充分的利用资源,从而达到节约成本的目的,其次,使得虚机便于维护.一般小型公司使用 ...
- RHEL 无图形界面安装oracle 11gr2
RHEL7.3 无图形界面安装oracle 11gr2 使用纯命令安装方式.提供RHEL全量系统镜像. 1.oracle官方下载地址:https://www.oracle.com/techne ...
- VMware手动添加centos7硬盘图文操作及分区超详细
先设置虚拟机 启动的虚拟机,新关机再设置 1.选择指定虚拟机,点击硬盘 2.虚拟机设置,点击左下角“添加” 3.硬件类型选择硬盘,点击下一步 4.添加硬件向导默认就行,下一步 5.选择磁盘,默认选中, ...
随机推荐
- Auto updater for my side loaded UWP apps
原文: Auto updater for my side loaded UWP apps As I described before, i have a few tasks to solve for ...
- Qt DLL总结【三】-VS2008+Qt 使用QPluginLoader访问DLL
目录 Qt DLL总结[一]-链接库预备知识 Qt DLL总结[二]-创建及调用QT的 DLL Qt DLL总结[三]-VS2008+Qt 使用QPluginLoader访问DLL 开发环境:VS20 ...
- 桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)
Windows Client 客户端在关机,不外乎两种情况: 1. 没有处理 Windows 关机消息: 2.处理了关机消息,但是超时了: 上面这两种情况,都会让Windows 关不了机.在现实生活中 ...
- Qt信号量QSemaphore(在线程里使用,结合生产者消费者的问题)
Qt中的信号量是由QSemaphore类提供的,信号量可以理解为对互斥量功能的扩展,互斥量只能锁定一次而信号量可以获取多次,它可以用来保护一定数量的同种资源.acquire()函数用于获取n个资源,当 ...
- C++ 王者归来:对编程语言的需求总结为四个:效率,灵活,抽象,生产率(C++玩的是前三个,Java和C#玩的是后两个)
Why C++ ? 王者归来(转载) 因为又有人邀请我去Quora的C2C网站去回答问题去了,这回是 关于 @laiyonghao 的这篇有点争议的博文<2012 不宜进入的三个技术点>A ...
- python中的while循环,格式化输出,运算符,编码
一.while循环 1.1语法 while 条件: 代码块(循环体) else: 当上面的条件为假的的时候,才会执行. 执行顺序:先判断条件是否为真,如果是真的,执行循环体,再次判断条件,直到条件不成 ...
- Android自动化测试探索(三)Android SDK tools安装、aapt配置以及使用aapt获取apk包名
Android SDK tools安装 下载连接: https://www.androiddevtools.cn 找到对应mac的版本下载安装即可 AAPT配置 #1. 进入根目录 cd ~ #2. ...
- ElasticSearch学习(一):ElasticSearch介绍
一.ElasticSearch是什么? ElasticSearch是一款非常强大的.基于Lucene的开源搜索及分析引擎,可以帮助你从海量数据中,快速找到相关的数据信息. 比如,当你在GitHub上搜 ...
- U盘刻录kali linux启动盘提示找不到镜像解决方案
选择“继续”后会来到步骤菜单,选择从shell启动,命令 df -m 查看当前磁盘挂载情况,看到 /media 目录 输入命令 umount /media 进行挂载然后输入 exit 退出
- 智能小程序关于Filter过滤器的简单使用
<filter module="swan"> export default { imgurl: (imgUrl) => { var imgurlprefix = ...