Compartir a través de


Get-PSDrive

Obtiene las unidades de la sesión actual.

Sintaxis

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

Description

El cmdlet Get-PSDrive obtiene las unidades de la sesión actual. Puede obtener una unidad determinada 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 New-PSDrive puede crear unidades de 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 es necesario reiniciar Windows PowerShell. De forma similar, cuando se desconecta una unidad externa del equipo, Windows PowerShell elimina automáticamente el 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:), CD-ROM unidad (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: en el equipo. Tenga en cuenta que la letra de unidad del comando no va seguida de dos puntos.

Ejemplo 3: Obtener todas las unidades compatibles con el proveedor fileSystem 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 compatibles con el proveedor 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 está en uso como un nombre de unidad de Windows PowerShell. Si no es así, el comando usa el cmdlet New-PSDrive para crear una unidad temporal asignada 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 Get-PSDrive a los mostrados mediante otros métodos. En este ejemplo se muestran distintas 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:) creada mediante el parámetro persist de de New-PSDrivey una unidad de PowerShell (T:) creada 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 \\Music\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 cmdlet Get-CimInstance 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 cmdlet Get-CimInstance para mostrar las instancias de la clase Win32_NetworkConnection. Al igual que net use, 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. No se interpreta ningún carácter como caracteres comodín. Si el nombre incluye caracteres de escape, escríbalo entre comillas simples. Las comillas simples indican a Windows PowerShell que no interprete ningún carácter como secuencias de escape.

Tipo:String[]
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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 de unidad o la letra sin dos puntos (:).

Tipo:String[]
Posición:0
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Scope

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

Los valores aceptables para este parámetro son:

  • Global
  • Local
  • Guión
  • 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). "Local" es el valor predeterminado.

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

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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 cmdlet Get-PSProvider. Para obtener más información, vea about_Providers.

  • Las unidades de red asignadas que se crean mediante el parámetro Persist del cmdlet New-PSDrive son específicos 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.