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_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 之前进行确认。
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 检索该对象。