- PowerShell的 它允許您自動化和集中化 Hyper-V 管理,減少錯誤並節省時間。
- Hyper-V cmdlet 包含基本操作(開機、關機、快照)到進階和遠端管理。
- 腳本整合使得自訂和運行適合每個虛擬基礎架構的例程變得容易。
La 虛擬化 已經成為 標準 用於現代化 IT 基礎設施,以及 Hyper-V的 微軟的解決方案是各種規模的公司最廣泛使用的解決方案之一。但管理數十或數百個 虛擬機 手動操作可能是一項艱鉅的任務。解決方案?這 使用 PowerShell 進行自動化,強大的本機腳本環境 Windows,它允許您以簡單有效的方式協調、控制和最佳化 Hyper-V 環境。
當掌握了 Hyper-V 上的 PowerShell,發現了一個充滿可能性的世界 節省時間, 避免錯誤 y 提高生產力。從動態建立虛擬機器到管理快照、資源監控和遠端管理,可能性與每個 IT 經理的需求一樣廣泛。最好的部分是:所有這些只需幾個 命令 或自訂腳本,甚至無需直接存取伺服器的桌面。
為什麼要使用 PowerShell 自動化 Hyper-V?
PowerShell的 它不僅僅是一個命令控制台:它是一個強大的 自動化框架 和管理整合了 160 多個僅適用於 Hyper-V 的本機 cmdlet。這些專用命令可讓您與虛擬機器管理程式的各個方面進行互動:虛擬機器、交換器、磁碟、遷移、快照、進程、 存儲 等等。
使用 PowerShell for Hyper-V 具有以下優勢:
- 重複性任務的自動化:調度和運行管理整個叢集的腳本可以節省大量體力勞動並最大限度地減少人為錯誤。
- 集中遠端管理:可以從任何電腦管理主機和虛擬機,而無需依賴圖形介面。
- 大規模部署和管理:使用適合每種情況的參數批次建立、修改或刪除虛擬機器。
- 與外部系統集成:PowerShell 腳本可以連接到系統 備用、監控或庫存。
PowerShell 的最大優勢之一是 靈活性 並將其原生整合到 Windows Server 和 Windows 10/11 中。所有 Hyper-V cmdlet 都可以在本地或遠端使用,甚至可以組合成複雜的腳本來執行高階任務。
入門:要求和環境
在我們開始自動化任務之前,值得記住幾個關鍵點:
- 要將 PowerShell 與 Hyper-V 結合使用,您需要 Hyper-V 角色 在將要管理它的伺服器或電腦上已啟用。
- El Hyper-V 模組 必須安裝;這通常在角色啟動時自動發生,但在客戶端系統上可以使用 安裝-WindowsFeature RSAT-Hyper-V-工具.
- 建議 以管理員身分執行 PowerShell 以避免與虛擬機器互動時出現權限問題。
- 如果您要遠端工作(管理另一台主機),可能需要啟用 遠程桌面 並檢查所使用的帳戶是否具有目標電腦上的 Hyper-V 權限。
要開啟 PowerShell,有幾種方法:從圖形介面在「開始」中輸入「PowerShell」;從命令列(CMD。 EXE檔案);或如果您正在尋找進階腳本和偵錯功能,請使用 PowerShell ISE。
發現 Hyper-V cmdlet
開始時的第一個問題是如何知道 有哪些指令可用 管理 Hyper-V。答案就在:
取得命令-模組 hyper-v
此命令傳回 Hyper-V 模組內建的所有 cmdlet 的完整清單。它們可以使用更易於管理的格式(表格、清單、彈出視窗)進行篩選或顯示 格式表, 格式列表 u 外網格視圖 分別。
要查看任何 cmdlet 的詳細幫助,只需:
取得幫助 Cmdlet 名稱
例如,要取得有關如何列出虛擬機器的資訊、語法、參數和範例:
取得協助 取得虛擬機
不要忘記透過運行來更新幫助 更新幫助 獲得最新、最有用的資訊。
基本管理:列出、啟動和關閉虛擬機
一旦認識到環境,日常行為就會變得微不足道。以下是一些日常使用的基本指令:
- 列出所有虛擬機器: 取得虛擬機
- 按狀態過濾: 僅獲取正在運行或關閉的:
- 取得虛擬機器 |其中物件 {$_.State -eq'Running'}
- 取得虛擬機器 |物件位置 {$_.State -eq 'Off'}
- 搜尋特定的虛擬機器: 取得虛擬機器 |其中物件 {$_.Name -eq'VMName'}
啟動和關閉虛擬機 也很直接:
- 啟動虛擬機器: 啟動虛擬機器 - 名稱“虛擬機器名稱”
- 停止虛擬機器: 停止虛擬機器 - 名稱“虛擬機器名稱”
- 啟動所有已關閉的虛擬機器: 取得虛擬機器 |其中物件 {$_.State -eq 'Off'} |啟動虛擬機
- 關閉所有正在運行的虛擬機器: 取得虛擬機器 |其中物件 {$_.State -eq'Running'} |停止虛擬機
您也可以根據自訂條件(例如虛擬機器名稱、狀態或特徵)自動執行批次操作。
在 Hyper-V 中自動建立虛擬機
最大的節省時間的方法之一是 無人值守虛擬機器創建。 PowerShell 可讓您調整所有關鍵參數:名稱、記憶體、產生、磁碟、位置、網路交換器等。
建立第二代虛擬機器並將 2GB 虛擬硬碟指派給特定交換器的簡單範例:
New-VM -Name «DemoVM» -MemoryStartupBytes 2GB -Generation 2 -NewVHDPath «C:\Virtual Machines\DemoVM\DemoVM.vhdx» -NewVHDSizeBytes 53687091200 -SwitchName «外部網路»
可新增額外的磁碟、控制器、DVD 驅動器,或可廣泛配置從 ISO 啟動。
若要使用 PowerShell 建立虛擬交換器:
New-VMSwitch -名稱“MySwitch” -NetAdapterName“乙太網路”
客製化可以擴展到創建部署數十個具有名稱、儲存、網路等變更的虛擬機器的腳本。
快照和檢查點:使用 PowerShell 進行高階管理
很多 檢查點(快照) 允許您在給定時間捕獲虛擬機器的精確狀態。 PowerShell 不僅可以輕鬆建立它們,還可以完全管理它們:命名、復原、匯出和刪除。
- 建立標準檢查點: 檢查點虛擬機器-名稱“DemoVM”
- 使用自訂名稱建立檢查點: Checkpoint-VM -名稱'DemoVM' -SnapshotName «BeforeUpdate»
- 列出虛擬機器的檢查點: 取得 VMCheckpoint -VMName 'DemoVM'
- 恢復檢查點: Restore-VMCheckpoint -名稱'DemoVM - 測試' -VM名稱'DemoVM' -確認:$false
- 重新命名檢查點: 重新命名-VMCheckpoint -VMName'DemoVM'-名稱'OldName'-NewName'NewName'
- 刪除快照: Remove-VMCheckpoint -VM名稱'DemoVM' -名稱'SnapshotObsolete'
那裡 三種類型的檢查點:
- 標準版:捕獲RAM和磁碟狀態;有用但可能會影響某些服務的一致性。
- 製作:使用卷影複製服務 (VSS),非常適合生產環境。
- 僅限生產:與生產相同,但如果失敗,則不會回退到標準。
每個虛擬機器的檢查點類型配置透過以下方式完成:
設定虛擬機器-名稱“DemoVM”-檢查點類型生產
建議定期驗證和清理檢查點,以避免累積和潛在的效能問題。
進階操作:遷移、備份和匯出
La 即時遷移 Hyper-V 最強大的功能之一是:您可以在主機之間移動虛擬機器而無需停止它們。為此,PowerShell 是關鍵:
移動虛擬機器-名稱'DemoVM'-目標主機'目標主機'
可調整儲存、目標路線或指派的資源等選項。
至 匯出虛擬機 完成其配置和磁碟後,最有效的是:
Export-VM「DemoVM」-路徑«F:\Backups»-CopyState
檢查點也可以單獨匯出,以方便執行任務 災難恢復:
Export-VMCheckpoint -VMName'DemoVM'-名稱'BeforeUpdate'-路徑'F:\Snapshots'
任何虛擬機器的當前狀態都可以使用以下命令儲存:
儲存虛擬機器“DemoVM”
管理網路、儲存和虛擬機器資源
PowerShell 對於監控和修改網路和儲存元件同樣有效:
- 虛擬網路介面卡: 取得 VMNetworkAdapter -VMName 'DemoVM'
- 建立 VHDX 磁碟並附加它們: New-VHD -Path 'C:\VMs\DiscoExtra.vhdx' -SizeBytes 60GB -Fixed
- 新增 VMHardDiskDrive -VMName'DemoVM'-Path'C:\VMs\DiscoExtra.vhdx'
檢查虛擬磁碟的狀態和健康狀況透過以下方式完成:
測試 VHD -路徑'C:\VMs\DiscoExtra.vhdx'
此外,還可以監控虛擬機器資源以識別瓶頸:
- CPU、RAM、磁碟和網路使用情況: 測量虛擬機器 -VMName 'DemoVM'
- 激活資源測量: 啟用-VMResourceMetering-VMName'DemoVM'
控制記憶體和 CPU 設定很簡單:
- 取得 VMMemory -VMName 'DemoVM'
- 取得 VMCPUCount -VMName 'DemoVM'
遠端管理和 PowerShell Direct
最近最值得注意的進展之一是 PowerShell 直接,它允許您從主機在虛擬機器上運行命令,即使沒有網路或事先的通訊配置。非常適合受限環境或災難復原。
若要開啟直接會話:
輸入 PSSession -VMName 'DemoVM'
也可以使用以下命令在虛擬機器上啟動複雜腳本:
呼叫指令-VMName'DemoVM'-ScriptBlock{取得服務}
持久會話促進了文件傳輸:
$Session = New-PSSession -VMName'DemoVM'-Credential(取得憑證)
複製專案-ToSession $Session-路徑'C:\installer.exe'-目標'C:\temp'
PowerShell 直接 只要 VM 位於同一台主機上,它就可以從 Windows Server 2016 和 Windows 10 中使用。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。