Remove-SCVirtualDiskDrive
Entfernt virtuelle Festplattenlaufwerke aus einer virtuellen Maschine oder aus einer VM-Vorlage.
Syntax
Default (Standardwert)
Remove-SCVirtualDiskDrive
[-VirtualDiskDrive] <VirtualDiskDrive>
[-SkipDeleteVHD]
[-JobGroup <Guid>]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
Beschreibung
Mit dem Cmdlet Remove-SCVirtualDiskDrive werden Objekte virtueller Datenträger von einem virtuellen Computer oder einer VM-Vorlage in einer Virtual Machine Manager-Umgebung (Virtual Machine Manager, VMM) entfernt.
Beispiele
Beispiel 1: Entfernen eines virtuellen Laufwerks 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]}
Mit dem ersten Befehl wird das VM-Objekt mit dem Namen VM01 abgerufen, das auf VMHost01 mithilfe des Cmdlets Get-SCVirtualMachine bereitgestellt wurde. Der Befehl speichert dieses Objekt in der Variablen $VM.
Der zweite Befehl ruft alle Objekte des virtuellen Laufwerks auf VM01 ab und speichert die abgerufenen Objekte dann 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 Laufwerke zurück, die der virtuellen Maschine zugeordnet sind, und dann, wenn mehr als eines vorhanden ist, entfernt der Befehl das zweite virtuelle Laufwerk, das mit [1] gekennzeichnet ist, aus der virtuellen Maschine.
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 VM-Objekt mit dem Namen VM02 ab und speichert dieses Objekt dann in der Variablen $VM.
Mit dem zweiten Befehl werden alle virtuellen Laufwerksobjekte abgerufen, die an VM02 angefügt sind und keine virtuellen Festplatten sind. Der Befehl ruft nur Objekte ab, die Pass-Through-Datenträger darstellen. Der Befehl speichert die Pass-Through-Festplattenobjekte im $VDDs Objektarray.
Im letzten Befehl wird eine If-Anweisung verwendet, um zu bestimmen, ob mindestens ein virtuelles Pass-Through-Laufwerk vorhanden ist.
Wenn das Ergebnis ein oder mehrere sind, verwendet der Befehl die ForEach-Anweisung , um jedes virtuelle Laufwerk aus dem Objektarray zu entfernen.
Weitere Informationen erhalten Sie, wenn Sie und Get-Help about_IfeingebenGet-Help about_Foreach.
Der letzte Befehl gibt den Parameter Force an. Daher entfernt der Befehl jedes virtuelle Laufwerk von seiner virtuellen Maschine, auch wenn andere VMM-Objekte von diesem virtuellen Laufwerk abhängen.
Beispiel 3: Entfernen von virtuellen Laufwerken nach Namen
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 VM-Objekte ab, deren Name mit der Zeichenfolge WebSrvLOB übereinstimmt, und speichert diese Objekte dann im $VM Array.
In den nächsten beiden Befehlen wird das Cmdlet ForEach-Object verwendet, um die in $VM gespeicherten virtuellen Computer zu durchlaufen und alle Objekte des virtuellen Laufwerks von jedem virtuellen Computer abzurufen. Der zweite Befehl speichert die Objekte des virtuellen Laufwerks im Array $VirtDiskDrives Objekt.
Der dritte Befehl verwendet eine zweite ForEach-Schleife , um alle Objekte des virtuellen Laufwerks auszuwählen, deren Name die Zeichenfolge LOBData aus dem $VirtDiskDrives-Array enthält, und übergibt diese Objekte an das aktuelle Cmdlet. Mit diesem Cmdlet werden die Objekte aus VMM entfernt.
Parameter
-Confirm
Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | vgl |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Force
Erzwingt das Ende des Vorgangs.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-JobGroup
Gibt einen Bezeichner für eine Reihe von Befehlen an, die als Satz ausgeführt werden, kurz bevor der letzte Befehl ausgeführt wird, der denselben Auftragsgruppenbezeichner enthält.
Parametereigenschaften
| Typ: | Guid |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-JobVariable
Gibt eine Variable an, in der der Auftragsfortschritt verfolgt und gespeichert wird.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-OnBehalfOfUser
Gibt einen Benutzernamen an. Dieses Cmdlet wird im Namen des Benutzers ausgeführt, der durch diesen Parameter angegeben wird.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-OnBehalfOfUserRole
Gibt eine Benutzerrolle an. Verwenden Sie zum Abrufen einer Benutzerrolle das Cmdlet Get-SCUserRole . Dieses Cmdlet wird im Namen der Benutzerrolle ausgeführt, die durch diesen Parameter angegeben wird.
Parametereigenschaften
| Typ: | UserRole |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | 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.
Parametereigenschaften
| Typ: | Guid |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-RunAsynchronously
Gibt an, dass der Auftrag asynchron ausgeführt wird, damit das Steuerelement sofort zur Befehlsshell zurückkehrt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-SkipDeleteVHD
Gibt an, dass dieses Cmdlet die VHD-Datei nicht ausführt, während das virtuelle Laufwerk entfernt wird.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-VirtualDiskDrive
Gibt ein virtuelles Laufwerksobjekt an. Sie können entweder eine virtuelle Festplatte oder einen Pass-Through-Datenträger an ein virtuelles Laufwerksobjekt anfügen.
Parametereigenschaften
| Typ: | VirtualDiskDrive |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Wi |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Hinweise
- Erfordert ein VMM-Laufwerksobjekt, das mit dem Cmdlet Get-SCVirtualDiskDrive abgerufen werden kann.