管理員必備的五大PowerShell v3虛擬化命令
在Windows Server 2012中,微軟幫助你借助PowerShell命令行完善管理Hyper-V虛擬化基礎設施和虛擬機(VM)。事實上,Windows Server 2012包含了幾十個專門用于服務器虛擬化的Windows PowerShell v3命令。單個PowerShell cmdlet雖然不會讓每個數據中心受益,但其他的cmdlet提供了重要的管理功能。
PowerShell v3語法雖然看上去有點復雜,但是很值得學習,尤其是當你需要管理大規(guī)模數量的虛擬機的時候。
這里列出了每個管理員都需要知道的五個重要的PowerShell v3命令。
Get-VM cmdlet
Get-VM幾乎是使用最頻繁的與服務器虛擬化相關的PowerShell v3命令。當不予任何交換機共同工作時,Get-VM cmdlet返回一個包含主機服務器上所有當前VM的列表。如圖所示,列表還包含了VM的狀態(tài)、CPU和內存使用、正常運行時間和狀態(tài)等信息。使用該命令,你還可以檢索某個特定的VM通過一系列的命令行交換器之后的顆粒信息。
Invoke-Command cmdlet進行批量操作
Invoke-Command cmdlet執(zhí)行批量的PowerShell操作。管理大規(guī)模數量的VM變得更加簡單,因為你可以在多個Hyper-V主機上運行該cmdlet。僅包括-ComputerName開關,目標服務器名稱之間用逗號分隔,在遠程服務器上運行的命令以大括號結束。
假設你要檢索標記為Lab1和Lab2的服務器上運行的所有VM的名稱和狀態(tài),可以使用下面的PowerShell v3命令:
Invoke-Command –ComputerName Lab1, Lab2 {Get-VM | FT VMName, State, PrimaryStatusDescription}
圖片內容是該命令的一個示例。如圖所示,Invoke-Command指出了多個Hyper-V主機上的Get-VM命令。該圖還列出出了每個VM指定顯示的屬性。
Get-ClusterGroup cmdlet監(jiān)控群集資源
Get-ClusterGroup cmdlet是Windows Server 2012故障轉移群集功能的一部分,在虛擬服務器環(huán)境中尤其有用。大多數生產虛擬服務器形成集群來提高VM的可靠性。Get-ClusterGroup cmdlet生成群集VM的健康報告。
Get-ClusterGroup cmdlet自動運行,檢索所有的群集資源信息,包括VM等。為了限制VM列表,你必須加上Where GroupType –EQ 'VirtualMachine' 。整個的PowerShell v3命令如下:
Get-ClusterGroup | Where GroupType –EQ 'VirtualMachine' | Get-VM
上圖顯示了運行中的命令。圖表中,我將輸出重定向到Get-VMcmdlet檢索集群VM;但是,你可以很容易地在你的集群VM中應用該技術來執(zhí)行任何批量操作。
Stop-VM cmdlet和Start-VM cmdlet更改狀態(tài)
你可以使用 Start-VM cmdlet啟動任何虛擬機。除了VM名稱,這個簡單的cmdlet不需要任何命令行開關項。簡單地說,如果你想停止一臺VM,使用如圖所示的Stop-VM cmdlet。這些PowerShell v3 cmdlet在執(zhí)行腳本操作中簡單易用,注意需要重啟VM。
New-VM cmdlet能夠在 PowerShell v3命令行中創(chuàng)建一個全新的虛擬機。如果你使用該cmdlet創(chuàng)建新VM時,只指明了新VM的名稱,它會創(chuàng)建一個具有以下資源的VM:
- 512 MB內存
- DVD驅動器
- 1個虛擬處理器
當然,你可以在VM創(chuàng)建過程中分配更多的資源,比如虛擬網絡適配器和虛擬硬盤。但這要求額外的命令和命令行開關項。上圖顯示了該工具如何從命令行創(chuàng)建VM。