Remove-SCVirtualDiskDrive
Hiermee verwijdert u virtuele schijfstations van een virtuele machine of van een virtuele-machinesjabloon.
Syntax
Remove-SCVirtualDiskDrive
[-VirtualDiskDrive] <VirtualDiskDrive>
[-SkipDeleteVHD]
[-JobGroup <Guid>]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
Description
Met de cmdlet Remove-SCVirtualDiskDrive worden virtuele-schijfstationobjecten van een virtuele machine of van een virtuele-machinesjabloon in een VMM-omgeving (Virtual Machine Manager) verwijderd.
Voorbeelden
Voorbeeld 1: Een virtuele schijfstation verwijderen van een virtuele machine
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]}
Met de eerste opdracht wordt het virtuele-machineobject met de naam VM01 geïmplementeerd op VMHost01 met behulp van de cmdlet Get-SCVirtualMachine . Met de opdracht wordt dat object opgeslagen in de $VM variabele.
Met de tweede opdracht worden alle virtuele schijfstationobjecten op VM01 opgehaald en worden vervolgens de opgehaalde objecten opgeslagen in $VirtDiskDrive. Met behulp van het @-symbool en haakjes zorgt u ervoor dat de opdracht de resultaten opslaat in een matrix, zelfs als de opdracht één object of een $Null waarde retourneert.
Met de laatste opdracht wordt het aantal virtuele schijfstations geretourneerd dat is gekoppeld aan de virtuele machine. Als er meer dan één schijf bestaat, wordt met de opdracht het tweede virtuele schijfstation verwijderd, dat is aangewezen door de [1], van de virtuele machine.
Voorbeeld 2: Verwijder alle passthrough-schijven die zijn gekoppeld aan een virtuele machine
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}}
Met de eerste opdracht wordt het object van de virtuele machine met de naam VM02 opgehaald en wordt dat object vervolgens opgeslagen in de variabele $VM.
Met de tweede opdracht worden alle virtuele-schijfstationobjecten opgehaald die zijn gekoppeld aan VM02 die geen virtuele harde schijven zijn. Met de opdracht worden alleen objecten opgehaald die passthrough-schijven vertegenwoordigen. Met de opdracht worden de passthrough-schijfobjecten opgeslagen in de $VDDs objectmatrix.
De laatste opdracht maakt gebruik van een If-instructie om te bepalen of er ten minste één passthrough virtuele schijfstation bestaat.
Als het resultaat een of meer is, gebruikt de opdracht vervolgens de ForEach-instructie om elk virtueel schijfstation uit de objectmatrix te verwijderen.
Typ en Get-Help about_Foreach
voor meer informatieGet-Help about_If
.
Met de laatste opdracht wordt de parameter Force opgegeven. Daarom verwijdert de opdracht elk virtuele schijfstation van de virtuele machine, zelfs als andere VMM-objecten afhankelijk zijn van dat virtuele schijfstation.
Voorbeeld 3: virtuele schijfstations verwijderen op naam
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}}}
Met de eerste opdracht worden alle virtuele-machineobjecten opgehaald waarvan de naam overeenkomt met de tekenreeks WebSrvLOB en worden deze objecten vervolgens opgeslagen in de $VM matrix.
De volgende twee opdrachten gebruiken de ForEach-Object cmdlet om de virtuele machines te doorlopen die zijn opgeslagen in $VM om alle objecten van het virtuele schijfstation van elke virtuele machine op te halen. Met de tweede opdracht worden de objecten van het virtuele schijfstation opgeslagen in de $VirtDiskDrives objectmatrix.
De derde opdracht maakt gebruik van een tweede ForEach-lus om alle objecten van het virtuele schijfstation te selecteren waarvan de naam de tekenreeks LOBData uit de $VirtDiskDrives matrix bevat en geeft deze objecten door aan de huidige cmdlet. Met deze cmdlet worden de objecten uit VMM verwijderd.
Parameters
-Confirm
Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Hiermee wordt de bewerking afgemaakt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobGroup
Hiermee geeft u een id op voor een reeks opdrachten die worden uitgevoerd als een set vlak voor de laatste opdracht die dezelfde taakgroep-id bevat.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobVariable
Hiermee geeft u een variabele op waarin de voortgang van de taak wordt bijgehouden en opgeslagen.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUser
Hiermee geeft u een gebruikersnaam. Deze cmdlet werkt namens de gebruiker die met deze parameter wordt opgegeven.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUserRole
Hiermee geeft u een gebruikersrol op. Gebruik de cmdlet Get-SCUserRole om een gebruikersrol te verkrijgen. Deze cmdlet werkt namens de gebruikersrol die met deze parameter wordt opgegeven.
Type: | UserRole |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PROTipID
Hiermee geeft u de id op van de tip prestatie- en resourceoptimalisatie (PRO-tip) die deze actie heeft geactiveerd. Met deze parameter kunt u PRO-tips controleren.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsynchronously
Geeft aan dat de taak asynchroon wordt uitgevoerd, zodat het besturingselement onmiddellijk terugkeert naar de opdrachtshell.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipDeleteVHD
Geeft aan dat met deze cmdlet het VHD-bestand niet wordt verwijderd terwijl het virtuele schijfstation wordt verwijderd.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualDiskDrive
Hiermee geeft u een virtueel schijfstationobject. U kunt een virtuele harde schijf of een passthrough-schijf koppelen aan een object van een virtuele schijfstation.
Type: | VirtualDiskDrive |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Notities
- Vereist een VMM virtueel schijfstationobject, dat kan worden opgehaald met behulp van de Get-SCVirtualDiskDrive-cmdlet .