Get-PSDrive
Obtiene las unidades de disco 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 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-PSDrive
PowerShell (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 \\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 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_NetworkConnection . 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.
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 o la letra de la unidad 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 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.
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
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.