Gerir unidades do PowerShell

Este exemplo só se aplica a plataformas Windows.

Uma unidade do PowerShell é um local de armazenamento de dados que você pode acessar como uma unidade do sistema de arquivos no PowerShell. Os provedores do PowerShell criam algumas unidades para você, como as unidades do sistema de arquivos (incluindo C: e D:), as unidades do Registro (HKCU: e HKLM:) e a unidade de certificado (Cert:), e você pode criar suas próprias unidades do PowerShell. Essas unidades são úteis, mas estão disponíveis apenas no PowerShell. Não é possível acessá-los usando outras ferramentas do Windows, como o Explorador de Arquivos ou Cmd.exeo .

O PowerShell usa o substantivo, PSDrive, para comandos que funcionam com unidades do PowerShell. Para obter uma lista das unidades do PowerShell em sua sessão do PowerShell, use o Get-PSDrive cmdlet.

Get-PSDrive
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
Alias      Alias
C          FileSystem    C:\                                 ...And Settings\me
cert       Certificate   \
D          FileSystem    D:\
Env        Environment
Function   Function
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE
Variable   Variable

Embora as unidades no visor variem com as unidades do seu sistema, a sua deve ser semelhante à saída do Get-PSDrive comando mostrado acima.

as unidades do sistema de arquivos são um subconjunto das unidades do PowerShell. Você pode identificar as unidades do sistema de arquivos pela entrada FileSystem na coluna Provedor. As unidades do sistema de arquivos no PowerShell são suportadas pelo provedor do Sistema de Arquivos do PowerShell.

Para ver a Get-PSDrive sintaxe do cmdlet, digite um Get-Command comando com o parâmetro Syntax :

Get-Command -Name Get-PSDrive -Syntax
Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider <String[]>] [-V
erbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-
OutVariable <String>] [-OutBuffer <Int32>]

O parâmetro PSProvider permite que você exiba apenas as unidades do PowerShell que são suportadas por um provedor específico. Por exemplo, para exibir somente as unidades do PowerShell suportadas pelo provedor do Sistema de Arquivos do PowerShell, digite um Get-PSDrive comando com o parâmetro PSProvider e o valor FileSystem :

Get-PSDrive -PSProvider FileSystem
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
C          FileSystem    C:\                           ...nd Settings\PowerUser
D          FileSystem    D:\

Para exibir as unidades do PowerShell que representam hives do Registro, use o parâmetro PSProvider para exibir somente as unidades do PowerShell suportadas pelo provedor do Registro do PowerShell:

Get-PSDrive -PSProvider Registry
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE

Você também pode usar os cmdlets Location padrão com as unidades do PowerShell:

Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft

Adicionando novas unidades do PowerShell

Você pode adicionar suas próprias unidades do PowerShell usando o New-PSDrive comando. Para obter a sintaxe do New-PSDrive comando, digite o Get-Command comando com o parâmetro Syntax :

Get-Command -Name New-PSDrive -Syntax
New-[-Description <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug ]
[-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St ring>]
[-OutBuffer <Int32>] [-WhatIf] [-Confirm]

Para criar uma nova unidade do PowerShell, você deve fornecer três parâmetros:

  • Um nome para a unidade (você pode usar qualquer nome válido do PowerShell)
  • O PSProvider - uso FileSystem para locais do sistema de arquivos e Registry para locais de registro
  • A raiz, ou seja, o caminho para a raiz da nova unidade

Por exemplo, você pode criar uma unidade chamada Office mapeada para a pasta que contém os aplicativos do Microsoft Office no seu computador, como C:\Program Files\MicrosoftOffice\OFFICE11. Para criar a unidade, digite o seguinte comando:

New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft Office\OFFICE11"
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
Office     FileSystem    C:\Program Files\Microsoft Offic...

Nota

Em geral, os caminhos não diferenciam maiúsculas de minúsculas.

Uma unidade do PowerShell é acessada usando seu nome seguido por dois pontos (:).

Uma unidade do PowerShell pode tornar muitas tarefas muito mais simples. Por exemplo, algumas das chaves mais importantes no registro do Windows têm caminhos extremamente longos, tornando-os complicados de acessar e difíceis de lembrar. As informações críticas de configuração residem em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Para exibir e alterar itens na chave do Registro CurrentVersion, você pode criar uma unidade do PowerShell enraizada nessa chave digitando:

New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\Windows\CurrentVersion
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
cvkey      Registry      HKLM\Software\Microsoft\Windows\...

Em seguida, você pode alterar a localização para a unidade cvkey: como faria com qualquer outra unidade:

cd cvkey:

ou:

Set-Location cvkey: -PassThru
Path
----
cvkey:\

O New-PSDrive cmdlet adiciona a nova unidade somente à sessão atual do PowerShell. Se você fechar a janela do PowerShell, a nova unidade será perdida. Para salvar uma unidade do PowerShell, use o Export-Console cmdlet para exportar a sessão atual do PowerShell e use o PowerShell.exeparâmetro PSConsoleFile para importá-la. Ou adicione a nova unidade ao seu perfil do Windows PowerShell.

Excluindo unidades do PowerShell

Você pode excluir unidades do PowerShell usando o Remove-PSDrive cmdlet. Por exemplo, se você adicionou a Office: unidade do PowerShell, conforme mostrado no New-PSDrive tópico, poderá excluí-la digitando:

Remove-PSDrive -Name Office

Para excluir a cvkey: unidade do PowerShell, use o seguinte comando:

Remove-PSDrive -Name cvkey

No entanto, você não pode excluí-lo enquanto estiver na unidade. Por exemplo:

cd office:
Remove-PSDrive -Name office
Remove-PSDrive : Cannot remove drive 'Office' because it is in use.
At line:1 char:15
+ remove-psdrive  <<<< -name office

Adicionando e removendo unidades fora do PowerShell

O PowerShell deteta unidades do sistema de arquivos que são adicionadas ou removidas no Windows, incluindo:

  • Unidades de rede mapeadas
  • Unidades USB conectadas
  • Unidades que são excluídas usando o net use comando ou de um script WSH (Windows Script Host)