Share via


Remove-SCVirtualDiskDrive

Rimuove le unità disco virtuali da una macchina virtuale o da un modello di macchina virtuale.

Sintassi

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

Descrizione

Il cmdlet Remove-SCVirtualDiskDrive rimuove gli oggetti unità disco virtuale da una macchina virtuale o da un modello di macchina virtuale in un ambiente VMM (Virtual Machine Manager).

Esempio

Esempio 1: Rimuovere un'unità disco virtuale da una macchina virtuale

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

Il primo comando ottiene l'oggetto macchina virtuale denominato VM01 distribuito in VMHost01 usando il cmdlet Get-SCVirtualMachine . Il comando archivia l'oggetto nella variabile $VM.

Il secondo comando ottiene tutti gli oggetti unità disco virtuale in VM01 e quindi archivia gli oggetti recuperati in $VirtDiskDrive. L'uso del simbolo @ e delle parentesi assicura che il comando archivii i risultati in una matrice, anche se il comando restituisce un singolo oggetto o un valore $Null.

L'ultimo comando restituisce il numero di unità disco virtuali associate alla macchina virtuale e quindi, se ne esistono più di uno, il comando rimuove la seconda unità disco virtuale, designata dalla [1], dalla macchina virtuale.

Esempio 2: Rimuovere tutti i dischi pass-through collegati a una macchina virtuale

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

Il primo comando ottiene l'oggetto macchina virtuale denominato VM02 e quindi archivia l'oggetto nella variabile $VM.

Il secondo comando ottiene tutti gli oggetti unità disco virtuale collegati a VM02 che non sono dischi rigidi virtuali. Il comando ottiene solo oggetti che rappresentano dischi pass-through. Il comando archivia gli oggetti disco pass-through nella matrice di oggetti $VDDs.

L'ultimo comando usa un'istruzione If per determinare se esiste almeno un'unità disco virtuale pass-through. Se il risultato è uno o più, il comando usa l'istruzione ForEach per rimuovere ogni unità disco virtuale dalla matrice di oggetti. Per altre informazioni, digitare Get-Help about_If e Get-Help about_Foreach.

L'ultimo comando specifica il parametro Force . Di conseguenza, il comando rimuove ogni unità disco virtuale dalla macchina virtuale anche se altri oggetti VMM dipendono da tale unità disco virtuale.

Esempio 3: Rimuovere le unità disco virtuale in base al 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}}}

Il primo comando ottiene tutti gli oggetti macchina virtuale il cui nome corrisponde alla stringa WebSrvLOB e quindi archivia tali oggetti nella matrice $VM.

I due comandi successivi usano il cmdlet ForEach-Object per scorrere le macchine virtuali archiviate in $VM per ottenere tutti gli oggetti unità disco virtuale da ogni macchina virtuale. Il secondo comando archivia gli oggetti unità disco virtuale nella matrice di oggetti $VirtDiskDrives.

Il terzo comando usa un secondo ciclo ForEach per selezionare tutti gli oggetti unità disco virtuale il cui nome contiene la stringa LOBData dalla matrice di $VirtDiskDrives e passa questi oggetti al cmdlet corrente. Questo cmdlet rimuove gli oggetti da VMM.

Parametri

-Confirm

Richiede la conferma dell'utente prima di eseguire il cmdlet.

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

-Force

Forza il completamento dell'operazione.

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

-JobGroup

Specifica un identificatore per una serie di comandi eseguiti come set subito prima dell'esecuzione del comando finale che include lo stesso identificatore del gruppo di processi.

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

-JobVariable

Specifica una variabile in cui viene monitorato e archiviato lo stato del processo.

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

-OnBehalfOfUser

Specifica un nome utente. Questo cmdlet opera per conto dell'utente specificato da questo parametro.

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

-OnBehalfOfUserRole

Specifica un ruolo utente. Per ottenere un ruolo utente, usare il cmdlet Get-SCUserRole . Questo cmdlet opera per conto del ruolo utente specificato da questo parametro.

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

-PROTipID

Specifica l'ID della descrizione per le prestazioni e l'ottimizzazione delle risorse (suggerimento PRO) che ha attivato questa azione. Questo parametro consente di controllare i suggerimenti pro.

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

-RunAsynchronously

Indica che il processo viene eseguito in modo asincrono in modo che il controllo torni immediatamente alla shell dei comandi.

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

-SkipDeleteVHD

Indica che questo cmdlet non esegue il file VHD mentre rimuove l'unità disco virtuale.

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

-VirtualDiskDrive

Specifica un oggetto unità disco virtuale. È possibile collegare un disco rigido virtuale o un disco pass-through a un oggetto unità disco virtuale.

Type:VirtualDiskDrive
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.

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

Note

  • Richiede un oggetto unità disco virtuale VMM, che può essere recuperato usando il cmdlet Get-SCVirtualDiskDrive .