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?

¿Fue útil?

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:

text alt

Función PD:> get-psdrive

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top