Una lista de todos los dispositivos, particiones y volúmenes en Powershell
-
12-09-2019 - |
Pregunta
Tengo varios volúmenes (como casi todo el mundo hoy en día): en Windows terminan especificado como C :, D: y así sucesivamente. ¿Cómo enumero todos éstos como en una máquina Unix con "ls / mnt /" con Powershell?
Solución
Para obtener todas las unidades del sistema de archivos, puede utilizar el siguiente comando:
gdr -PSProvider 'FileSystem'
gdr
es un alias para Get-PSDrive
, que incluye toda la "unidades virtuales" para el registro, etc.
Otros consejos
Get-Volumen
obtendrá: LetraDeUnidad, FileSystemLabel, sistema de archivos, DriveType, HealthStatus, SizeRemaining y tamaño
En Windows PowerShell:
Get-PSDrive
[System.IO.DriveInfo]::getdrives()
wmic diskdrive
wmic volume
También el dskwipe utilidad: http://smithii.com/dskwipe
dskwipe.exe -l
En primer lugar, en Unix utiliza mount
, no ls /mnt
:. Muchas cosas no están montados en /mnt
En cualquier caso, ahí está el comando de DOS mountvol
, que sigue trabajando en Powershell, y ahí está el Get-PSDrive
Powershell específica.
Esto es bastante viejo, pero he encontrado después de la pena señalar:
PS N:\> (measure-command {Get-WmiObject -Class Win32_LogicalDisk|select -property deviceid|%{$_.deviceid}|out-host}).totalmilliseconds
...
928.7403
PS N:\> (measure-command {gdr -psprovider 'filesystem'|%{$_.name}|out-host}).totalmilliseconds
...
169.474
Sin filtrar propiedades, en mi sistema de prueba, 4319.4196ms a 1777.7237ms. A menos que necesite un objeto PS-Drive regresó, me quedo con WMI.
EDIT: Creo que tenemos un ganador: PS N:> (medida de comando {[System.IO.DriveInfo] :: getdrives () |% {_ $ nombre} | anfitrión fuera.}) Para talmilliseconds. 110.9819
Aunque esto no es 'PowerShell' específica ... puedes fácilmente la lista de las unidades y particiones con diskpart list volume
PS C:\Dev> diskpart
Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: Box
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 D DVD-ROM 0 B No Media
Volume 1 C = System NTFS Partition 100 MB Healthy System
Volume 2 G C = Box NTFS Partition 244 GB Healthy Boot
Volume 3 H D = Data NTFS Partition 687 GB Healthy
Volume 4 E System Rese NTFS Partition 100 MB Healthy
Tenemos múltiples volúmenes por unidad (algunos están montados en los subdirectorios en la unidad). Este código se muestra una lista de los puntos de montaje y etiquetas de volumen. Obviamente también se puede extraer el espacio libre y así sucesivamente:
gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object {
echo "$(echo $_.name) [$(echo $_.label)]"
}
Ejecutar comando:
Get-PsDrive -PsProvider FileSystem
Para más información ver:
Función PD:> get-psdrive