Remove-SCVirtualDiskDrive
Entfernt virtuelle Datenträgerlaufwerke von einem virtuellen Computer oder aus einer Vorlage für virtuelle Computer.
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 Objekte des virtuellen Datenträgers von einem virtuellen Computer oder aus einer Vorlage für virtuelle Computer in einer VMM-Umgebung (Virtual Machine Manager).
Beispiele
Beispiel 1: Entfernen eines virtuellen Datenträgerlaufwerks von 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 mit dem Namen VM01 ab, das auf VMHost01 mithilfe des Cmdlets Get-SCVirtualMachine bereitgestellt wird. 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. Durch Die Verwendung des @-Symbols und der 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 wenn mehrere vorhanden sind, entfernt der Befehl das zweite virtuelle Datenträgerlaufwerk, das von [1] vom virtuellen Computer festgelegt ist.
Beispiel 2: Entfernen aller Pass-Through-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 objekt des virtuellen Computers mit dem Namen VM02 ab und speichert dieses Objekt dann in der $VM Variablen.
Der zweite Befehl ruft alle virtuellen Datenträgerlaufwerkobjekte ab, die an VM02 angefügt sind, 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 bestimmen, ob mindestens ein Pass-Through-Laufwerk vorhanden ist.
Wenn das Ergebnis mindestens eins ist, verwendet der Befehl dann die ForEach--Anweisung, um jedes virtuelle Laufwerk aus dem Objektarray zu entfernen.
Geben Sie für weitere Informationen Get-Help about_If
und Get-Help about_Foreach
ein.
Der letzte Befehl gibt den parameter Force an. Daher entfernt der Befehl jedes virtuelle Datenträgerlaufwerk von seinem virtuellen Computer, auch wenn andere VMM-Objekte von diesem virtuellen Datenträgerlaufwerk abhängen.
Beispiel 3: Entfernen von laufwerken virtuellen Datenträgern anhand des Namens
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 Objekte des virtuellen Computers ab, deren Name der Zeichenfolge WebSrvLOB entspricht, und speichert diese Objekte dann 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 Objekte des virtuellen Datenträgerlaufwerks von jedem virtuellen Computer abzurufen. Der zweite Befehl speichert die Objekte des virtuellen Datenträgerlaufwerks im $VirtDiskDrives-Objektarray.
Der dritte Befehl verwendet eine zweite ForEach- Schleife, um alle Objekte des virtuellen Datenträgerlaufwerks auszuwählen, deren Name die Zeichenfolge LOBData aus dem $VirtDiskDrives Array enthält und diese Objekte an das aktuelle Cmdlet übergibt. Mit diesem Cmdlet werden die Objekte aus VMM entfernt.
Parameter
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Force
Erzwingt den Abschluss des Vorgangs.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-JobGroup
Gibt einen Bezeichner für eine Reihe von Befehlen an, die direkt vor dem endgültigen Befehl ausgeführt werden, der denselben Auftragsgruppenbezeichner enthält.
Typ: | Guid |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-JobVariable
Gibt eine Variable an, in der der Auftragsfortschritt nachverfolgt und gespeichert wird.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-OnBehalfOfUser
Gibt einen Benutzernamen an. Dieses Cmdlet wird im Auftrag des Benutzers ausgeführt, den dieser Parameter angibt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | UserRole |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-PROTipID
Gibt die ID des Tipps zur Leistungs- und Ressourcenoptimierung (PRO-Tipp) an, der diese Aktion ausgelöst hat. Mit diesem Parameter können Sie PRO-Tipps überwachen.
Typ: | Guid |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-RunAsynchronously
Gibt an, dass der Auftrag asynchron ausgeführt wird, damit das Steuerelement sofort zur Befehlsshell zurückkehrt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SkipDeleteVHD
Gibt an, dass dieses Cmdlet nicht die VHD-Datei ausführt, während es das virtuelle Laufwerk entfernt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-VirtualDiskDrive
Gibt ein Virtuelles Laufwerkobjekt an. Sie können entweder eine virtuelle Festplatte oder einen Pass-Through-Datenträger an ein virtuelles Laufwerkobjekt anfügen.
Typ: | VirtualDiskDrive |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Hinweise
- Erfordert ein virtuelles Laufwerkobjekt vom Typ VMM, das mithilfe des Cmdlets Get-SCVirtualDiskDrive abgerufen werden kann.