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.