Visualização de todas as unidades acessíveis no PowerShell

3

Eu notei que o cd \ navega para a raiz da minha unidade.

Mas há outras unidades que eu posso acessar no meu computador.

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

    
por Nebur 24.07.2014 / 20:25

2 respostas

2

Isso depende do que você está chamando de "drive". No PowerShell, há unidades que representam seus volumes locais ou mapeados em rede usuais, além de unidades que contêm outros objetos, como Aliases, Variáveis de Ambiente, Funções, Variáveis do PowerShell, Hives do Registro e muito mais.

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

Get-PSDrive

Ou você pode usar o alias interno:

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 mapeados em rede ou locais, use:

Get-PSDrive -PSProvider FileSystem

Para obter apenas unidades locais ou apenas discos rígidos, não consegui encontrar uma propriedade ou um método apropriado na saída de objetos Get-PSDrive para filtrar por. Um pouco pesquisando depois, achei a documentação Get-PSDrive da Microsoft no TechNet . Lá, junto com detalhes de como usar Get-PSDrive , alguns outros métodos acessíveis de PowerShell de enumeração de unidade também são listados. Um que eu achei útil é através 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ê quiser incluir qualquer unidade local, não apenas discos rígidos, use:

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

Se você quiser ver apenas letras de unidade, canalize a saída para Select-Object , desta forma:

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

Observe que Where-Object e Select-Object também possuem aliases internos de ? e select, respectively. ( Where-Object is also usable as em que '- é realmente uma questão de preferência.) O System.IO.DriveInfo A classe também pode ser reduzida para apenas IO.DriveInfo. Então, esse último comando pode ser executado como este, se você quiser:

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

É claro que há muito mais a fazer com Get-PSDrives e as classes .NET acessíveis por meio do PowerShell, além de muitos outros atalhos do PowerShell disponíveis. Sugiro ler mais sobre o TechNet e sites semelhantes e usar os cmdlets Get-Help e Get-Command para obter melhor familiaridade com o ambiente.

    
por 24.07.2014 / 21:11
0

Use o seguinte comando em powershell para listar todas as unidades no seu PC

gdr -PSProvider 'FileSystem'

ou

Get-PSDrive -PSProvider 'FileSystem'
    
por 24.07.2014 / 20:31

Tags