您好,登錄后才能下訂單哦!
本文來自于一次工程實踐,把所得的經驗記錄于此,希望對后來者有所幫助。
公司購買了一臺PC機,正版Win10家庭版,用來做財務部門的用友服務器。同時也安裝用友客戶端,以供財務人員遠程桌面登錄,這樣就不用挨個在物理主機上安裝客戶端了,需要幾個客戶端就克隆幾個虛擬機并打開遠程桌面權限即可。
因為軟件版本較老,售后說最好是XP系統,鑒于新出的PC連安裝WIN7都很繁瑣(需要注入XHCI的驅動,否則無法使用USB設備),更別提XP了,所以只能采用虛擬機模式安裝。
在虛擬機的選擇上,Hyper-V和VMware?workstion都試過,但發現前者的顯示比例只能是方屏,不能填滿目前的寬屏顯示器,財務軟件因為顯示面積的限制而無法使用,此外還需要把Win10家庭版升級到專業版,這就無法激活,失去了正版的優勢;VMware?workstation則顯示效果很好,能擴大到全屏幕以充分利用顯示器的面積,所以最后保留了VMware?workstation?Pro?15。
為了省電和延長機器使用壽命,設置了自動開關機功能。由于財務部門只在工作日上班,所以在BIOS里設置周一到周五早上7:00自動開主機,在WIN10的計劃任務里設置下午6點自動關主機。開主機之后運行批處理打開所有虛擬機,關主機之前先關閉所有虛擬機。
當這一切都配置完畢,正常運行了幾天之后,忽然發現虛擬機無法關機,原因是財務人員在遠程桌面上沒有退出客戶端,此時如果用vmrun命令行關虛擬機,財務客戶端會彈出窗口詢問“是/否”,然后XP彈出強行關閉程序的對話框,于是虛擬機關機流程就卡在這里了:
為解決此問題,可以編寫vbs腳本,模擬鍵盤發送字母E,這樣就強行關閉了當前程序,XP關機得以完成,但雖然我寫出了腳本,卻發現無法用vmrun在虛擬機里運行這個vbs腳本(如果你知道,歡迎在評論區說明,我會在這里把你列為感謝作者)。但運行bat還是可以的,于是經過百度,把bat和vbs合二為一:
批處理off.bat,存放于虛擬機D盤根目錄,在關閉XP之前,由物理主機從外部調用運行,延遲10秒發送按鍵E。
Sub?bat start?wscript?-e:vbs?"%~f0" Exit?Sub End?Sub rem?------------以下是vbs腳本------------- Set?objShell=CreateObject("Wscript.Shell") WScript.Sleep?10000 objShell.SendKeys"{E}"
開機批處理start.bat,物理主機運行,由計劃任務調用,觸發器設為“啟動時”運行:
::先打開用友服務器 "C:\Program?Files?(x86)\VMware\VMware?Workstation\vmrun"?start?"D:\VM\server\Server.vmx"?nogui ::再打開用友客戶端 "C:\Program?Files?(x86)\VMware\VMware?Workstation\vmrun"?start?"D:\VM\clint01\Windows?XP?Professional.vmx"?nogui
關機批處理stop.bat,物理主機運行,由任務計劃調用,觸發器設為“按預定計劃”,每天下午18點運行:
::虛擬機-用友客戶端關機,虛擬xp先運行off.bat,延遲10s發送按鍵E,再關閉xp,會彈出關閉程序詢問窗口,此時正好接收E "C:\Program?Files?(x86)\VMware\VMware?Workstation\vmrun"?-T?ws?-gu?aaa?-gp?0?runPrograminGuest?"D:\VM\clint01\Windows?XP?Professional.vmx"?"c:\windows\system32\off.bat" "C:\Program?Files?(x86)\VMware\VMware?Workstation\vmrun"?stop??"D:\VM\clint01\Windows?XP?Professional.vmx" ::虛擬機-用友服務器關機 "C:\Program?Files?(x86)\VMware\VMware?Workstation\vmrun"?stop?"D:\VM\server\Server.vmx"?nogui ::關物理主機 shutdown?/s
OK,目標達成!
其它的經驗:
1、物理主機的網卡可以不設地址,或設為一個不存在的網段地址,虛擬機設置為合法網段地址,這樣物理主機就脫離虛擬機網絡,更加安全。
2、如果僅僅是關閉物理主機,就不用以上這么麻煩,關機命令就一條:shutdown /s /f,不管虛擬機是否彈出詢問窗口,都會強行將其關閉。
3、用Win10的記事本編輯批處理,發現用ANSI編碼比默認的UTF-8編碼兼容性更好。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。