Remove-SCVirtualDiskDrive
Tar bort virtuella diskenheter från en virtuell dator eller från en mall för virtuella datorer.
Syntax
Remove-SCVirtualDiskDrive
[-VirtualDiskDrive] <VirtualDiskDrive>
[-SkipDeleteVHD]
[-JobGroup <Guid>]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
Description
Cmdleten Remove-SCVirtualDiskDrive tar bort virtuella diskenhetsobjekt från en virtuell dator eller från en mall för virtuella datorer i en VMM-miljö (Virtual Machine Manager).
Exempel
Exempel 1: Ta bort en virtuell diskenhet från en virtuell dator
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]}
Det första kommandot hämtar det virtuella datorobjektet VM01 som distribuerats på VMHost01 med hjälp av cmdleten Get-SCVirtualMachine . Kommandot lagrar objektet i variabeln $VM.
Det andra kommandot hämtar alla virtuella diskenhetsobjekt på VM01 och lagrar sedan de hämtade objekten i $VirtDiskDrive. Om du använder @-symbolen och parenteserna ser du till att kommandot lagrar resultatet i en matris, även om kommandot returnerar ett enskilt objekt eller ett $Null värde.
Det sista kommandot returnerar antalet virtuella diskenheter som är associerade med den virtuella datorn och om det finns fler än en tar kommandot bort den andra virtuella diskenheten, som anges av [1], från den virtuella datorn.
Exempel 2: Ta bort alla direktdiskar som är anslutna till en virtuell dator
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}}
Det första kommandot hämtar det virtuella datorobjektet VM02 och lagrar sedan objektet i variabeln $VM.
Det andra kommandot hämtar alla virtuella diskenhetsobjekt som är anslutna till VM02 som inte är virtuella hårddiskar. Kommandot hämtar endast objekt som representerar direktdiskar. Kommandot lagrar direktdiskobjekten i $VDDs-objektmatrisen.
Det sista kommandot använder en If-instruktion för att avgöra om minst en virtuell diskenhet för direktströmning finns.
Om resultatet är en eller flera använder kommandot ForEach-instruktionen för att ta bort varje virtuell diskenhet från objektmatrisen.
Om du vill ha mer information skriver du Get-Help about_If
och Get-Help about_Foreach
.
Det sista kommandot anger parametern Force . Därför tar kommandot bort varje virtuell diskenhet från den virtuella datorn även om andra VMM-objekt är beroende av den virtuella diskenheten.
Exempel 3: Ta bort virtuella diskenheter efter namn
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}}}
Det första kommandot hämtar alla virtuella datorobjekt vars namn matchar strängen WebSrvLOB och lagrar sedan objekten i den $VM matrisen.
Nästa två kommandon använder cmdleten ForEach-Object för att iterera genom de virtuella datorer som lagras i $VM för att hämta alla virtuella diskenhetsobjekt från varje virtuell dator. Det andra kommandot lagrar de virtuella diskenhetsobjekten i $VirtDiskDrives-objektmatrisen.
Det tredje kommandot använder en andra ForEach-loop för att markera alla virtuella diskenhetsobjekt vars namn innehåller strängen LOBData från $VirtDiskDrives-matrisen och skickar dessa objekt till den aktuella cmdleten. Den här cmdleten tar bort objekten från VMM.
Parametrar
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Tvingar åtgärden att slutföras.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobGroup
Anger en identifierare för en serie kommandon som körs som en uppsättning precis innan det slutliga kommandot som innehåller samma jobbgruppsidentifierare körs.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobVariable
Anger en variabel där jobbstatus spåras och lagras.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUser
Anger ett användarnamn. Den här cmdleten fungerar för användarens räkning som den här parametern anger.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUserRole
Anger en användarroll. Om du vill hämta en användarroll använder du cmdleten Get-SCUserRole . Den här cmdleten fungerar för den användarroll som den här parametern anger.
Type: | UserRole |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PROTipID
Anger ID för tipset prestanda- och resursoptimering (PRO-tips) som utlöste den här åtgärden. Med den här parametern kan du granska PRO-tips.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsynchronously
Anger att jobbet körs asynkront så att kontrollen återgår till kommandogränssnittet omedelbart.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipDeleteVHD
Anger att den här cmdleten inte använder VHD-filen när den tar bort den virtuella diskenheten.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualDiskDrive
Anger ett virtuellt diskenhetsobjekt. Du kan koppla antingen en virtuell hårddisk eller en direktdisk till ett virtuellt diskenhetsobjekt.
Type: | VirtualDiskDrive |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Kommentarer
- Kräver ett VMM-objekt för virtuell diskenhet som kan hämtas med hjälp av cmdleten Get-SCVirtualDiskDrive .