![Visualizando todas as unidades acessíveis no PowerShell](https://rvso.com/image/1416714/Visualizando%20todas%20as%20unidades%20acess%C3%ADveis%20no%20PowerShell.png)
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-PSDrive
abaixo, 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-PSDrive
para 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-Object
e Select-Object
também possui aliases integrados de ?
Where select, respectively. (
-Object is also usable as
where` - é 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-PSDrives
as 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-Help
cmdlets e Get-Command
para obter melhor familiaridade com o ambiente.
Responder2
Use o seguinte comando powershell
para listar todas as unidades do seu PC
gdr -PSProvider 'FileSystem'
ou
Get-PSDrive -PSProvider 'FileSystem'