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 eRegistry
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)