对虚拟机(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的更多相关文章

  1. 使用命令行操作vmware esxi -- powershell

    之前提到过用linux命令行的方法操作vmware,这节我们来使用powershell的方式来操作.在操作之前需要下载安装一款命令行工具PowerCLI,本节只列出一些常用命令. 个人认为powerc ...

  2. 使用命令行操作vmware esxi -- linux

    为实现自动化,发现了两种命令行工具,一是开启vmware esxi后用xshell等连接工具去连接esxi后台:二是安装powercli连接.本文将介绍一些常用的命令去操作vmware esxi 本文 ...

  3. python操作vmware

    import pysphere from pysphere import VIServer host_ip = "200.200.173.45" username = " ...

  4. 【转载】Vmware Vconverter从物理机迁移系统到虚拟机P2V

    本文完整记录了如何从物理服务器,保持所有环境配置信息,纹丝不动的迁移到虚拟机上,俗称 P2V .采用的工具是VMware公司的 VMware vcenter vconverter standalone ...

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

    VirtualBox安装前的操作:(或许某些操作不一定有用,但是我是这么做下来的,最后也安装成功了) 步骤一:停止之前安装的vmware的所有服务(如果之前没有安装过虚拟机软件,无需做此操作)VMwa ...

  6. PowerCLI

    最近需要用命令行操作VMWare,现将一些经常用的命令记录一下.安装VMWare命令很简单,不再像原来需要单独下载PowerCLI安装包,直接在Powershell Gallery里在线安装即可. # ...

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

    在虚拟化出现之前,服务器的使用率很低,一般只有15%-20%,其余的资源处于闲置状态,但vmware出现之后,首先,可以充分的利用资源,从而达到节约成本的目的,其次,使得虚机便于维护.一般小型公司使用 ...

  8. RHEL 无图形界面安装oracle 11gr2

    RHEL7.3  无图形界面安装oracle 11gr2  使用纯命令安装方式.提供RHEL全量系统镜像.   1.oracle官方下载地址:https://www.oracle.com/techne ...

  9. VMware手动添加centos7硬盘图文操作及分区超详细

    先设置虚拟机 启动的虚拟机,新关机再设置 1.选择指定虚拟机,点击硬盘 2.虚拟机设置,点击左下角“添加” 3.硬件类型选择硬盘,点击下一步 4.添加硬件向导默认就行,下一步 5.选择磁盘,默认选中, ...

随机推荐

  1. lisp的解释器

    Description XXC小童鞋对lisp非常感兴趣,不过lisp是一个比较小众的黑客语言,因为它采用了一种不太容易理解的表达方式——S表达式. S表达式形式如下: (Operation A B… ...

  2. orm多表操作

    一.创建表 1.一对多 必须在"多"的表中创建关联字段,在外加约束 class Book(models.Model): id=models.AotuField(primary_ke ...

  3. Java基础(三) String深度解析

    String可以说是Java中使用最多最频繁.最特殊的类,因为同时也是字面常量,而字面常量包括基本类型.String类型.空类型. 一. String的使用 1. String的不可变性 /** * ...

  4. Spring Type Conversion(Spring类型转换源码探究)

    1:概述 类型转换系统负责Spring框架中对象类型转换和格式化工作. ConversionService默认实现UML图如下所示: GenericConversionService(通用类型转换服务 ...

  5. niaobulashi-一个基于springboot shrio的权限管理系统

    github项目地址:https://github.com/niaobulashi/niaobulashi springboot学习地址:http://www.ityouknow.com/spring ...

  6. yii框架多文件上傳

    //控制器層 <?phpnamespace app\controllers; use app\models\Uploads;use Yii;use yii\web\Controller;use ...

  7. Python自学day-7

    一.静态方法(@staticmethod) class Dog(object): def __init__(self): pass @staticmethod def talk(): #静态方法 pa ...

  8. yii中 columnszii.widgets.grid.CGridView

    <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'chapter-grid', 'dataProvide ...

  9. jQuery-ajax-.load方法

    使用jQuery封装的ajax是非常好用的,这个里面提供了几个比较好用的方法. load(url[,data, callback])方法: 说明:这个是jQuery中的最底层方法$.ajax()封装的 ...

  10. PATA 1009. Product of Polynomials (25)

    1009. Product of Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...