• 您所在的位置:下載吧 » 軟件教程 » 編程開發 » 正文

    VMware提供的可編程接口

    • 時間:2014-07-04 13:57:31
    • 來源:下載吧
    • 編輯:huashi

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

         1、POWER COMMANDS

         如下圖:

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

         比如關機命令可以使用:vmrun  start "D:Windows7Win7.vmx"來啟動虛擬機,其中start后面的是要啟動的虛擬機系統的配置文件的位置

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

         2、SNAPSHOT COMMANDS

         如下圖:

         

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

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

          創建快照:

          vmrun snapshot "D:Windows7Win7.vmx" "snapshot1"

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

         vmrun -gu 你虛擬機系統的用戶名 -gp 你虛擬機系統的密碼 snapshot "D:Windows7Win7.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:Windows7Win7.vmx" notepad

        如果想要打開虛擬機C盤根目錄下的1.txt文件,可以在運行的程序后面加上參數,如下:

        vmrun   -gu Guest系統用戶名 -gp  Guest系統密碼 runProgramInGuest "D:Windows7Win7.vmx" notepad C:1.txt

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

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

        vmrun   -gu Guest系統用戶名 -gp  Guest系統密碼 runProgramInGuest "D:Windows7Win7.vmx" -nowait notepad C:1.txt

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

    推薦閱讀

    人氣排行

    买彩网