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 .