Remove-SCVirtualDiskDrive
Quita las unidades de disco virtual de una máquina virtual o de una plantilla de máquina virtual.
Syntax
Remove-SCVirtualDiskDrive
[-VirtualDiskDrive] <VirtualDiskDrive>
[-SkipDeleteVHD]
[-JobGroup <Guid>]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
Description
El cmdlet Remove-SCVirtualDiskDrive quita objetos de unidad de disco virtual de una máquina virtual o de una plantilla de máquina virtual en un entorno de Virtual Machine Manager (VMM).
Ejemplos
Ejemplo 1: Eliminación de una unidad de disco virtual de una máquina virtual
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]}
El primer comando obtiene el objeto de máquina virtual denominado VM01 implementado en VMHost01 mediante el cmdlet Get-SCVirtualMachine . El comando almacena ese objeto en la variable $VM.
El segundo comando obtiene todos los objetos de unidad de disco virtual en VM01 y, a continuación, almacena los objetos recuperados en $VirtDiskDrive. El uso del símbolo @ y los paréntesis se asegura de que el comando almacena los resultados en una matriz, incluso si el comando devuelve un solo objeto o un valor de $Null.
El último comando devuelve el número de unidades de disco virtuales asociadas a la máquina virtual y, a continuación, si existe más de una, el comando quita la segunda unidad de disco virtual, designada por [1], de la máquina virtual.
Ejemplo 2: Eliminación de todos los discos de paso a través conectados a una máquina virtual
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}}
El primer comando obtiene el objeto de máquina virtual denominado VM02 y, a continuación, almacena ese objeto en la variable $VM.
El segundo comando obtiene todos los objetos de unidad de disco virtual conectados a VM02 que no son discos duros virtuales. El comando solo obtiene objetos que representan discos de paso a través. El comando almacena los objetos de disco de paso a través en la matriz de objetos $VDDs.
El último comando usa una instrucción If para determinar si existe al menos una unidad de disco virtual de paso a través.
Si el resultado es uno o varios, el comando usa la instrucción ForEach para quitar cada unidad de disco virtual de la matriz de objetos.
Para obtener más información, escriba Get-Help about_If
y Get-Help about_Foreach
.
El último comando especifica el parámetro Force . Por lo tanto, el comando quita cada unidad de disco virtual de su máquina virtual incluso si otros objetos VMM dependen de esa unidad de disco virtual.
Ejemplo 3: Eliminación de unidades de disco virtual por nombre
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}}}
El primer comando obtiene todos los objetos de máquina virtual cuyo nombre coincide con la cadena WebSrvLOB y, a continuación, almacena esos objetos en la matriz $VM.
Los dos comandos siguientes usan el cmdlet ForEach-Object para recorrer en iteración las máquinas virtuales almacenadas en $VM para obtener todos los objetos de unidad de disco virtual de cada máquina virtual. El segundo comando almacena los objetos de unidad de disco virtual en la matriz de objetos $VirtDiskDrives.
El tercer comando usa un segundo bucle ForEach para seleccionar todos los objetos de unidad de disco virtual cuyo nombre contiene la cadena LOBData de la matriz $VirtDiskDrives y pasa estos objetos al cmdlet actual. Este cmdlet quita los objetos de VMM.
Parámetros
-Confirm
Le solicita su confirmación antes de ejecutar el cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Obliga a que finalice la operación.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobGroup
Especifica un identificador para una serie de comandos que se ejecutan como un conjunto justo antes de que se ejecute el mismo identificador de grupo de trabajos.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobVariable
Especifica una variable en la que se realiza un seguimiento del progreso del trabajo y se almacena.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUser
Especifica un nombre de usuario. Este cmdlet funciona en nombre del usuario que especifica este parámetro.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUserRole
Especifica un rol de usuario. Para obtener un rol de usuario, use el cmdlet Get-SCUserRole . Este cmdlet funciona en nombre del rol de usuario que especifica este parámetro.
Type: | UserRole |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PROTipID
Especifica el identificador de la sugerencia rendimiento y optimización de recursos (sugerencia PRO) que desencadenó esta acción. Este parámetro le permite auditar sugerencias PRO.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsynchronously
Indica que el trabajo se ejecuta de forma asincrónica para que el control vuelva al shell de comandos inmediatamente.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipDeleteVHD
Indica que este cmdlet no es el archivo VHD mientras quita la unidad de disco virtual.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VirtualDiskDrive
Especifica un objeto de unidad de disco virtual. Puede conectar un disco duro virtual o un disco de paso a través a un objeto de unidad de disco virtual.
Type: | VirtualDiskDrive |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Notas
- Requiere un objeto de unidad de disco virtual VMM, que se puede recuperar mediante el cmdlet Get-SCVirtualDiskDrive .