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 virtuelle Datenträgerlaufwerkobjekte 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 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. Wenn Sie das @-Symbol und die Klammern verwenden, 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 vom [1], vom virtuellen Computer bestimmt wird.

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 virtuelle Computerobjekt 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-Virtuelles Laufwerk vorhanden ist. Wenn das Ergebnis mindestens eins 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 von seinem virtuellen Computer, auch wenn andere VMM-Objekte von diesem virtuellen Datenträgerlaufwerk abhängen.

Beispiel 3: Entfernen von virtuellen Datenträgerlaufwerken 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 diese Objekte dann im $VM-Array.

Die nächsten beiden Befehle verwenden das Cmdlet ForEach-Object, um die virtuellen Computer zu durchlaufen, 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 virtuellen Datenträgerlaufwerkobjekte auszuwählen, deren Name die Zeichenfolge LOBData aus dem $VirtDiskDrives-Array enthält und diese Objekte an das aktuelle Cmdlet übergibt. 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, dass der Vorgang abgeschlossen ist.

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 endgültigen 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 Namen 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. Um eine Benutzerrolle abzurufen, verwenden Sie das Cmdlet Get-SCUserRole . Dieses Cmdlet wird im Namen 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 des Tipps zur Leistungs- und Ressourcenoptimierung (PRO-Tipp) an, der 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, damit das Steuerelement sofort zur Befehlsshell zurückkehrt.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipDeleteVHD

Gibt an, dass dieses Cmdlet die VHD-Datei nicht 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 Laufwerkobjekt des virtuellen Datenträgers, das mithilfe des Cmdlets Get-SCVirtualDiskDrive abgerufen werden kann.