Administración de discos y particiones con Windows PowerShell

En este artículo veremos la administración de discos, particiones y volúmenes desde la consola de PowerShell. Puede realizar desde PowerShell todas las operaciones de administración de discos y particiones locales, que está acostumbrado a realizar desde la GUI de “Administración de discos” (diskmgmt.msc) o desde la herramienta de línea de comandos diskpart.exe. Los cmdlets de administración de discos se incluyen en el Almacenamiento módulo disponible en PowerShell 3.0. Consideraremos cómo inicializar un disco, crear una tabla de particiones en él, crear un volumen y formatearlo. Los comandos que se proporcionan a continuación funcionarán en Windows 10 / Server 2016 y Windows 8.1 / Server 2012 R2 (para versiones anteriores de Windows, primero deberá actualizar PowerShell).

Hay 160 cmdlets de PowerShell en el módulo de almacenamiento de Windows 10. Para mostrar todos los comandos disponibles relacionados con la administración de discos, ejecute el siguiente comando:

Get-Command -Module Storage

módulo de gestión de almacenamiento local (disco, partición) en windows powershell

Importante. Tenga mucho cuidado al administrar discos y particiones desde PowerShell para no eliminar o formatear accidentalmente una partición que contenga datos.

PowerShell: enumerar particiones y discos locales

En primer lugar, intente mostrar la lista de discos locales disponibles en su sistema en el nivel lógico. Para hacerlo, ejecute este comando:

Get-Disk | ft -AutoSize

Para seleccionar solo el disco del sistema en el que está instalado Windows, ingrese el siguiente comando:

Get-Disk | Where-Object IsSystem -eq $True | fl

Como puede ver, el comando ha devuelto los siguientes atributos del disco del sistema (también puede usarlos en la selección):

UniqueId : SCSIDISK&VEN_VMWARE&PROD_VIRTUAL_DISK5&1EC51BF7&0&000000:DESKTOP-JOPF9
Number : 0
Path : \?scsi#disk&ven_vmware&prod_virtual_disk#5&1ec42ba7&0&000000#{21f23456-a6bf-12d0-94f2-001efb8b}
Manufacturer : VMware
Model : Virtual disk
SerialNumber :
Size : 98 GB
AllocatedSize : 98432321434
LogicalSectorSize : 512
PhysicalSectorSize : 512
NumberOfPartitions : 2
PartitionStyle : MBR
IsReadOnly : False
IsSystem : True
IsBoot : True

Solo puede mostrar discos sin conexión:

Get-Disk | Where-Object IsOffline –Eq $True| ft –AutoSize

PowerShell Get-Disk fuera de línea y sistema

Si necesita la información sobre los discos físicos (las características y el estado de los discos físicos en una computadora), utilice Get-PhysicalDisk cmdlet (anteriormente mostramos cómo detectar un disco físico fallido en Storage Spaces Direct usando el cmdlet Get-PhysicalDisk y cómo usarlo y luego configurar un almacenamiento S2D tolerante a fallas).

Obtener información de disco físico de powershell

Puede detectar el tipo de disco conectado: SSD, HDD (normalmente conectado a través del bus SATA) o una unidad flash USB (tipo de medio no especificado).

DeviceId Model                      MediaType   BusType         Size

——— ——                      ———   ——-         —-

0        TOSHIBA MK3775VSXP         HDD         SATA    500156374016

1        Samsung SSD 840 PRO Series SSD         SATA    128060514304

2        Transcend                 UnSpecified USB     128169757184

Puede mostrar la lista de particiones en todos los discos:

Get-Partition

O particiones solo en los discos especificados:

Get-Partition –DiskNumber 1,2

Para mostrar la lista de todos los volúmenes en Windows, ejecute este comando:

Get-Volume

Cmdlet Get-Volume

Tenga en cuenta que la numeración del disco comienza desde 0 y la numeración de partición, desde 1.

Inicialización de disco en PowerShell

En el ejemplo anterior, ha visto que uno de los discos está fuera de línea y tiene una etiqueta RAW en la columna Estilo de partición. Intentemos inicializarlo, creemos una tabla de particiones GPT o MBR y creemos una nueva partición en ella.

En primer lugar, debe obtener el disco en línea:

Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False

Ahora puede inicializarlo (su índice es 1):

Initialize-Disk -Number 1

Get-Disk en línea e Initialize-Disk en powershell

De forma predeterminada, se crea una tabla de particiones GPT (GUID) en un disco, pero si necesita una MBR, ejecute este comando:

Initialize-Disk 1 –PartitionStyle MBR

Si hay algunos datos en el disco, puede cambiar la tabla de particiones de MBR a GPT sin eliminar los datos con la herramienta mbr2gpt.exe.

Para no especificar el número de disco, puede inicializar todos los discos con la tabla de particiones RAW:

Get-Disk | Where-Object PartitionStyle –Eq 'RAW' | Initialize-Disk

Tenga en cuenta que un disco puede tener el estado RAW cuando la tabla de particiones está dañada. Puede intentar recuperar la tabla de particiones y los datos en su disco RAW de la siguiente manera.

¿Cómo crear particiones en un disco?

Para crear una nueva partición en un disco, el Nueva partición Se utiliza el cmdlet. Vamos a crear una partición de 10 GB y asignarle la letra L::

New-Partition –DiskNumber 1 -Size 10gb -DriveLetter L

crear partición de disco con powershell

Si desea que la partición ocupe todo el espacio disponible en disco, utilice el UseMaximumSize atributo. Para asignar una letra automáticamente, el AssignDriveLetter se utiliza el parámetro (a veces Windows no asigna una letra de unidad automáticamente).

New-Partition –DiskNumber 1 -AssignDriveLetter –UseMaximumSize

Puede cambiar la letra asignada usando este comando:

Set-Partition –DriveLetter L -NewDriveLetter U

Si desea expandir la partición existente, primero muestre el espacio no asignado disponible para extender esta partición:

Get-PartitionSupportedSize -DriveLetter L | Format-List

Entonces puedes extender el tamaño de la partición al máximo:

$MaxSize = (Get-PartitionSupportedSize -DriveLetter L).SizeMax
Resize-Partition -DriveLetter L -Size $MaxSize

Cambiar el tamaño de la partición de elegante

Si desea activar una partición, se utiliza este comando:

Set-Partition -DriveLetter U -IsActive $true

Formatear una partición con PowerShell

Formateemos la nueva partición en NTFS y establezcamos la etiqueta de volumen DBData:

Format-Volume -DriveLetter L -FileSystem NTFS -NewFileSystemLabel DBData -Confirm:$false

Formato-Volumen

¿Cómo eliminar particiones de un disco?

Para eliminar todas las particiones en los discos 1 y 2 sin confirmación, ejecute este comando:

Get-Partition –DiskNumber 1,2 | Remove-Partition -Confirm:$false

Eliminar partición

Para eliminar todas las particiones de los discos y borrar completamente los datos, ejecute el comando

Clear-Disk -Number 1 -RemoveData -Confirm:$false

Si hay particiones OEM en un disco (partición de recuperación OEM, partición EFI, sistema reservado), utilice el Eliminar OEM parámetro para eliminarlos:

Clear-Disk -Number 1 -RemoveData –RemoveOEM

El siguiente resumen de PowerShell inicializará todos los nuevos discos de tipo RAW conectados, creará la tabla de particiones en ellos y creará particiones NTFS con el tamaño máximo disponible. Es conveniente usarlo al conectar un nuevo disco:

Get-Disk |Where-Object PartitionStyle -eq 'RAW' |Initialize-Disk -PartitionStyle MBR -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -Confirm:$false

Artículos Interesantes