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.