Freigeben über


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.