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.exe
o .
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 eRegistry
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.exe
parâ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)