Compartilhar via


Gerenciar unidades do PowerShell

Este exemplo só se aplica a plataformas Windows.

Uma unidade do PowerShell é um local de armazenamento de dados que pode ser acessado como uma unidade de sistema de arquivos no PowerShell. Os provedores do PowerShell criam algumas unidades, como unidades de sistema de arquivos (incluindo C: e D:), as unidades do registro (HKCU: e HKLM:) e a unidade de certificado (Cert:), e você também pode criar suas próprias unidades no PowerShell. Essas unidades são úteis, mas estão disponíveis apenas no PowerShell. Você não poderá acessá-las usando outras ferramentas do Windows, como o Explorador de Arquivos ou Cmd.exe.

O PowerShell usa o substantivo PSDrive para comandos que funcionam com o PowerShell. Para ver uma lista de unidades do PowerShell presentes na sua sessão do PowerShell, use o cmdlet Get-PSDrive.

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 na exibição variem de acordo com as unidades no sistema, a sua deve ser semelhante à saída do comando Get-PSDrive mostrada acima.

Unidades do sistema de arquivos são um subconjunto das unidades do PowerShell. Você pode identificar as unidades de sistema de arquivo pela entrada FileSystem na coluna de Provider. As unidades do sistema de arquivos no PowerShell têm suporte do provedor FileSystem do PowerShell.

Para ver a sintaxe do cmdlet Get-PSDrive, digite um comando Get-Command 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 exibir somente as unidades do PowerShell com suporte em um provedor específico. Por exemplo, para exibir somente unidades do PowerShell suportadas pelo provedor do Sistema de Arquivos do PowerShell, digite um comando Get-PSDrive com o parâmetro PSProvider e 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 os hives do registro, use o parâmetro PSProvider para exibir somente as unidades do PowerShell que têm suporte no provedor de 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

Adicionar novas unidades do PowerShell

Você pode adicionar suas próprias unidades do PowerShell usando o comando New-PSDrive. Para ver a sintaxe do comando New-PSDrive, digite o comando Get-Command 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ê deverá fornecer três parâmetros:

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

Por exemplo, você pode criar uma unidade chamada Office mapeada para a pasta que contém os aplicativos do Microsoft Office em 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...

Observação

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 diversas 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 serem lembradas. Informações de configuração essenciais ficam 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 que está enraizada na chave digitando:

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

Você poderá então alterar o local para a unidade cvkey:, tal como faria com qualquer outra unidade:

cd cvkey:

ou:

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

O cmdlet New-PSDrive adiciona a nova unidade apenas à 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 cmdlet Export-Console para exportar a sessão atual do PowerShell e, em seguida, use o parâmetro PowerShell.exe PSConsoleFile para importá-la. Ou então, adicione a nova unidade ao seu perfil do Windows PowerShell.

Excluir unidades do PowerShell

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

Remove-PSDrive -Name Office

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

Remove-PSDrive -Name cvkey

No entanto, você não poderá excluir 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

adicionar e remover unidades externas ao PowerShell

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

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