VMware Workstation提供的可程式化介面

來源:互聯網
上載者:User

     何謂Vmrun命令?其實這並不是什麼神秘的東西,相信部分朋友使用過Vmware workstation來安裝過一些虛擬機器吧。如果你足夠細心的話,你會發現在這個軟體的安裝目錄下能找到一個Vmrun.exe可執行檔。如果你從命令列敲入vmrun.exe(當然你得切換到workstation的根目錄下),你會驚奇的發現很多該命令提供了很多的參數,這些參數的功能成為了Host機器與Guest機器之間的功能強大的串連橋樑。那麼,先一睹下到底有哪些命令可供我們玩轉。     

     1、POWER COMMANDS

     如:

      

     從上可以看出,這些命令參數可以完成開啟或者關閉虛擬機器等操作~

     比如關機命令可以使用:vmrun  start "D:\\Windows7\\Win7.vmx"來啟動虛擬機器,其中start後面的是要啟動的虛擬機器系統的設定檔的位置

     其他的幾個類似,故不再贅述

  

     2、SNAPSHOT COMMANDS

     如:

      

     顧名思義,這組命令參數主要是用於操作虛擬機器系統的快照的。何謂快照,簡單的說就是當前系統整個的狀態資訊。而建立快照(snapshot)的目的,則是在於儲存當前系統的狀態, 而還原快照(revertToSnapshot)則可以從當前的系統狀態還原到指定快照時候的系統狀態。這樣做對於測試人員來說不難理解,因為測試必須保證處於乾淨的系統內容,所謂乾淨的測試環境則是指一個作業系統從被建立開始,只在上面安裝過與測試相關的軟體與配置,且只能做一次性的測試。而想要達到多次測試的目的,只能通過不斷的revert到乾淨的測試環境那個快照點。

     從中可以看出,我們可以通過命令來查看系統所有的快照(listSnapshots)、為系統建立快照(snapshot)、刪除系統中指定快照(deleteSnapshot)、恢複到某個快照(revertToSnapshot)這幾個命令,如下所示:

      建立快照:

      vmrun snapshot "D:\\Windows7\\Win7.vmx" "snapshot1"

      但是,一般情況下光是上面還是不行的,尤其是當你想從代碼級調用該命令建立虛擬機器快照的時候,往往需要使用者名稱與密碼來驗證。那麼該怎麼寫呢?正確的命令如下:

     vmrun -gu 你虛擬機器系統的使用者名稱 -gp 你虛擬機器系統的密碼 snapshot "D:\\Windows7\\Win7.vmx"  "snapshot1" (<=快照名稱)

     上面的這個命令是不是一定會成功?也不一定,如果還是失敗的話,那麼請嘗試下面三個操作,如果還是解決不了你的問題的話,那麼筆者保持沉默~

     1)先檢測是否支援虛擬機器快照的建立

         檢測方法很簡單, 查看工作站的功能表項目的Vm選項下的Snapshot子選項,如:

        

         如果Snapshot右快顯功能表所有選項都灰掉的話,那麼你得考慮先解決掉這個問題了 

     

     2)檢測是不是Vmtools在搗鬼

          確定你的虛擬機器系統中有沒安裝Vmtools或者是不是可以進行更新,如果沒裝請裝之,裝了的話最好update下,關於怎麼安裝或更新另請查詢。 

   

     3)加上本地系統使用者名稱與密碼驗證

         vmrun -u Host機器的使用者名稱 -p Host機器的密碼 -gu 虛擬機器系統的使用者名稱 -gp  虛擬機器系統的密碼 snapshot "vmx path"  "snapshot1"

    

    3、GUEST OS COMMAND 

    如:

     

    這組命令很有實用性,主要是可以在Host機器的下,對Guest機器(也就是虛擬機器系統)進行一列的操作,如檔案操作、進程操作、運行指定程式和運行指令碼等,這些命令都是需要使用者名稱與密碼的驗證,也就是在命令列中加上-gu與-gp參數,參見上面。

    這組命令中可能需要注意的是,runProgramInGuest命令可以執行虛擬機器系統中的一些命令,如開啟一個notepad,直接敲入如下命令:

    vmrun   -gu Guest系統使用者名稱 -gp  Guest系統密碼 runProgramInGuest "D:\\Windows7\\Win7.vmx" notepad

    如果想要開啟虛擬機器C盤根目錄下的1.txt檔案,可以在啟動並執行程式後面加上參數,如下:

    vmrun   -gu Guest系統使用者名稱 -gp  Guest系統密碼 runProgramInGuest "D:\\Windows7\\Win7.vmx" notepad C:\\1.txt

    如果你在代碼層級調用這個命令,希望你能夠始終意識到一個事實,那就是上述命令預設是等到在Guest機器啟動並執行程式結束後才返回。如果,親愛的你,串列的執行一系列的命令,而前一個命令恰恰是個Long wait的程式,那麼這之後的程式往往會掛住,無法執行。如你使用上述命令開啟一個文本後,那麼主程式就會等到你將Guest系統中的notepad關閉才會返回。

    那麼,這個時候,你可以選擇-nowait開關命令來選擇無等待的執行,即每個命令一執行後就返回,不會產生阻塞,命令如下:

    vmrun   -gu Guest系統使用者名稱 -gp  Guest系統密碼 runProgramInGuest "D:\\Windows7\\Win7.vmx" -nowait notepad C:\\1.txt

    其他的命令,大家可以自己嘗試下,在此不再贅述。    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.