Dela via


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 .