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 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. Usando il simbolo @ e le parentesi, assicurarsi 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 esiste più di uno, il comando rimuove il secondo disco virtuale, designato 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 tale oggetto nella variabile $VM.
Il secondo comando ottiene tutti gli oggetti dell'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 . Pertanto, 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 virtuali 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 di $VM.
I due comandi successivi usano il cmdlet ForEach-Object per eseguire l'iterazione delle macchine virtuali archiviate in $VM per ottenere tutti gli oggetti dell'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 $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 appena prima dell'esecuzione dello 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 lo stato di avanzamento del processo viene monitorato e archiviato.
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 che specifica 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 del suggerimento prestazioni e ottimizzazione 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 restituisca 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 .