Partilhar via


Remove-SCVirtualDiskDrive

Remove unidades de disco virtual de uma máquina virtual ou de um modelo de máquina virtual.

Sintaxe

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

Description

O cmdlet Remove-SCVirtualDiskDrive remove objetos de unidade de disco virtual de uma máquina virtual ou de um modelo de máquina virtual em um ambiente do Virtual Machine Manager (VMM).

Exemplos

Exemplo 1: Remover uma unidade de disco virtual de uma máquina virtual

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]}

O primeiro comando obtém o objeto de máquina virtual chamado VM01 implantado no VMHost01 usando o cmdlet Get-SCVirtualMachine. O comando armazena esse objeto na variável $VM.

O segundo comando obtém todos os objetos de unidade de disco virtual no VM01 e, em seguida, armazena os objetos recuperados no $VirtDiskDrive. Usar o símbolo @ e parênteses garante que o comando armazene os resultados em uma matriz, mesmo que o comando retorne um único objeto ou um valor $Null.

O último comando retorna o número de unidades de disco virtual associadas à máquina virtual e, em seguida, se existir mais de uma, o comando remove a segunda unidade de disco virtual, designada pelo [1], da máquina virtual.

Exemplo 2: Remover todos os discos de passagem conectados a uma máquina virtual

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}}

O primeiro comando obtém o objeto de máquina virtual chamado VM02 e, em seguida, armazena esse objeto na variável $VM.

O segundo comando obtém todos os objetos de unidade de disco virtual anexados ao VM02 que não são discos rígidos virtuais. O comando obtém apenas objetos que representam discos de passagem. O comando armazena os objetos de disco de passagem na matriz de objetos $VDDs.

O último comando usa uma instrução If para determinar se existe pelo menos uma unidade de disco virtual de passagem. Se o resultado for um ou mais, o comando usará a instrução ForEach para remover cada unidade de disco virtual da matriz de objetos. Para obter mais informações, digite Get-Help about_If e Get-Help about_Foreach.

O último comando especifica o parâmetro Force. Portanto, o comando remove cada unidade de disco virtual de sua máquina virtual, mesmo que outros objetos do VMM dependam dessa unidade de disco virtual.

Exemplo 3: Remover unidades de disco virtual pelo nome

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}}}

O primeiro comando obtém todos os objetos de máquina virtual cujo nome corresponde à cadeia de caracteres WebSrvLOB e, em seguida, armazena esses objetos na matriz $VM.

Os dois comandos seguintes usam o cmdlet ForEach-Object para iterar pelas máquinas virtuais armazenadas no $VM para obter todos os objetos de unidade de disco virtual de cada máquina virtual. O segundo comando armazena os objetos da unidade de disco virtual na matriz de objetos $VirtDiskDrives.

O terceiro comando usa um segundo loop de ForEach para selecionar todos os objetos de unidade de disco virtual cujo nome contém a cadeia de caracteres LOBData da matriz $VirtDiskDrives e passa esses objetos para o cmdlet atual. Este cmdlet remove os objetos do VMM.

Parâmetros

-Confirm

Solicita confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Force

Força a operação a terminar.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-JobGroup

Especifica um identificador para uma série de comandos que são executados como um conjunto imediatamente antes da execução do comando final que inclui o mesmo identificador de grupo de trabalhos.

Tipo:Guid
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-JobVariable

Especifica uma variável na qual o progresso do trabalho é controlado e armazenado.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-OnBehalfOfUser

Especifica um nome de usuário. Este cmdlet opera em nome do usuário especificado por esse parâmetro.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-OnBehalfOfUserRole

Especifica uma função de usuário. Para obter uma função de usuário, use o cmdlet Get-SCUserRole. Este cmdlet opera em nome da função de usuário especificada por esse parâmetro.

Tipo:UserRole
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-PROTipID

Especifica a ID da dica de Otimização de Desempenho e Recursos (dica PRO) que disparou essa ação. Este parâmetro permite auditar dicas PRO.

Tipo:Guid
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-RunAsynchronously

Indica que o trabalho é executado de forma assíncrona para que o controle retorne ao shell de comando imediatamente.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-SkipDeleteVHD

Indica que esse cmdlet não usa o arquivo VHD enquanto remove a unidade de disco virtual.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-VirtualDiskDrive

Especifica um objeto de unidade de disco virtual. Você pode anexar um disco rígido virtual ou um disco de passagem a um objeto de unidade de disco virtual.

Tipo:VirtualDiskDrive
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

Notas

  • Requer um objeto de unidade de disco virtual do VMM, que pode ser recuperado usando o cmdlet Get-SCVirtualDiskDrive.