Get-PSDrive
Obtém as unidades na sessão atual.
Sintaxe
Get-PSDrive
[[-Name] <String[]>]
[-Scope <String>]
[-PSProvider <String[]>]
[<CommonParameters>]
Get-PSDrive
[-LiteralName] <String[]>
[-Scope <String>]
[-PSProvider <String[]>]
[<CommonParameters>]
Description
O Get-PSDrive
cmdlet obtém as unidades na sessão atual. Você pode obter uma determinada unidade ou todas as unidades existentes na sessão.
Esse cmdlet obtém os seguintes tipos de unidades:
- Unidades lógicas do Windows no computador, incluindo unidades mapeadas para compartilhamentos de rede.
- Unidades expostas por provedores do PowerShell (como as unidades Certificate:, Function: e Alias:) e as unidades HKLM: e HKCU: expostas pelo provedor do Registro do Windows PowerShell.
- Unidades temporárias especificadas pela sessão e unidades de rede mapeadas persistentes que você cria usando o cmdlet New-PSDrive.
A partir do Windows PowerShell 3.0, o parâmetro Persist do cmdlet pode criar unidades de New-PSDrive
rede mapeadas que são salvas no computador local e estão disponíveis em outras sessões. Para obter mais informações, consulte New-PSDrive.
Também, a partir do Windows PowerShell 3.0, quando uma unidade externa é conectada ao computador, o Windows PowerShell adiciona automaticamente um PSDrive ao sistema de arquivos que representa a nova unidade. Não é necessário reiniciar o Windows PowerShell. Da mesma forma, quando uma unidade externa é desconectada do computador, o Windows PowerShell exclui automaticamente o PSDrive que representa a unidade removida.
Exemplos
Exemplo 1: Obter unidades na sessão atual
PS C:\> Get-PSDrive
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Alias Alias
C 202.06 23718.91 FileSystem C:\
Cert Certificate \
D 1211.06 123642.32 FileSystem D:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Variable Variable
Esse comando obtém as unidades na sessão atual.
A saída mostra o disco rígido (C:), a unidade de CD-ROM (D:) e as unidades expostas pelos provedores do Windows PowerShell (Alias:, Cert:, Env:, Function:, HKCU:, HKLM: e Variable:).
Exemplo 2: Obter uma unidade no computador
PS C:\foo> Get-PSDrive D
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
D 1211.06 123642.32 FileSystem D:\
Esse comando obtém a unidade D: no computador. Observe que a letra da unidade no comando não é seguida por dois pontos.
Exemplo 3: Obter todas as unidades com suporte do provedor do sistema de arquivos do Windows PowerShell
PS C:\> Get-PSDrive -PSProvider FileSystem
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A A:\
C 202.06 23718.91 FileSystem C:\
D 1211.06 123642.32 FileSystem D:\
G 202.06 710.91 FileSystem \\Music\GratefulDead
Esse comando obtém todas as unidades suportadas pelo provedor FileSystem do Windows PowerShell. Isso inclui unidades fixas, partições lógicas, unidades de rede mapeadas e unidades temporárias que você cria usando o cmdlet New-PSDrive.
Exemplo 4: Verificar se uma unidade está em uso como um nome de unidade do Windows PowerShell
if (Get-PSDrive X -ErrorAction SilentlyContinue) {
Write-Host 'The X: drive is already in use.'
} else {
New-PSDrive -Name X -PSProvider Registry -Root HKLM:\SOFTWARE
}
Este comando verifica se a unidade X já está em uso como um nome de unidade do Windows PowerShell.
Se não for, o comando usará o New-PSDrive
cmdlet para criar uma unidade temporária mapeada para a chave do Registro HKLM:\SOFTWARE.
Exemplo 5: comparar os tipos de unidades do sistema de arquivos
PS C:\> Get-PSDrive -PSProvider FileSystem
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A A:\
C 202.06 23718.91 FileSystem C:\
D 1211.06 123642.32 FileSystem D:\
G 202.06 710.91 FileSystem \\Music\GratefulDead
X Registry HKLM:\Network
PS C:\> net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
OK G: \\Server01\Public Microsoft Windows Network
PS C:\> [System.IO.DriveInfo]::GetDrives() | Format-Table
Name DriveType DriveFormat IsReady AvailableFreeSpace TotalFreeSpace TotalSize RootDirectory VolumeLabel
---- --------- ----------- ------- ------------------ -------------- --------- ------------- -----------
A:\ Network False A:\
C:\ Fixed NTFS True 771920580608 771920580608 988877418496 C:\ Windows
D:\ Fixed NTFS True 689684144128 689684144128 1990045179904 D:\ Big Drive
E:\ CDRom False E:\
G:\ Network NTFS True 69120000 69120000 104853504 G:\ GratefulDead
PS N:\> Get-CimInstance -Class Win32_LogicalDisk
DeviceID DriveType ProviderName VolumeName Size FreeSpace
-------- --------- ------------ ---------- ---- ---------
A: 4
C: 3 Windows 988877418496 771926069248
D: 3 Big! 1990045179904 689684144128
E: 5
G: 4 \\Music\GratefulDead 988877418496 771926069248
PS C:\> Get-CimInstance -Class Win32_NetworkConnection
LocalName RemoteName ConnectionState Status
--------- ---------- --------------- ------
G: \\Music\GratefulDead Connected OK
Este exemplo compara os tipos de unidades do sistema de arquivos exibidas com Get-PSDrive
aquelas exibidas usando outros métodos. Este exemplo demonstra diferentes maneiras de exibir unidades no Windows PowerShell e mostra que as unidades específicas da sessão criadas usando o cmdlet New-PSDrive são acessíveis somente no Windows PowerShell.
O primeiro comando é usado Get-PSDrive
para obter todas as unidades do sistema de arquivos na sessão. Isso inclui as unidades fixas (C: e D:), uma unidade de rede mapeada (G:) que foi criada usando o parâmetro Persist de New-PSDrive
e uma unidade do PowerShell (T:) que foi criada usando New-PSDrive
sem o parâmetro Persist .
O comando net use exibe unidades de rede mapeadas do Windows, nesse caso, exibe apenas a unidade G. Ele não exibe a unidade X: que foi criada pelo New-PSDrive
. Isso mostra que a unidade G: também está mapeada para \\Music\GratefulDead.
O terceiro comando usa o método GetDrives da classe System.IO.DriveInfo do Microsoft .NET Framework. Esse comando obtém as unidades do sistema de arquivos do Windows, incluindo a unidade G:, mas não obtém as unidades criadas pelo New-PSDrive
.
O quarto comando usa o Get-CimInstance
cmdlet para obter as instâncias da classe Win32_LogicalDisk . Ele retorna as unidades A:, C:, D:, E: e G:, mas não as unidades criadas pelo New-PSDrive
.
O último comando usa o Get-CimInstance
cmdlet para exibir as instâncias da classe Win32_NetworkConnection . Como o uso líquido, ele retorna apenas a unidade G: persistente criada pelo New-PSDrive
.
Parâmetros
-LiteralName
Especifica o nome da unidade.
O valor de LiteralName é usado exatamente como é digitado. Nenhum caractere é interpretado como caractere curinga. Se o nome inclui caracteres de escape, coloque-o entre aspas simples. As aspas simples instruem o Windows PowerShell a nunca interpretar caracteres como sequências de escape.
Tipo: | String[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Name
Especifica, como uma matriz de cadeia de caracteres, o nome ou o nome das unidades que esse cmdlet obtém na operação.
Digite o nome ou a letra da unidade sem dois pontos (:
).
Tipo: | String[] |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-PSProvider
Especifica, como uma matriz de cadeia de caracteres, o provedor do Windows PowerShell. Esse cmdlet obtém apenas as unidades com suporte desse provedor. Digite o nome de um provedor, como FileSystem, Registry ou Certificate.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Scope
Especifica o escopo no qual esse cmdlet obtém as unidades.
Os valores aceitáveis para esse parâmetro são:
- Global
- Local
- Script
- um número relativo ao escopo atual (0 até o número de escopos, em que 0 é o escopo atual e 1 é seu pai). "Local" é o padrão.
Para obter mais informações, consulte about_Scopes.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
Entradas
None
Você não pode canalizar objetos para esse cmdlet.
Saídas
Esse cmdlet retorna objetos que representam as unidades na sessão.
Observações
O PowerShell inclui os seguintes aliases para Get-PSDrive
:
Todas as plataformas:
gdr
Esse cmdlet foi projetado para funcionar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, use o
Get-PSProvider
cmdlet. Para obter mais informações, consulte about_Providers.As unidades de rede mapeadas criadas usando o parâmetro Persist do cmdlet New-PSDrive são específicas de uma conta de usuário. As unidades de rede mapeadas que você cria em sessões iniciadas com a opção Executar como administrador ou com as credenciais de outro usuário não são visíveis em sessões iniciadas sem credenciais explícitas ou com as credenciais do usuário atual.