Freigeben über


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_Foreachein.

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.