Поделиться через


Remove-SCVirtualDiskDrive

Удаляет диски виртуальных дисков из виртуальной машины или из шаблона виртуальной машины.

Синтаксис

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

Описание

Командлет Remove-SCVirtualDiskDrive удаляет объекты виртуального диска из виртуальной машины или из шаблона виртуальной машины в среде 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]}

Первая команда возвращает объект виртуальной машины с именем VM01, развернутый на VMHost01 с помощью командлета Get-SCVirtualMachine . Команда сохраняет этот объект в переменной $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 для итерации виртуальных машин, хранящихся в $VM, для получения всех объектов виртуального диска с каждой виртуальной машины. Вторая команда сохраняет объекты виртуального диска в массиве объектов $VirtDiskDrives.

Третья команда использует второй цикл ForEach для выбора всех объектов виртуального диска, имя которых содержит строку LOBData из массива $VirtDiskDrives и передает эти объекты текущему командлету. Этот командлет удаляет объекты из VMM.

Параметры

-Confirm

Запрос подтверждения перед выполнением командлета.

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

Указывает имя пользователя. Этот командлет работает от имени пользователя, указанного этим параметром.

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

-OnBehalfOfUserRole

Указывает роль пользователя. Чтобы получить роль пользователя, используйте командлет Get-SCUserRole . Этот командлет работает от имени роли пользователя, указанной этим параметром.

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

-PROTipID

Указывает идентификатор подсказки по оптимизации производительности и ресурсов (подсказка 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

Указывает, что этот командлет не использует 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

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

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

Примечания

  • Требуется объект виртуального диска VMM, который можно получить с помощью командлета Get-SCVirtualDiskDrive .