前一陣子為了要安裝一些 x64 版的應用程式來測試,所以便將筆記電型電腦安裝 Windows Server 2008 R2 RC x64 版,沒想到安裝完後,它可以抓到所有的硬體來使用,包含無線網卡,而且效能真是不錯。
筆者使用過 Virtual PC 2004、Virtual PC 2007、Virtual PC 2007 SP1、Windows Virutal PC等,目前覺得 Hyper-V 有很多新的功能不錯,像是 Snapshot 或是直接把 Snapshot 匯出成另一個新的 Virtual Machine等等。
用了一陣子後,想說有沒有比透過 Hyper-V 的管理畫面來啟啟 Virtual Machine 更快的方法?
PowerShell -對,就是 PowerShell。
將下列的指令存檔為 HyperV.ps1,
=================================================================
#override the default security behavior of the PowerShell engine
#Set-ExecutionPolicy RemoteSigned
Param($operation, $servername)
if ($operation -eq 'start')
{
$stateId = 2
}
elseif ($operation -eq 'save')
{
$stateId = (32769)
}
else
{ "Unknown operation"
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
throw
}
#Get a handle to the VM object
$VM = get-wmiobject -namespace root\virtualization -class Msvm_Computersystem -filter "ElementName = '$servername'"
#Set the state
$status = $VM.RequestStateChange($stateId)
#Are we already in this state?
if ($status.ReturnValue -eq 32775)
{
"Already in this state"
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
#Wait for use to press key if it did not work successfully
#0 = Success; 4096 = Job Running
elseif (($status.ReturnValue -ne 0) -and ($status.ReturnValue -ne 4096))
{
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
==================================================================
開啟 PowerShell,
執行 Set-ExecutionPolicy RemoteSigned
若執行 .\HyperV.ps1 start WIN7PROx64 => 啟動 WIN7PROx86 這個 Virtual Machine
若執行 .\HyperV.ps1 save WIN7PROx64 => 存儲 WIN7PROx86 這個 Virtual Machine
Enjoy.
留言列表