Windows UNIX Linux 自動化管理 虛擬化

活用PowerShell命令 高效管理Hyper-V

2018-05-21
當多數的應用系統都轉移至虛擬化架構時,組織對於IT的營運必須懂得徹底善用虛擬化技術所帶來資源分配效益。為此,系統管理者須開始學習PowerShell Cmdlet的使用,讓許多例行性與常用的管理任務能夠藉由命令與Script搭配執行,達到高效率的批次操作與自動化運行。
儘管Windows的視窗介面設計一路走來不斷地力求創新與突破,但可別忘了DOS的命令列視窗始終也一直跟隨著它,甚至進一步為了力抗強敵UNIX/Linux的Shell,還推出了以.NET Framework和.NET Core為基礎的PowerShell,它支援與UNIX Shell命令和Cmd.exe批次檔類似的命令碼,所撰寫的Script副檔名則是.ps1,設計上可處理物件與結構化的資料,而不只是顯示在命令視窗中的字元或字串。

PowerShell不僅可以用來管理作業系統,也能夠進行本機或遠端所支援的應用系統管理,而當中是否支援的關鍵便在於該應用系統是否有提供相關的模組讓PowerShell載入使用。一旦所提供的模組被成功載入後,便可以在PowerShell中執行模組內所提供的各項操作命令。

若想在PowerShell中執行異質的VMware PowerCLI相關命令來管理vSphere虛擬化架構環境中的所有物件,只要預先執行「Add-PSSnapinVMware.VimAutomation.Core」命令即可,這樣就不需要額外開啟PowerCLI命令視窗程式進行操作。也就是說,直接在單一的PowerShell命令介面中同時管理Hyper-V與vSphere的虛擬化架構。接著,就一探究竟如何善用幾個簡單實用的PowerShell命令與Script來提升Hyper-V的維運效率。

安裝PowerShell的Hyper-V模組

想要在PowerShell中以命令或Script來管理Hyper-V主機,不一定得在Hyper-V本機上執行,其實只要Windows電腦中有安裝PowerShell和Hyper-V模組即可。以Windows Server 2016為例,如圖1所示,只要在「功能選取」頁面中依序勾選「角色管理工具」→「Hyper-V管理工具」→「適用於Windows PowerShell的Hyper-V模組」,然後進行安裝即可。


▲圖1 在Windows Server 2016安裝Hyper-V模組功能。

若是最新版本的Windows 10(1709版本),則可以先開啟「設定」中的「App」管理頁面。接著,在「應用程式與功能」頁面內點選「相關設定」區域中的「程式和功能」超連結。隨後點選「開啟或關閉Windows功能」超連結,並勾選「Hyper-V」→「Hyper-V管理工具」節點下的「適用於Windows PowerShell的Hyper-V模組」來完成安裝。

此外,無論是在Windows Server 2016還是Windows 10,如果想要使用PowerShell命令來安裝Hyper-V的完整管理工具,則執行以下命參數:

Add-WindowsFeature RSAT-Hyper-V-Tools
 -IncludeAllSubFeature
命令查詢與遠端連線

想要透過PowerShell來管理Hyper-V主機,最好能夠先知道在它的模組中大致上有哪些命令可用,以及如何快速得知任一命令參數的使用方法。只要執行「Get-Command -Module Hyper-V | Out-GridView」命令參數,系統便會以GridView視窗來開啟Hyper-V命令的清單(圖2)。若省略Out-GridView命令,命令清單則會直接呈現在PowerShell命令視窗中,而較不易閱讀。


▲圖2 查詢Hyper-V模組可用的命令清單。

針對任一命令的基礎用法,其實並不需要一一牢記,只要透過Get-Help來查詢即可。不過,為了讓電腦在無法連線Internet時,也能夠隨時查詢任一命令的用法,建議預先執行「Update-Help」來下載最新的使用說明。如果只想要更新Hyper-V模組的使用說明,則改成執行「Update-Help -Module Hyper-V」命令參數。

成功下載使用說明後,往後如果要查詢選定命令的用法,例如Get-VM,只要執行「Get-Help Get-VM」即可。如果只是要查看命令的使用範例,可以加入-Example參數,若要查看完整的命令使用說明,則改為-Detailed參數。

接著,對於網域中的Hyper-V主機,若想透過建立PowerShell遠端工作階段連線來管理遠端主機的各項配置,只要執行「Enter-PSSession hostname -Credential (Get-Credential)」或「Enter-PSSession hostname -Credential (Get-Credential) -UseSSL」命令,並輸入相關的登入資訊即可,其中的-UseSSL參數是根據目標主機已有提供SSL加密連線才需要設定。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!