API控制VM虚拟机(VM Workstation or VM Server)
来源:互联网 发布:文件服务器 软件 编辑:程序博客网 时间:2024/06/05 08:15
Controlling VM by Script
1 VMRun
VMRun is a command line tool which is delivered with VM workstation or VM server. the tool have many sub commands to control VM, such as starting and stopping VM, creating and reverting to snapshot, run programs or scripts in VM, setting shared folder and setting environment variables in VM, creating and deleting folder and file in VM, checking and killing process in VM, taking record and capturing screen.
Of course you also can find other language wrapper for VMRun, such as VMRun-Python.
2 VIX API
The VIX API allows you to do the same things with VMRun, and you needn't install VM workstation or VM server, just need install VIX SDK. The VIX API allows you to automate virtual machine operations on VMware Server or VMware Workstation.
The VIX API can be accessed by C, Perl and COM.
3 VMRun command usage
Vmrun /?
4 examples
@echo off
echo setting the path of vmrun.exe into the system path.
rem set path="C:\Program Files\VMware\VMware Workstation";%path%
set path="C:\Program Files\VMware\VMware VIX";%path%
set vmImage="D:\VMRun\VMrun_Test\Windows XP Professional.vmx"
set vmtype=ws
set guestuser=AAA
set guestpassword=AAA
set snapshotname=snapshot1
set hostsharedfolder=d:\share
set guestnewfolder=c:\share
echo revert to snapshot
vmrun -t %vmtype% revertToSnapshot %vmimage% %snapshotname%
echo start vm without gui
vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% start %vmImage% nogui
echo run notpad.exe in vm
rem vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% runprograminguest %vmimage% -activeWindow "c:\windows\system32\notepad.exe"
echo set the host shared folder %hostsharedfolder% for accessing in VM, you can access the shared folder by \\.host\****
vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% addSharedFolder %vmimage% hostsharedfolder %hostsharedfolder%
echo create one new folder in VM
vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% createDirectoryInGuest %vmimage% %guestnewfolder%
echo copy files from the host to VM
vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% copyFileFromHostToGuest %vmimage% %hostsharedfolder%\* %guestnewfolder%
echo check whether the file is exist in VM
vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% fileExistsInGuest %vmimage% %guestnewfolder%\test.bat
echo run script in VM
vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% runProgramInGuest %vmimage% %guestnewfolder%\test.bat
echo copy files from VM to the host
vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% copyFileFromguestTohost %vmimage% %guestnewfolder%\test2.txt %hostsharedfolder%
echo capture VM screen
vmrun -t %vmtype% -gu %guestuser% -gp %guestpassword% captureScreen %vmimage% %hostsharedfolder%\resultscreen.png
5 Generally, we can use VMRUN to implement software automation testing.
6 one issue
vmrun quotes each argument it passes to the guest
so if you want to install msi in guest OS, you can use below workaround:
echo C:\Windows\system32\msiexec.exe /i C:\app.msi > C:\sourcebatch.bat
vmrun -T ws -gu USERNAME -gp PASSWORD copyFileFromHostToGuest "C:\VMs\VM1\VM1.vmx" "C:\sourcebatch.bat" "C:\destbatch.bat"
vmrun -T ws -gu USERNAME -gp PASSWORD runProgramInGuest "C:\VMs\VM1\VM1.vmx" cmd.exe "/c C:\destbatch.bat"
vmrun -T ws -gu USERNAME -gp PASSWORD deleteFileInGuest "C:\VMs\VM1\VM1.vmx" "C:\destbatch.bat"
Reference (Using vmrun runProgramInGuest with Windows Installer (MSI) packages) (http://communities.vmware.com/blogs/vmroyale/2009/04/23/using-vmrun-runprograminguest-with-windows-installer-msi-packages )
完!
- API控制VM虚拟机(VM Workstation or VM Server)
- API控制VM虚拟机(VM Workstation or VM Server)
- vm
- VM
- VM
- VM
- VM
- vm
- VM
- vm
- VM Workstation 虚拟机下如何安装VMtools
- VM Workstation 虚拟机安装Ghost XP教程
- VM workstation 快捷键
- VM workstation 优化大全
- VM workstation 与 VM vSphere的区别
- VM(虚拟机技术)保护
- VM(虚拟机)部署自动化
- windows server 2003虚拟机安装vm tools
- 批处理中使用vbs
- vbs实现unicode和ascii的转化
- dos和unix文本转化
- iptables 基本命令使用举例
- 文件一致性校验(MD5,SHA1,GPG)
- API控制VM虚拟机(VM Workstation or VM Server)
- python实例31[urllib.request.urlopen获取股票信息]
- grep sed awk实例练习
- python技巧31[对象相等性|dictionary模拟switchcase]
- python语法31[string的print和format]
- python资料
- python类库31[读写文件]
- python类库31[文件和目录os+os.path+shutil]
- python类库31[压缩与解压]