Get-PSDrive

Obtiene las unidades de disco de la sesión actual.

Syntax

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

Description

El Get-PSDrive cmdlet obtiene las unidades de la sesión actual. Se puede obtener una determinada unidad de disco o todas las unidades de la sesión.

Este cmdlet obtiene los siguientes tipos de unidades:

  • Unidades lógicas de Windows en el equipo, incluidas las unidades asignadas a recursos compartidos de red.
  • Unidades expuestas por proveedores de PowerShell (como las unidades Certificate:, Function:y Alias: ) y HKLM: y HKCU: unidades expuestas por el proveedor del Registro de Windows PowerShell.
  • Unidades temporales especificadas por la sesión y unidades de red asignadas persistentes que se crean mediante el cmdlet New-PSDrive.

A partir de Windows PowerShell 3.0, el parámetro Persist del cmdlet puede crear unidades de New-PSDrive red asignadas que se guardan en el equipo local y están disponibles en otras sesiones. Para obtener más información, vea New-PSDrive.

Además, a partir de Windows PowerShell 3.0, cuando una unidad externa está conectada al equipo, Windows PowerShell agrega automáticamente un PSDrive al sistema de archivos que representa la nueva unidad. No hace falta que reinicie Windows PowerShell. De forma similar, cuando se desconecta una unidad externa del equipo, Windows PowerShell elimina automáticamente la PSDrive que representa la unidad eliminada.

Ejemplos

Ejemplo 1: Obtener unidades en la sesión actual

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 obtiene las unidades de la sesión actual.

La salida muestra el disco duro (C:), la unidad CD-ROM (D:) y las unidades expuestas por los proveedores de Windows PowerShell (Alias:, Cert:, Env:, Function:, HKCU:, HKLM:y Variable:).

Ejemplo 2: Obtener una unidad en el equipo

PS C:\foo> Get-PSDrive D

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
D                1211.06     123642.32 FileSystem    D:\

Este comando obtiene la unidad D: del equipo. Observe que la letra de unidad en el comando no va seguida de coma.

Ejemplo 3: Obtener todas las unidades compatibles con el proveedor del sistema de archivos de 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 obtiene todas las unidades que son compatibles con el proveedor de FileSystem de Windows PowerShell. Esto incluye unidades fijas, particiones lógicas, unidades de red asignadas y unidades temporales que se crean mediante el cmdlet New-PSDrive.

Ejemplo 4: Comprobación para ver si una unidad está en uso como un nombre de unidad de 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 comprueba si la unidad X ya se está usando como nombre de unidad de Windows PowerShell. Si no es así, el comando usa el New-PSDrive cmdlet para crear una unidad temporal que se asigna a la clave del Registro HKLM:\SOFTWARE.

Ejemplo 5: Comparar los tipos de unidades del sistema de archivos

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

En este ejemplo se comparan los tipos de unidades del sistema de archivos que se muestran con Get-PSDrive los mostrados mediante otros métodos. En este ejemplo se muestran diferentes formas de mostrar unidades en Windows PowerShell y se muestra que las unidades específicas de la sesión creadas mediante el cmdlet New-PSDrive solo son accesibles en Windows PowerShell.

El primer comando usa Get-PSDrive para obtener todas las unidades del sistema de archivos en la sesión. Esto incluye las unidades fijas (C: y D:), una unidad de red asignada (G:) que se creó mediante el parámetro Persist de y una unidad de New-PSDrivePowerShell (T:) que se creó mediante New-PSDrive sin el parámetro Persist.

El comando net use muestra las unidades de red asignadas de Windows, en este caso solo muestra la unidad G. No muestra la unidad X: creada por New-PSDrive. Muestra que la unidad G: también está asignada a \\Música\GratefulDead.

El tercer comando usa el método GetDrives de la clase System.IO.DriveInfo de Microsoft .NET Framework. Este comando obtiene las unidades del sistema de archivos de Windows, incluida la unidad G:, pero no obtiene las unidades creadas por New-PSDrive.

El cuarto comando usa el Get-CimInstance cmdlet para obtener las instancias de la clase Win32_LogicalDisk . Devuelve las unidades A:, C:, D:, E:y G: , pero no las unidades creadas por New-PSDrive.

El último comando usa el Get-CimInstance cmdlet para mostrar las instancias de la clase Win32_Network Conectar ion. Al igual que el uso neto, devuelve solo la unidad G: persistente creada por New-PSDrive.

Parámetros

-LiteralName

Especifica el nombre de la unidad.

El valor de LiteralName se usa exactamente como se escribe. Ninguno de los caracteres se interpreta como caracteres comodín. Si el nombre incluye caracteres de escape, escríbalos entre comillas simples. Las comillas simples indican a Windows PowerShell que no interprete ningún carácter como secuencia de escape.

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

-Name

Especifica, como matriz de cadenas, el nombre o el nombre de las unidades que este cmdlet obtiene en la operación. Escriba el nombre o la letra de la unidad sin dos puntos (:).

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

-PSProvider

Especifica, como matriz de cadenas, el proveedor de Windows PowerShell. Este cmdlet solo obtiene las unidades admitidas por este proveedor. Escriba el nombre de un proveedor, como FileSystem, Registry o Certificate.

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

-Scope

Especifica el ámbito en el que este cmdlet obtiene las unidades.

Los valores permitidos para este parámetro son los siguientes:

  • Global
  • Local
  • Script
  • un número relativo al ámbito actual (de 0 al número de ámbitos, donde 0 es el ámbito actual y 1 es su elemento primario). El valor predeterminado es "Local".

Para obtener más información, consulte about_Scopes.

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

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

PSDriveInfo

Este cmdlet devuelve objetos que representan las unidades de la sesión.

Notas

PowerShell incluye los siguientes alias para Get-PSDrive:

  • Todas las plataformas:

    • gdr
  • Este cmdlet está diseñado para trabajar con los datos expuestos por cualquier proveedor. Para enumerar los proveedores disponibles en la sesión, use el Get-PSProvider cmdlet . Para obtener más información, consulte about_Providers.

  • Las unidades de red asignadas que se crean mediante el parámetro Persist del cmdlet New-PSDrive son específicas de una cuenta de usuario. Las unidades de red asignadas que se crean en sesiones que se inician con la opción Ejecutar como administrador o con las credenciales de otro usuario no son visibles en las sesiones que se inician sin credenciales explícitas ni con las credenciales del usuario actual.