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


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.

Последняя команда использует Если оператор, чтобы определить, существует ли по крайней мере один сквозной виртуальный диск. Если результат равен одному или нескольким, команда использует инструкцию 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

Запрашивает подтверждение перед запуском командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Force

Принудительно завершает операцию.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-JobGroup

Задает идентификатор для ряда команд, которые выполняются как набор непосредственно перед последней командой, которая включает тот же идентификатор группы заданий.

Тип:Guid
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-JobVariable

Указывает переменную, в которой выполняется задание, отслеживается и сохраняется.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-OnBehalfOfUser

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

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-OnBehalfOfUserRole

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

Тип:UserRole
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-PROTipID

Указывает идентификатор подсказки по оптимизации производительности и ресурсов (подсказка PRO), активировав это действие. Этот параметр позволяет проверять советы PRO.

Тип:Guid
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-RunAsynchronously

Указывает, что задание выполняется асинхронно, чтобы элемент управления сразу же возвращал командную оболочку.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SkipDeleteVHD

Указывает, что этот командлет не содержит VHD-файл при удалении виртуального диска.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-VirtualDiskDrive

Указывает объект виртуального диска. Можно подключить виртуальный жесткий диск или сквозный диск к объекту виртуального диска.

Тип:VirtualDiskDrive
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-WhatIf

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

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Примечания

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