Remove-SCVirtualDiskDrive
Remove unidades de disco virtuais de uma máquina virtual ou de um modelo de máquina virtual.
Syntax
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 acionamento de disco virtuais de uma máquina virtual ou de um modelo de máquina virtual num ambiente virtual de Gerente de Máquinas (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 em VMHost01 utilizando o cmdlet Get-SCVirtualMachine . O comando armazena que o objeto na $VM variável.
O segundo comando obtém todos os objetos de unidade de disco virtuais em VM01 e, em seguida, armazena os objetos recuperados em $VirtDiskDrive. A utilização do símbolo @ e dos parênteses assegura-se de que o comando armazena os resultados numa matriz, mesmo que o comando devolva um único objeto ou um valor $Null.
O último comando devolve o número de discos virtuais associados à máquina virtual e, em seguida, se existir mais do que um, o comando remove a segunda unidade de disco virtual, designada pela [1], da máquina virtual.
Exemplo 2: Remover todos os discos de passagem ligados 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 recebe o objeto de máquina virtual chamado VM02, e depois armazena esse objeto na variável $VM.
O segundo comando obtém todos os objetos de unidade de disco virtuais ligados 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 utiliza uma declaração se para determinar se existe pelo menos uma unidade de disco virtual de passagem.
Se o resultado for um ou mais, o comando utiliza a declaração ForEach para remover cada unidade de disco virtual da matriz do objeto.
Para mais informações, escreva Get-Help about_If
e Get-Help about_Foreach
.
O último comando especifica o parâmetro força . Portanto, o comando remove cada unidade de disco virtual da sua máquina virtual, mesmo que outros objetos VMM dependam dessa unidade de disco virtual.
Exemplo 3: Remover unidades de disco virtuais 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 virtuais cujo nome corresponde à cadeia WebSrvLOB e, em seguida, armazena esses objetos na matriz $VM.
Os dois comandos seguintes usam o ForEach-Object cmdlet para iterar através das máquinas virtuais armazenadas em $VM para obter todos os objetos de disco virtual de cada máquina virtual. O segundo comando armazena os objetos de acionamento de disco virtual na matriz de objetos $VirtDiskDrives.
O terceiro comando utiliza um segundo laço ForEach para selecionar todos os objetos de acionamento de disco virtual cujo nome contém a cadeia LOBData da matriz $VirtDiskDrives e passa estes objetos para o cmdlet atual. Este cmdlet remove os objetos do VMM.
Parâmetros
-Confirm
Solicita a sua confirmação antes de executar o cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Força a operação a terminar.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobGroup
Especifica um identificador para uma série de comandos que funcionam como um conjunto pouco antes do comando final que inclui o mesmo identificador do grupo de trabalho.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobVariable
Especifica uma variável em que o progresso do trabalho é rastreado e armazenado.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUser
Especifica um nome de utilizador. Este cmdlet funciona em nome do utilizador que este parâmetro especifica.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUserRole
Especifica uma função de utilizador. Para obter uma função de utilizador, utilize o cmdlet Get-SCUserRole . Este cmdlet funciona em nome da função de utilizador que este parâmetro especifica.
Type: | UserRole |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PROTipID
Especifica o ID da ponta de otimização de desempenho e recursos (ponta PRO) que desencadeou esta ação. Este parâmetro permite-lhe auditar dicas PRO.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsynchronously
Indica que o trabalho funciona assíncronamente para que o controlo volte imediatamente à concha de comando.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipDeleteVHD
Indica que este cmdlet não é o ficheiro VHD enquanto remove a unidade virtual do disco.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualDiskDrive
Especifica um objeto de unidade de disco virtual. Pode ligar um disco rígido virtual ou um disco de passagem a um objeto de unidade de disco virtual.
Type: | VirtualDiskDrive |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Notas
- Requer um objeto de acionamento de disco virtual VMM, que pode ser recuperado utilizando o cmdlet Get-SCVirtualDiskDrive .