Compartir a través de


Get-PSDrive

Obtiene las unidades de la sesión actual.

Sintaxis

Name (valor predeterminado)

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

LiteralName

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

Description

El cmdlet Get-PSDrive 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 Windows PowerShell (como certificate:, Function:, y Alias: unidades) 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       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

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:\> Get-PSDrive D

Name       Provider      Root
----       --------      ----
D          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 del sistema de archivos de 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

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       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

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 temporales específicas de 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 de la sesión. Esto incluye las unidades fijas (C: y D:), una unidad de red asignada (X:) que se creó mediante el parámetro persist de New-PSDrivey dos unidades temporales de Windows PowerShell (Y: y Z:) creadas mediante New-PSDrive sin el parámetro Persist.

Un comando net use, que muestra las unidades de red asignadas de Windows, muestra solo la unidad X. No muestra las unidades Y: y Z: creadas por New-PSDrive. Muestra que la unidad X: también está asignada a \\Server01\Public.

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 X:, pero no obtiene las unidades temporales creadas por New-PSDrive.

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

El último comando usa el cmdlet Get-WmiObject para mostrar las instancias de la clase Win32_NetworkConnection. Al igual que net use, devuelve solo la unidad X 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íbalo entre comillas simples. Las comillas simples indican a Windows PowerShell que no interprete ningún carácter como secuencias de escape.

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

LiteralName
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes: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 (:).

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

Name
Posición:0
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes: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.

Propiedades de parámetro

Tipo:

String[]

Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Scope

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

Los valores aceptables para este parámetro son:

  • 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). "Local" es el valor predeterminado. Para obtener más información, vea about_Scopes (https://go.microsoft.com/fwlink/?LinkID=113260).

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-UseTransaction

Incluye el comando en la transacción activa. Este parámetro solo es válido cuando una transacción está en curso. Para obtener más información, consulte about_Transactions.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:usetx

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

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

  • 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, consulte 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.