Remove-SCVirtualDiskDrive
Entfernt virtuelle Datenträgerlaufwerke aus einem virtuellen Computer oder aus einer virtuellen Computervorlage.
Syntax
Remove-SCVirtualDiskDrive
[-VirtualDiskDrive] <VirtualDiskDrive>
[-SkipDeleteVHD]
[-JobGroup <Guid>]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Remove-SCVirtualDiskDrive entfernt virtuelle Datenträgerlaufwerkobjekte aus einem virtuellen Computer oder einer virtuellen Computervorlage in einer Virtual Machine Manager -Umgebung (VMM).
Beispiele
Beispiel 1: Entfernen eines virtuellen Datenträgerlaufwerks aus einem virtuellen Computer
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]}
Der erste Befehl ruft das virtuelle Computerobjekt namens VM01 auf VMHost01 mithilfe des Cmdlets Get-SCVirtualMachine ab. Der Befehl speichert dieses Objekt in der $VM Variablen.
Der zweite Befehl ruft alle virtuellen Datenträgerlaufwerkobjekte auf VM01 ab, und speichert dann die abgerufenen Objekte in $VirtDiskDrive. Mit dem @-Symbol und Klammern wird sichergestellt, dass der Befehl die Ergebnisse in einem Array speichert, auch wenn der Befehl ein einzelnes Objekt oder einen $Null Wert zurückgibt.
Der letzte Befehl gibt die Anzahl der virtuellen Datenträgerlaufwerke zurück, die dem virtuellen Computer zugeordnet sind, und dann, wenn mehrere vorhanden sind, entfernt der Befehl das zweite virtuelle Datenträgerlaufwerk, das vom [1], aus dem virtuellen Computer bestimmt wird.
Beispiel 2: Entfernen aller übergebenen Datenträger, die an einen virtuellen Computer angefügt sind
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}}
Der erste Befehl ruft das virtuelle Computerobjekt namens VM02 ab und speichert dieses Objekt dann in der $VM Variablen.
Der zweite Befehl ruft alle virtuellen Datenträgerlaufwerkobjekte an VM02 an, die keine virtuellen Festplatten sind. Der Befehl ruft nur Objekte ab, die Pass-Through-Datenträger darstellen. Der Befehl speichert die Pass-Through-Datenträgerobjekte im $VDDs Objektarray.
Der letzte Befehl verwendet eine If-Anweisung , um zu ermitteln, ob mindestens ein Pass-Through-virtuelles Datenträgerlaufwerk vorhanden ist.
Wenn das Ergebnis ein oder mehrere ist, verwendet der Befehl dann die ForEach-Anweisung , um jedes virtuelle Datenträgerlaufwerk aus dem Objektarray zu entfernen.
Weitere Informationen, Typ Get-Help about_If
und Get-Help about_Foreach
.
Der letzte Befehl gibt den Force-Parameter an. Daher entfernt der Befehl jedes virtuelle Datenträgerlaufwerk aus seinem virtuellen Computer, auch wenn andere VMM-Objekte von diesem virtuellen Datenträgerlaufwerk abhängig sind.
Beispiel 3: Entfernen von virtuellen Datenträgern nach Name
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}}}
Der erste Befehl ruft alle virtuellen Computerobjekte ab, deren Name mit der Zeichenfolge WebSrvLOB übereinstimmt, und speichert dann diese Objekte im $VM-Array.
Die nächsten beiden Befehle verwenden das Cmdlet ForEach-Object zum Durchlaufen der virtuellen Computer, die in $VM gespeichert sind, um alle virtuellen Datenträgerlaufwerkobjekte von jedem virtuellen Computer abzurufen. Der zweite Befehl speichert die virtuellen Datenträgerlaufwerkobjekte im $VirtDiskDrives-Objektarray.
Der dritte Befehl verwendet eine zweite ForEach-Schleife , um alle virtuellen Datenträgerlaufwerkobjekte auszuwählen, deren Name die Zeichenfolge LOBData aus dem $VirtDiskDrives Array enthält und diese Objekte an das aktuelle Cmdlet übergeben. Dieses Cmdlet entfernt die Objekte aus VMM.
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Erzwingt den Vorgang zum Beenden.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobGroup
Gibt einen Bezeichner für eine Reihe von Befehlen an, die direkt vor dem letzten Befehl ausgeführt werden, der denselben Auftragsgruppenbezeichner enthält.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobVariable
Gibt eine Variable an, in der der Auftragsfortschritt nachverfolgt und gespeichert wird.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUser
Gibt einen Benutzernamen an. Dieses Cmdlet wird im Auftrag des Benutzers ausgeführt, den dieser Parameter angibt.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUserRole
Gibt eine Benutzerrolle an. Verwenden Sie zum Abrufen einer Benutzerrolle das Cmdlet Get-SCUserRole . Dieses Cmdlet wird im Auftrag der Benutzerrolle ausgeführt, die dieser Parameter angibt.
Type: | UserRole |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PROTipID
Gibt die ID der Leistungs- und Ressourcenoptimierungs-Tipp (PRO-Tipp) an, die diese Aktion ausgelöst hat. Mit diesem Parameter können Sie PRO-Tipps überwachen.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsynchronously
Gibt an, dass der Auftrag asynchron ausgeführt wird, sodass das Steuerelement sofort an die Befehlsshell zurückgibt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipDeleteVHD
Gibt an, dass dieses Cmdlet nicht die VHD-Datei ausführt, während sie das virtuelle Datenträgerlaufwerk entfernt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualDiskDrive
Gibt ein virtuelles Laufwerksobjekt an. Sie können entweder eine virtuelle Festplatte oder einen Pass-Through-Datenträger an ein virtuelles Laufwerkobjekt anfügen.
Type: | VirtualDiskDrive |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Hinweise
- Erfordert ein virtuelles VMM-Laufwerkobjekt, das mithilfe des Cmdlets Get-SCVirtualDiskDrive abgerufen werden kann.