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
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 garantisce 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 virtuale associate alla macchina virtuale e quindi, se ne esistono più, il comando rimuove la seconda unità disco virtuale, designata dalla macchina virtuale [1].
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 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 di 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 conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Force
Forza il completamento dell'operazione.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | Guid |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-JobVariable
Specifica una variabile in cui viene rilevato e archiviato lo stato del processo.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-OnBehalfOfUser
Specifica un nome utente. Questo cmdlet opera per conto dell'utente specificato da questo parametro.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-OnBehalfOfUserRole
Specifica un ruolo utente.
Per ottenere un ruolo utente, usare il cmdlet Get-SCUserRole
Tipo: | UserRole |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-PROTipID
Specifica l'ID del suggerimento per le prestazioni e l'ottimizzazione risorse (suggerimento PRO) che ha attivato questa azione. Questo parametro consente di controllare i suggerimenti pro.
Tipo: | Guid |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-RunAsynchronously
Indica che il processo viene eseguito in modo asincrono in modo che il controllo torni immediatamente alla shell dei comandi.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-SkipDeleteVHD
Indica che questo cmdlet non esegue il file VHD mentre rimuove l'unità disco virtuale.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | VirtualDiskDrive |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-WhatIf
Mostra cosa accadrebbe se il cmdlet viene eseguito. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Note
- Richiede un oggetto unità disco virtuale VMM, che può essere recuperato usando il cmdlet Get-SCVirtualDiskDrive
.