Remove-SCVirtualDiskDrive

从虚拟机或虚拟机模板中删除虚拟磁盘驱动器。

语法

Remove-SCVirtualDiskDrive
      [-VirtualDiskDrive] <VirtualDiskDrive>
      [-SkipDeleteVHD]
      [-JobGroup <Guid>]
      [-Force]
      [-RunAsynchronously]
      [-PROTipID <Guid>]
      [-JobVariable <String>]
      [-WhatIf]
      [-Confirm]
      [-OnBehalfOfUser <String>]
      [-OnBehalfOfUserRole <UserRole>]
      [<CommonParameters>]

说明

Remove-SCVirtualDiskDrive cmdlet 从虚拟机或虚拟机模板中删除虚拟机或虚拟机模板中的虚拟磁盘驱动器对象, (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 之前进行确认。

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 提示) 的性能和资源优化提示的 ID。 此参数允许审核 PRO 提示。

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

-RunAsynchronously

指示作业以异步方式运行,以便控件立即返回到命令 shell。

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 进行检索。