![Ver todas las unidades accesibles en PowerShell](https://rvso.com/image/1416714/Ver%20todas%20las%20unidades%20accesibles%20en%20PowerShell.png)
Noté que cd \ navega a la raíz de mi disco.
Pero hay otras unidades a las que puedo acceder desde mi computadora.
¿Existe algún comando en PowerShell que enumere todas las unidades a las que puedo conectarme?
Respuesta1
Esto depende en cierta medida de lo que llames "impulso". En PowerShell, hay unidades que representan sus volúmenes locales o asignados en red habituales, así como unidades que contienen otros objetos como alias, variables de entorno, funciones, variables de PowerShell, colmenas de registro y más.
Para ver una lista de todas las "unidades" en PowerShell, use:
Get-PSDrive
O puedes usar el alias incorporado:
gdr
(En cualquier lugar que vea Get-PSDrive
a continuación, puede sustituirlo gdr
).
Para obtener solo unidades de FileSystem, por ejemplo: volúmenes o bahías de medios locales o mapeados en red, use:
Get-PSDrive -PSProvider FileSystem
Llegarjustounidades locales, ojustodiscos duros, no pude encontrar una propiedad o método apropiado en los objetos generados porGet-PSDrive
para filtrar. Un poco de búsqueda en Google más tarde, encontréDocumentación Get-PSDrive de Microsoft en TechNet. Allí, junto con los detalles sobre cómo utilizar Get-PSDrive
, también se enumeran algunos otros métodos de enumeración de unidades accesibles en PowerShell. Uno que encontré útil es a través de la clase System.IO.DriveInfo en .NET Framework.
El siguiente comando, ejecutable a través de PowerShell, enumerará sólo los discos duros locales.
[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'}
Si desea incluir cualquier unidad local, no solo discos duros, utilice esto:
[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'}
Si solo desea ver las letras de las unidades, canalice la salida a Select-Object
, así:
[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'} | Select-Object -Property Name
Tenga en cuenta que Where-Object
y Select-Object
también tiene alias integrados de ?
y select, respectively. (
Where-Object is also usable as
donde`; en realidad es solo una cuestión de preferencia). La clase System.IO.DriveInfo también se puede acortar a solo IO.DriveInfo. Entonces, el último comando podría ejecutarse así, si lo desea:
[IO.DriveInfo]::getdrives() | ? {$_.DriveType -ne 'Network} | select -Property Name
Por supuesto, hay muchas más cosas que puede hacer con .NET Get-PSDrives
y las clases .NET accesibles a través de PowerShell, así como muchos otros atajos de PowerShell disponibles. Sugiero leer más en TechNet y sitios similares, y usar los Get-Help
cmdlets y Get-Command
para familiarizarse mejor con el entorno.
Respuesta2
Utilice el siguiente comando powershell
para enumerar todas las unidades de su PC
gdr -PSProvider 'FileSystem'
o
Get-PSDrive -PSProvider 'FileSystem'