Compartilhar via


Get-PSDrive

Obtém unidades na sessão atual.

Sintaxe

Get-PSDrive
   [[-Name] <String[]>]
   [-Scope <String>]
   [-PSProvider <String[]>]
   [-UseTransaction]
   [<CommonParameters>]
Get-PSDrive
   [-LiteralName] <String[]>
   [-Scope <String>]
   [-PSProvider <String[]>]
   [-UseTransaction]
   [<CommonParameters>]

Description

O cmdlet Get-PSDrive obtém as unidades na sessão atual. Você pode obter uma unidade específica ou todas as unidades 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 Windows PowerShell (como o Certificado:, Função:e Alias: unidades) e o HKLM: e HKCU: unidades 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 New-PSDrive pode criar unidades de 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. Você não precisa 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       Provider      Root
----       --------      ----
Alias      Alias
C          FileSystem    C:\
Cert       Certificate   \
D          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:), CD-ROM unidade (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:\> Get-PSDrive D

Name       Provider      Root
----       --------      ----
D          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 compatíveis com o provedor do sistema de arquivos do Windows PowerShell

PS C:\> Get-PSDrive -PSProvider FileSystem

Name       Provider      Root
----       --------      ----
C          FileSystem    C:\
D          FileSystem    D:\
X          FileSystem    X:\
Y          FileSystem    \\Server01\Public
Z          FileSystem    C:\Windows\System32

Esse comando obtém todas as unidades compatíveis com o 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
}

Esse 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 cmdlet New-PSDrive 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       Provider      Root
----       --------      ----
C          FileSystem    C:\
D          FileSystem    D:\
X          FileSystem    X:\
Y          FileSystem    \\Server01\Public
Z          FileSystem    C:\Windows\System32

PS C:\> net use
New connections will be remembered.

Status       Local     Remote                    Network
-------------------------------------------------------------------------------
X:        \\Server01\Public         Microsoft Windows Network

PS C:\> [System.IO.DriveInfo]::GetDrives()

Name               : C:\
DriveType          : Fixed
DriveFormat        : NTFS
IsReady            : True
AvailableFreeSpace : 39831498752
TotalFreeSpace     : 39831498752
TotalSize          : 79900368896
RootDirectory      : C:\
VolumeLabel        :
Name               : D:\
DriveType          : CDRom
DriveFormat        :
IsReady            : False
AvailableFreeSpace :
TotalFreeSpace     :
TotalSize          :
RootDirectory      : D:\
VolumeLabel        :
Name               : X:\
DriveType          : Network
DriveFormat        : NTFS
IsReady            : True
AvailableFreeSpace : 36340559872
TotalFreeSpace     : 36340559872
TotalSize          : 36413280256
RootDirectory      : X:\
VolumeLabel        : D_Drive

PS C:\> Get-WmiObject Win32_LogicalDisk

DeviceID     : C:
DriveType    : 3
ProviderName :
FreeSpace    : 39831252992
Size         : 79900368896
VolumeName   :
DeviceID     : D:
DriveType    : 5
ProviderName :
FreeSpace    :
Size         :
VolumeName   :
DeviceID     : X:
DriveType    : 4
ProviderName : \\server01\public
FreeSpace    : 36340559872
Size         : 36413280256
VolumeName   : D_Drive

PS C:\> Get-WmiObject Win32_NetworkConnection

LocalName                     RemoteName
--------------               ------------
x:                            \\server01\public

Este exemplo compara os tipos de unidades do sistema de arquivos que são exibidas por Get-PSDrive com as exibidas usando outros métodos. Este exemplo demonstra diferentes maneiras de exibir unidades no Windows PowerShell e mostra que unidades temporárias específicas de sessão criadas usando o cmdlet New-PSDrive são acessíveis apenas no Windows PowerShell.

O primeiro comando usa 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 (X:) que foi criada usando o parâmetro Persist de New-PSDrivee duas unidades temporárias do Windows PowerShell (Y: e Z:) que foram criadas usando New-PSDrive sem o parâmetro Persist .

Um comando net use, que exibe unidades de rede mapeadas do Windows, exibe apenas a unidade X. Ele não exibe as unidades Y: e Z: que foram criadas pelo New-PSDrive. Ele mostra que a unidade X: também é mapeada para \\Server01\Public.

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 X:, mas não obtém as unidades temporárias criadas por New-PSDrive.

O quarto comando usa o cmdlet Get-WmiObject para obter as instâncias da classe Win32_LogicalDisk. Ele retorna as unidades C:, D:e X: mas não as unidades temporárias criadas pelo New-PSDrive.

O último comando usa o cmdlet Get-WmiObject para exibir as instâncias da classe Win32_NetworkConnection. Assim como o uso de rede, ele retorna apenas a unidade X: persistente que foi criada pelo 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. Aspas simples dizem ao Windows PowerShell para não interpretar nenhum caractere 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 da unidade ou letra 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 compatíveis com esse provedor. Digite o nome de um provedor, como FileSystem, Registro ou Certificado.

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 este parâmetro são:

  • Global
  • Local
  • Roteiro
  • um número relativo ao escopo atual (0 por meio do 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 (https://go.microsoft.com/fwlink/?LinkID=113260).
Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-UseTransaction

Inclui o comando na transação ativa. Esse parâmetro só é válido quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.

Tipo:SwitchParameter
Aliases:usetx
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

None

Você não pode redirecionar objetos para este cmdlet.

Saídas

PSDriveInfo

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

Observações

  • 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 cmdlet Get-PSProvider. 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 para 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 estão visíveis em sessões iniciadas sem credenciais explícitas ou com as credenciais do usuário atual.