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 distribueras 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. Med hjälp av @-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 det finns minst en virtuell diskenhet för direktströmning. Om resultatet är en eller flera använder kommandot instruktionen ForEach 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 dessa objekt i den $VM matrisen.

De följande två kommandona 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 matrisen $VirtDiskDrives 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.

Typ:SwitchParameter
Alias:cf
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Force

Tvingar åtgärden att slutföras.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Typ:Guid
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-JobVariable

Anger en variabel där jobbstatus spåras och lagras.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-OnBehalfOfUser

Anger ett användarnamn. Den här cmdleten fungerar för användaren som den här parametern anger.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-OnBehalfOfUserRole

Anger en användarroll. Om du vill skaffa 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.

Typ:UserRole
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Typ:Guid
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-RunAsynchronously

Anger att jobbet körs asynkront så att kontrollen omedelbart återgår till kommandogränssnittet.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-SkipDeleteVHD

Anger att den här cmdleten inte använder VHD-filen medan den tar bort den virtuella diskenheten.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-VirtualDiskDrive

Anger ett virtuellt diskenhetsobjekt. Du kan koppla antingen en virtuell hårddisk eller en direktdisk till ett virtuellt diskenhetsobjekt.

Typ:VirtualDiskDrive
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-WhatIf

Visar vad som skulle hända om cmdleten körs. Cmdleten körs inte.

Typ:SwitchParameter
Alias:wi
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Kommentarer

  • Kräver ett VMM-objekt för virtuell diskenhet som kan hämtas med hjälp av cmdleten Get-SCVirtualDiskDrive.