共用方式為


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_IfGet-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 擷取。