Share via


Remove-SCVirtualDiskDrive

從虛擬機器或虛擬機器範本中移除虛擬磁片磁碟機。

Syntax

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 迴圈來選取名稱包含陣列中字串 LOB $VirtDiskDrives Data 的所有虛擬磁片磁碟機物件,並將這些物件傳遞至目前的 Cmdlet。 此 Cmdlet 會從 VMM 移除物件。

參數

-Confirm

在執行 Cmdlet 前提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

強制作業完成。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobGroup

指定一系列命令的識別碼,這些命令會在包含相同作業群組識別碼的執行的最後一個命令之前,以集合的形式執行。

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobVariable

指定追蹤和儲存作業進度的變數。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OnBehalfOfUser

指定使用者名稱。 此 Cmdlet 代表此參數指定的使用者運作。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OnBehalfOfUserRole

指定使用者角色。 若要取得使用者角色,請使用 Get-SCUserRole Cmdlet。 此 Cmdlet 代表此參數所指定的使用者角色運作。

Type:UserRole
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PROTipID

指定觸發此動作之 PRO 提示 (PRO 提示的識別碼) 。 此參數可讓您稽核 PRO 秘訣。

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsynchronously

表示作業會以非同步方式執行,讓控制項立即返回命令殼層。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipDeleteVHD

指出此 Cmdlet 不會在移除虛擬磁片磁碟機時使用 VHD 檔案。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VirtualDiskDrive

指定虛擬磁碟機物件。 您可以將虛擬硬碟或傳遞磁片連結至虛擬磁片磁碟機物件。

Type:VirtualDiskDrive
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

備註

  • 需要 VMM 虛擬磁片磁碟機物件,可以使用 Get-SCVirtualDiskDrive Cmdlet 來擷取。