共用方式為


虛擬化:使用 Windows PowerShell 建立 Hyper-V 虛擬機器

如果您需要經常建立和設定虛擬機器,使用 Windows PowerShell 可加快此一程序。

尼爾 · 塔克

無論您需要測試新的或標準化的伺服器設置,HYPER-V 為您提供一個環境,以快速、 高效地運行測試配置,這使得它受歡迎的實驗室環境。 唯一需要注意的是,您需要創建和配置虛擬機器 (Vm) 定期。

如果你在尋找建立 HYPER-V 映射的簡單方法,Windows PowerShell 腳本是一個可行的解決方案。 程度,你可以自訂 Windows PowerShell 和其靈活的指揮結構使得它適用于任何環境。 當與自動化或無操作安裝程式策略相結合,幾乎任何電腦配置是可行的。

配置 Windows PowerShell

此策略假定您正在處理一個 Windows Server 2008 R2 系統,滿足 HYPER-V 角色的要求。 執行以下步驟後,系統將會準備 HYPER-V 腳本:

  1. 安裝 HYPER-V 角色和 Windows PowerShell。 從伺服器管理器或使用 ServerManagerCmd.exe 命令列工具 (ServerManagerCmd.exe –install HYPER-V 和 ServerManagerCmd.exe –install PowerShell),你可以這樣做。
  2. 配置 Windows PowerShell 允許腳本的使用。 這是預設情況下禁用。 您可以配置此與集 ExecutionPolicy cmdlet (集 ExecutionPolicyRemoteSigned)。
  3. 下載並安裝 Windows PowerShell HYPER-V 模組。 您需要訪問 Windows PowerShell 而專門設計的所有 cmdlet 此模組。 從 CodePlex PowerShell 管理庫 HYPER-V 頁,下載、 非發展的最新穩定版本。 請確保您在安裝之前,從壓縮檔中"塊"屬性被刪除。 這將執行安裝程式腳本無需數位簽章。 如果你正在做對伺服器核心安裝,取消阻止,並將另一台電腦上的模組檔解壓縮之前將安裝檔複製到伺服器。 否則,你需要額外的工具來執行這些操作 (SysinternalsSuite 和 7 Zip 的 stream.exe 工具) 的伺服器上。
  4. 提升的 Windows PowerShell 命令提示符,讓從 HYPER-V cmdlet 通過導入新安裝的模組 (導入模組 HyperV)。 如果收到一條錯誤消息,請驗證您沒有錯過上一步。 如果您打算定期使用 Windows PowerShell 管理您的 HYPER-V 環境,應添加導入模組和集 ExecutionPolicy cmdlet,Windows PowerShell 設定檔。 這會讓你無需配置伺服器每次使用的 cmdlet。 為了避免任何運行 cmdlet 的問題,應始終使用高架的 Windows PowerShell 命令環境。

要驗證您已經成功安裝 cmdlet,它們能正常運行,請使用 Get 命令 cmdlet 看到你 (Get 命令 –Module Hyperv) 的可用命令的清單。 正如與其他模組,每個 cmdlet 如何使用它 (獲取説明新 VM –Detailed 和獲取説明新 VM –Examples) 附帶有關其功能和示例的説明資訊。 有附加的文檔的可用上 CodePlex

配置超 V Windows PowerShell 腳本

一旦您的 Windows PowerShell 環境準備好,您可以開始構建新的虛擬機器。 請確保您使用這些命令使用提升的許可權的管理員許可權啟動。 該腳本來創建新的虛擬機器基於五個變數使用 HYPER-V cmdlet (請參見圖 1) 您在安裝過程中提供。 每個變數的預的預設值,將使用,如果不提供。

圖 1 HYPER-V 虛擬機器 (VM) 在安裝過程中定義的變數說明。

$ SRV1 移動 虛擬機器名稱
$ SRAM 分配給虛擬機器的記憶體量
$ SRV1VHD 使用虛擬機器的虛擬硬碟的大小
$ VMLOC 您要在其上創建虛擬機器的虛擬硬碟上的位置
網路 1 元 VM 虛擬網路連接

定義這些變數,新 Image.ps1 腳本後 (請參見圖 2) 配置 HYPER-V 虛擬網路使用分配給網路 1 元變數的值。 在定義新的私人網路絡與新-VMPrivateSwitchcmdlet 之前, 刪除它與刪除 VMSwitch,不論是否它已經存在。 這將確保您不定義重複網路具有相同的名稱。

圖 2 創建新的虛擬機器的新 Image.ps1 腳本。

# This script creates a new Hyper-V machine with hard drive, memory & network resources configured. # Variables $SRV1 = Read-Host "Enter the Virtual Machine name (Press [Enter] to choose Server01): " if ($SRV1 -eq ""){$SRV1="Server01"} ; if ($SRV1 -eq $NULL){$SRV1="Server01"} $SRAM = Read-Host "Enter the size of the Virtual Machine Memory (Press [Enter] to choose 512MB): " if ($SRAM -eq ""){$SRAM=512MB} ; if ($SRAM -eq $NULL){$SRAM=512MB} $SRV1VHD = Read-Host "Enter the size of the Virtual Machine Hard Drive (Press [Enter] to choose 40GB): " if ($SRV1VHD -eq ""){$SRV1VHD=40GB} ; if ($SRV1VHD -eq $NULL){$SRV1VHD=40GB} $VMLOC = Read-Host "Enter the location of the Virtual Machine file (Press [Enter] to choose C:\HyperV): " if ($VMLOC -eq ""){$VMLOC="C:\HyperV"} ; if ($VMLOC -eq $NULL){$VMLOC="C:\HyperV"} $Network1 = Read-Host "Enter the name of the Virtual Machine Network (Press [Enter] to choose Network1): " if ($Network1 -eq ""){$Network1="Network1"} ; if ($Network1 -eq $NULL){$Network1="Network1"} # Configure Hyper-V Virtual Network remove-vmswitch $Network1 -force -erroractionsilentlycontinue new-vmprivateswitch $Network1 # Create Virtual Machines MD $VMLoc -erroractionsilentlycontinue new-vm $SRV1 -path $VMLoc new-vhd -vhdpaths $VMLoc\$SRV1 -size $SRV1VHD add-vmdisk -vm $SRV1 -controllerid 0 -lun 0 -path $VMLoc\$SRV1 get-vm $SRV1 | add-vmdrive -controllerid 1 -lun 0 -dvd get-vm $SRV1 | set-vmmemory -memory $SRAM get-vm $SRV1 | add-vmnic -virtualswitch $Network1

最後一部分實際上創建虛擬機器的過程很簡單。 創建虛擬硬碟 (VHD) 的目錄位置。 然後六個 cmdlet 創建和配置新的虛擬機器。

新 VM 命令定義機器和它的位置。 新 VHD 創建 VHD 檔並添加 VMDisk 將它分配給虛擬機器。 添加 VMDrive 添加到電腦的 DVD 驅動器、 集 VMMemory 定義的 RAM 量和添加 VMNIC 配置網卡。

一旦您已經配置新的虛擬機器,您可以安裝哪種作業系統,您將使用。 您也可以編寫腳本和管理與 Windows PowerShell OS 安裝過程。 使用 Windows PowerShell 自動完成這些任務可以加速並簡化整個過程中,尤其是如果你要定期做這。

Neil R. Tucker

Neil R. 塔克, MCT、 MCITP、 MCDBA、 MCSE MCDST,擁有超過 17 年的經驗的技術人員、 教練和技術作家。他諮詢、 SQL Server、 Windows 伺服器、 Windows 7 和 Windows PowerShell 授課。他也是微軟學習 50331 課程為 Windows 7 的桌面支援技術人員的作者。

相關內容