Remove-SCVirtualDiskDrive
從虛擬機或虛擬機範本中移除虛擬磁碟驅動器。
語法
Remove-SCVirtualDiskDrive
[-VirtualDiskDrive] <VirtualDiskDrive>
[-SkipDeleteVHD]
[-JobGroup <Guid>]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
Description
Remove-SCVirtualDiskDrive Cmdlet 會從虛擬機或 Virtual Machine Manager (VMM) 環境中的虛擬機範本中移除虛擬磁碟驅動器物件。
範例
範例 1:從虛擬機器移除虛擬磁碟驅動器
PS C:\> $VM = Get-SCVirtualMachine | Where-Object { $_.VMHost.Name -Eq "VMHost01.Contoso.com" -And $_.Name -Eq "VM01" }
PS C:\> $VirtDiskDrive = @(Get-SCVirtualDiskDrive -VM $VM)
PS C:\> If($VirtDiskDrive.Count -Gt 1){Remove-SCVirtualDiskDrive -VirtualDiskDrive $VirtDiskDrive[1]}
第一個命令會使用 Get-SCVirtualMachine Cmdlet,取得在 VMHost01 上部署名為 VM01 的虛擬機物件。 命令會將該物件儲存在 $VM 變數中。
第二個命令會取得 VM01 上的所有虛擬磁碟驅動器對象,然後將擷取的物件儲存在$VirtDiskDrive中。 使用 @ 符號和括號可確保命令會將結果儲存在陣列中,即使命令傳回單一物件或$Null值也一樣。
最後一個命令會傳回與虛擬機相關聯的虛擬磁碟驅動器數目,然後,如果有多個磁碟驅動器存在,命令會從虛擬機中移除 [1]所指定的第二個虛擬磁碟驅動器。
範例 2:移除連結至虛擬機的所有傳遞磁碟
PS C:\> $VM = Get-SCVirtualMachine | Where-Object {$_.Name -Eq "VM02"}
PS C:\> $VirtDiskDrives = @(Get-SCVirtualDiskDrive -VM $VM | Where-Object {$_.IsVHD -Eq $False})
PS C:\> If($VirtDiskDrives.Count -Gt 0){ForEach($VirtDiskDrive in $VirtDiskDrives){Remove-SCVirtualDiskDrive -Force -VirtualDiskDrive $VirtDiskDrive}}
第一個命令會取得名為 VM02 的虛擬機對象,然後將該物件儲存在$VM變數中。
第二個命令會取得連接至非虛擬硬碟之 VM02 的所有虛擬磁碟驅動器物件。 此命令只會取得代表傳遞磁碟的物件。 命令會將傳遞磁碟物件儲存在$VDDs對象陣列中。
最後一個命令會使用 If 語句來判斷至少有一個傳遞虛擬磁碟驅動器存在。
如果結果為一或多個,則命令會使用 ForEach 語句,從物件陣列中移除每個虛擬磁碟驅動器。
如需詳細資訊,請輸入 Get-Help about_If
和 Get-Help about_Foreach
。
最後一個命令會指定 Force 參數。 因此,即使其他 VMM 物件相依於該虛擬磁碟驅動器,命令也會從其虛擬機中移除每個虛擬磁碟驅動器。
範例 3:依名稱移除虛擬磁碟驅動器
PS C:\> $VM = @(Get-SCVirtualMachine | Where-Object {$_.Name -Match "WebSrvLOB"})
PS C:\> ForEach-Object ($VM in $VMs){$VirtDiskDrives = Get-SCVirtualDiskDrive -VM $VM
PS C:\> ForEach-Object ($VirtDiskDrive in $VirtDiskDrives){If($VirtDiskDrive.Name -Match "LOBData"){Remove-SCVirtualDiskDrive -VirtualDiskDrive $VirtDiskDrive}}}
第一個命令會取得名稱符合字串 WebSrvLOB 的所有虛擬機物件,然後將這些物件儲存在$VM陣列中。
接下來的兩個命令會使用 ForEach-Object Cmdlet 逐一查看儲存在 $VM 中的虛擬機,從每個虛擬機取得所有虛擬磁碟驅動器物件。 第二個命令會將虛擬磁碟驅動器物件儲存在$VirtDiskDrives對象陣列中。
第三個命令會使用第二個 ForEach 迴圈來選取名稱包含$VirtDiskDrives陣列中 LOBData 字串的所有虛擬磁碟驅動器物件,並將這些對象傳遞至目前的 Cmdlet。 此 Cmdlet 會從 VMM 移除物件。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Force
強制作業完成。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-JobGroup
指定一系列命令的標識碼,這些命令會在包含相同作業群組標識符執行的最後一個命令之前,以集合的形式執行。
類型: | Guid |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-JobVariable
指定追蹤和儲存作業進度的變數。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-OnBehalfOfUser
指定用戶名稱。 這個 Cmdlet 代表此參數指定的用戶運作。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-OnBehalfOfUserRole
指定使用者角色。 若要取得使用者角色,請使用 Get-SCUserRole Cmdlet。 這個 Cmdlet 代表此參數指定的使用者角色運作。
類型: | UserRole |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-PROTipID
指定觸發此動作之效能和資源優化提示 (PRO 提示) 的識別碼。 此參數可讓您稽核 PRO 秘訣。
類型: | Guid |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-RunAsynchronously
表示作業會以異步方式執行,讓控件立即返回命令殼層。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-SkipDeleteVHD
指出此 Cmdlet 不會在移除虛擬磁碟驅動器時使用 VHD 檔案。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-VirtualDiskDrive
指定虛擬磁碟驅動器物件。 您可以將虛擬硬碟或傳遞磁碟連結至虛擬磁碟驅動器物件。
類型: | VirtualDiskDrive |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
備註
- 需要 VMM 虛擬磁碟驅動器物件,可以使用 get-SCVirtualDiskDrive Cmdlet
擷取。