Get-PSDrive

Obtém unidades na sessão atual.

Syntax

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 unidade específica ou todas as unidades na sessão.

Este 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 por 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.

Além disso, 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

Este 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:\

Este 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 suportadas pelo 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

Este comando obtém todas as unidades suportadas pelo provedor do Sistema de Arquivos 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: Verifique 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 estiver, 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 as exibidas usando outros métodos. Este exemplo demonstra diferentes maneiras de exibir unidades no Windows PowerShell e mostra que unidades específicas de 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 PowerShell (T:) que foi criada usando New-PSDrive sem o parâmetro Persist.

O comando net use exibe unidades de rede mapeadas do Windows, neste caso, exibe apenas a unidade G. Ele não exibe a unidade X: que foi criada pelo New-PSDrive. Ele 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. Este 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 por New-PSDrive.

Parâmetros

-LiteralName

Especifica o nome da unidade.

O valor de LiteralName é usado exatamente como é digitado. Nenhum caractere é interpretado como curinga. Se o nome incluir caracteres de escape, coloque-o entre aspas simples. As aspas simples dizem ao Windows PowerShell para não interpretar nenhum caractere como sequências de escape.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 (:).

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

Especifica, como uma matriz de cadeia de caracteres, o provedor do Windows PowerShell. Este cmdlet obtém apenas as unidades suportadas por este provedor. Digite o nome de um provedor, como Sistema de Arquivos, Registro ou Certificado.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Scope

Especifica o escopo no qual esse cmdlet obtém as unidades.

Os valores aceitáveis para este parâmetro são:

  • Global
  • Região
  • Script
  • um número relativo ao escopo atual (0 através do número de escopos, onde 0 é o escopo atual e 1 é seu pai). "Local" é o padrão.

Para obter mais informações, consulte about_Scopes.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Entradas

None

Não é possível canalizar objetos para este cmdlet.

Saídas

PSDriveInfo

Este cmdlet retorna objetos que representam as unidades na sessão.

Notas

O PowerShell inclui os seguintes aliases para Get-PSDrive:

  • Todas as plataformas:

    • gdr
  • Este cmdlet foi projetado para trabalhar 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.