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.