成長空間

          MiLife

          常用鏈接

          統計

          積分與排名

          Automation Testing Development

          最新評論

          批處理控制VMWare虛擬機


          http://myblog.iweb.net.cn/read.php?66
          VMWare 確實是好東西,不過安裝之后會增加四個自動啟動的服務以及兩個虛擬的網絡連接。我是比較討厭這種沒事就占著系統資源的東西,何況也不是經常要用著 VMWare ,所以寫了個批處理腳本來自動啟動/關閉 VMWare 虛擬機以及相關的服務和網絡連接。
          完整批處理文件內容如下:


          1 @echo On  
          2 @PROMPT [VMWareController]#  
          3  
          4 @if "%1" == "" goto Help  
          5 @if "%1" == "help" goto Help  
          6 @if "%1" == "/?" goto Help  
          7  
          8 @SET oprType=%1  
          9 @SET netOpr=%oprType%  
          10  
          11 @if "%oprType%" == "start" @SET netOpr=enable  
          12 @if "%oprType%" == "stop" @SET netOpr=disable  
          13  
          14 @SET vmxFile=%2  
          15 @Rem 如果沒有提供第二個參數vmx full path,將嘗試使用這里設定的缺省虛擬機  
          16 @Rem 根據需要把這個文件修改為實際希望啟動的vmx文件  
          17 @if "%vmxFile%" == "" @SET vmxFile=D:\VMWare\Red Hat Enterprise Linux 3.vmx  
          18  
          19 @Rem VMWare的安裝目錄,根據需要進行修改  
          20 @SET vmwareFolder=E:\AppTool\VMWare  
          21  
          22 @Rem 把VMWare相關的四個服務設置為手動  
          23 sc config VMAuthdService start= demand  
          24 sc config VMnetDHCP start= demand  
          25 sc config "VMware NAT Service" start= demand  
          26 sc config vmount2 start= demand  
          27  
          28 @Rem 啟動/停止VMWare相關的四個服務  
          29 net %oprType% "VMware Authorization Service"  
          30 net %oprType% "VMware DHCP Service"  
          31 net %oprType% "VMware NAT Service"  
          32 net %oprType% "VMware Virtual Mount Manager Extended"  
          33  
          34 @Rem 這里使用通配符來停用/啟用所有vmnet相關的網絡連接  
          35 devcon %netOpr% *vmnet*  
          36  
          37 @Rem 使用vmrun來運行指定的虛擬機  
          38 "%vmwareFolder%\vmrun" %oprType% "%vmxFile%"    
          39  
          40 @goto EndMission  
          41  
          42 :Help  
          43 @echo 自動啟動/停止指定的 VMWare 虛擬機以及相關的服務和網絡連接  
          44 @echo 需要 devcon 工具來控制網絡連接。工具下載地址:  
          45 @echo http://support.microsoft.com/kb/311272/zh-cn  
          46 @echo 命令行參數:  
          47 @echo %0 [start^|stop] ^  
          48 @echo ^為缺省啟動的虛擬機配置文件  
          49 @pause  
          50 goto EndMission  
          51  
          52 :EndMission  
          view plain | print | copy to clipboard | ?
          @echo On
          @PROMPT [VMWareController]#

          @if "%1" == "" goto Help
          @if "%1" == "help" goto Help
          @if "%1" == "/?" goto Help

          @SET oprType=%1
          @SET netOpr=%oprType%

          @if "%oprType%" == "start" @SET netOpr=enable
          @if "%oprType%" == "stop" @SET netOpr=disable

          @SET vmxFile=%2
          @Rem 如果沒有提供第二個參數vmx full path,將嘗試使用這里設定的缺省虛擬機
          @Rem 根據需要把這個文件修改為實際希望啟動的vmx文件
          @if "%vmxFile%" == "" @SET vmxFile=D:\VMWare\Red Hat Enterprise Linux 3.vmx

          @Rem VMWare的安裝目錄,根據需要進行修改
          @SET vmwareFolder=E:\AppTool\VMWare

          @Rem 把VMWare相關的四個服務設置為手動
          sc config VMAuthdService start= demand
          sc config VMnetDHCP start= demand
          sc config "VMware NAT Service" start= demand
          sc config vmount2 start= demand

          @Rem 啟動/停止VMWare相關的四個服務
          net %oprType% "VMware Authorization Service"
          net %oprType% "VMware DHCP Service"
          net %oprType% "VMware NAT Service"
          net %oprType% "VMware Virtual Mount Manager Extended"

          @Rem 這里使用通配符來停用/啟用所有vmnet相關的網絡連接
          devcon %netOpr% *vmnet*

          @Rem 使用vmrun來運行指定的虛擬機
          "%vmwareFolder%\vmrun" %oprType% "%vmxFile%"

          @goto EndMission

          :Help
          @echo 自動啟動/停止指定的 VMWare 虛擬機以及相關的服務和網絡連接
          @echo 需要 devcon 工具來控制網絡連接。工具下載地址:
          @echo http://support.microsoft.com/kb/311272/zh-cn
          @echo 命令行參數:
          @echo %0 [start^|stop] ^
          @echo ^為缺省啟動的虛擬機配置文件
          @pause
          goto EndMission

          :EndMission


            把以上代碼保存為 .bat 文件,并創建兩個指向該 .bat 文件的快捷方式,并分別給兩個快捷方式加上 start / stop 參數(也可以再提供第二個參數來指定啟動特定的虛擬機配置文件),就可以通過快捷方式直接啟動/停止 VMWare 相關的虛擬機和服務。

            其中使用了 devcon 工具來控制網絡連接的停用/啟用,需要到微軟網站下載該工具。

            注意:如果你的系統中存在其他硬件ID包含 *vmnet* 字符串的話會把所有相關的設備同時都禁用/啟用。你可以在命令行下輸入 devcon find *vmnet* 先檢查一下是否只匹配到 VMWare 所添加的兩個虛擬網絡連接。

            用 vmrun 關閉虛擬機的時候作用等同于在操作界面的 Power Off 按鈕。所以最好在執行批處理之前使用虛擬操作系統的 shutdown 命令先安全退出操作系統。

          posted on 2007-08-01 06:59 Picasso 閱讀(1414) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 澄城县| 安徽省| 太谷县| 丹棱县| 龙里县| 县级市| 阜宁县| 临泽县| 陆丰市| 陈巴尔虎旗| 若羌县| 温州市| 册亨县| 巍山| 思茅市| 天津市| 腾冲县| 洛隆县| 神农架林区| 宜兴市| 邯郸县| 霍城县| 余庆县| 西和县| 广丰县| 卓资县| 渭南市| 鄂托克旗| 涿鹿县| 湘潭市| 望都县| 醴陵市| 尖扎县| 文安县| 鹤壁市| 梧州市| 松潘县| 桐梓县| 金堂县| 宣恩县| 达日县|