2013-10-17 152 views
1

我正在尋找一種自動方式在Windows Powershell中啓動虛擬機。有沒有人對我如何完成這項任務有任何意見?如何通過Powershell啓動虛擬機

我環顧四周,迄今爲止一直沒有成功找到辦法。

我認爲這是一個標準的cmdlet格式powershell,但我開始認爲我錯了這個假設。 (如果我正確理解這一點)PowerCLIs Start-VM和我有問題說我目前沒有連接到服務器,但我不相信我有一個服務器連接到(除非我我正想着這個錯誤的方式)。我現在正試圖在本地執行此操作,以檢查它是否是有效的VM。

---編輯---

我期待與VMware要做到這一點,但實際上如果這意味着無需花費任何金錢這樣做,我可以使用Windows。

我也使用PowerShell 2.0和它似乎並不認爲啓動VM對我來說是不幸的是使用一個選項...

--- EDIT 2 ---

任何人可以進一步解釋WMI是如何工作的?我比較新的使用PowerShell,我從來沒有必須使用WMI。

任何幫助將非常感激。謝謝!

+0

您沒有提及您使用的是哪種虛擬化解決方案。 VMWare的? Hyper-V的? Xen的? VirtualBox的? – mikekol

+0

@mikekol - 我編輯了我的問題以上回答你的問題...我想這將有助於指出這種信息... – scapegoat17

+0

我已經寫了一篇[關於此博客文章](http:// torywaterman.blogspot.com/2013/09/using-powershell-to-shutdown-apply.html)。這是用於遠程處理,關閉,應用快照並啓動它們......你只需要最後一點。這僅在Server 2008 R2上使用Hyper-V進行了測試,但它可能適用於您。我已經發布了相關的答案。 – tnw

回答

1

擴展上面...此代碼段我的意見應該做你需要的東西:

$VM = gwmi MSVM_ComputerSystem -filter "ElementName='serverName'" -namespace "root\virtualization" -computername "." 
$VM.requeststatechange(2) 

WMI是相當過時,但(PowerShell的1.0),這對我的作品Server 2008 R2上。你應該添加你正在使用的操作系統。如果你在Server 2012上,它會容易得多。只要使用Start-VM(PowerShell的4.0):

Start-VM –Name VMName 

可以說是比使用WMI容易得多。

+0

我編輯了我正在使用的powershell版本(2.0版本)。我不相信Start-VM對我來說是不幸的。 WMI是我唯一的選擇嗎? – scapegoat17

+0

您也可以使用CodePlex的PSHyper-V模塊。它爲你包裝了很多WMI資料。 https://pshyperv.codeplex.com/ – mikekol

+0

@tnw - 你能否通過闡述你在腳本中做什麼來幫助我?我對PS腳本相當陌生,特別是使用WMI,我不太瞭解你在用你的參數做什麼。 – scapegoat17