前一陣子為了要安裝一些 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.

anISV 發表在 痞客邦 PIXNET 留言(0) 人氣()