Visualizando todas as unidades acessíveis no PowerShell

Visualizando todas as unidades acessíveis no PowerShell

Percebi que cd \ navega para a raiz da minha unidade.

Mas existem outras unidades que posso acessar no meu computador.

Existe um comando no PowerShell que lista todas as unidades às quais posso me conectar?

Responder1

Isso depende um pouco do que você está chamando de "unidade". No PowerShell, existem unidades que representam seus volumes habituais locais ou mapeados em rede, bem como unidades que contêm outros objetos como aliases, variáveis ​​de ambiente, funções, variáveis ​​do PowerShell, seções de registro e muito mais.

Para ver uma lista de todas as “unidades” no PowerShell, use:

Get-PSDrive

Ou você pode usar o alias integrado:

gdr

(Em qualquer lugar que você veja Get-PSDriveabaixo, você pode substituir gdr.)

Para obter apenas unidades FileSystem, por exemplo: volumes ou compartimentos de mídia locais ou mapeados em rede, use:

Get-PSDrive -PSProvider FileSystem

Obterapenasunidades locais ouapenasdiscos rígidos, não consegui encontrar uma propriedade ou método apropriado na saída dos objetos Get-PSDrivepara filtrar. Pesquisando um pouco mais tarde, descobriDocumentação Get-PSDrive da Microsoft no TechNet. Lá, juntamente com detalhes de como usar Get-PSDrive, alguns outros métodos de enumeração de unidades acessíveis pelo PowerShell também são listados. Uma que achei útil é por meio da classe System.IO.DriveInfo no .NET Framework.

O comando abaixo, executável via PowerShell, listará apenas os discos rígidos locais.

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'}

Se você deseja incluir qualquer unidade local - não apenas discos rígidos - use isto:

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'}

Se você quiser ver apenas as letras das unidades, canalize a saída para Select-Object, assim:

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'} | Select-Object -Property Name

Observe que Where-Objecte Select-Objecttambém possui aliases integrados de ?Where select, respectively. (-Object is also usable aswhere` - é apenas uma questão de preferência.) A classe System.IO.DriveInfo também pode ser abreviada para apenas IO.DriveInfo. Então, esse último comando pode ser executado assim, se você quiser:

[IO.DriveInfo]::getdrives() | ? {$_.DriveType -ne 'Network} | select -Property Name

Claro, há muito mais que você pode fazer com Get-PSDrivesas classes .NET acessíveis via PowerShell, bem como muitos outros atalhos do PowerShell disponíveis. Sugiro ler mais no TechNet e sites semelhantes e usar os Get-Helpcmdlets e Get-Commandpara obter melhor familiaridade com o ambiente.

Responder2

Use o seguinte comando powershellpara listar todas as unidades do seu PC

gdr -PSProvider 'FileSystem'

ou

Get-PSDrive -PSProvider 'FileSystem'

informação relacionada