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 .