Una unidad de Windows PowerShell es una ubicación de almacén de datos a la que se puede tener acceso como si se tratara de una unidad del sistema de archivos en Windows PowerShell. Los proveedores de Windows PowerShell crean automáticamente algunas unidades, como las unidades del sistema de archivos (incluidas C: y D:), las unidades del Registro (HKCU: y HKLM:) y la unidad de certificados (Cert:), pero puede crear sus propias unidades de Windows PowerShell. Estas unidades son muy útiles, pero están disponibles únicamente desde Windows PowerShell. No se puede tener acceso a ellas mediante otras herramientas de Windows, como el Explorador de Windows o Cmd.exe.

Windows PowerShell utiliza el sustantivo PSDrive para los comandos que se pueden usar con unidades de Windows PowerShell. Para obtener una lista de las unidades de Windows PowerShell de la sesión de Windows PowerShell, utilice el cmdlet Get-PSDrive:

PS> Get-PSDrive

Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
Alias      Alias
C          FileSystem    C:\                                 ...And Settings\me
cert       Certificate   \
D          FileSystem    D:\
Env        Environment
Function   Function
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE
Variable   Variable

Aunque las unidades mostradas varían respecto a las unidades del sistema, la lista será similar al resultado del comando Get-PSDrive mostrado anteriormente.

Las unidades del sistema de archivos son un subconjunto de las unidades de Windows PowerShell. Puede identificar las unidades del sistema de archivos por la entrada FileSystem de la columna Provider. (El proveedor FileSystem de Windows PowerShell admite las unidades del sistema de archivos de Windows PowerShell).

Para ver la sintaxis del cmdlet Get-PSDrive, escriba un comando Get-Command con el parámetro Syntax:

PS> Get-Command -Name Get-PSDrive -Syntax
Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider <String[]>] [-V
erbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-
OutVariable <String>] [-OutBuffer <Int32>] 

El parámetro PSProvider permite mostrar únicamente las unidades de Windows PowerShell admitidas por un proveedor determinado. Por ejemplo, para mostrar solamente las unidades de Windows PowerShell admitidas por el proveedor FileSystem de Windows PowerShell, escriba el comando Get-PSDrive con el parámetro PSProvider y el valor FileSystem:

PS> Get-PSDrive -PSProvider FileSystem

Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
C          FileSystem    C:\                           ...nd Settings\PowerUser
D          FileSystem    D:\

Para ver las unidades de Windows PowerShell que representan subárboles del Registro, utilice el parámetro PSProvider para que se muestren únicamente las unidades de Windows PowerShell admitidas por el proveedor del Registro de Windows PowerShell:

PS> Get-PSDrive -PSProvider Registry

Name Provider Root CurrentLocation

---- -------- ---- ---------------

HKCU Registry HKEY_CURRENT_USER

HKLM Registry HKEY_LOCAL_MACHINE

También puede utilizar los cmdlets Location estándar con las unidades de Windows PowerShell:

PS> Set-Location HKLM:\SOFTWARE

PS> Push-Location .\Microsoft

PS> Get-Location

Path

----

HKLM:\SOFTWARE\Microsoft

Agregar nuevas unidades de Windows PowerShell (New-PSDrive)

Puede agregar sus propias unidades de Windows PowerShell usando el comando New-PSDrive. Para obtener la sintaxis del comando New-PSDrive, escriba el comando Get-Command con el parámetro Syntax:

PS> Get-Command -Name New-PSDrive -Syntax
New-PSDrive [-Name] <String> [-PSProvider] <String> [-Root] <String> [-Descript
ion <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug
] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St
ring>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm]

Para crear una nueva unidad de Windows PowerShell, debe proporcionar tres parámetros:

  • Un nombre para la unidad (puede utilizar cualquier nombre válido de Windows PowerShell)

  • El valor de PSProvider (utilice "FileSystem" para ubicaciones del sistema de archivos y "Registry" para ubicaciones del Registro)

  • El directorio raíz (es decir, la ruta de acceso al directorio raíz de la nueva unidad)

Por ejemplo, puede crear una unidad denominada "Office" que esté asignada a la carpeta que contiene las aplicaciones de Microsoft Office en el equipo, como C:\Program Files\Microsoft Office\OFFICE11. Para crear la unidad, escriba el comando siguiente:

PS> New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Micr
osoft Office\OFFICE11"

Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
Office     FileSystem    C:\Program Files\Microsoft Offic...
Nota:

En general, las rutas de acceso no distinguen entre mayúsculas y minúsculas.

Se hará referencia a la nueva unidad de Windows PowerShell de la misma manera que a todas las unidades de Windows PowerShell: por su nombre seguido del signo de dos puntos (:).

Una unidad de Windows PowerShell puede simplificar muchas tareas. Por ejemplo, algunas de las claves más importantes del Registro de Windows tienen rutas de acceso muy largas, lo cual dificulta su acceso y su memorización. La información de configuración importante se encuentra en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Para ver y cambiar elementos de la clave CurrentVersion del Registro, puede crear una unidad de Windows PowerShell cuya raíz sea esta clave. Para ello, escriba:

PS> New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\W

indows\CurrentVersion

Name Provider Root CurrentLocation

---- -------- ---- ---------------

cvkey Registry HKLM\Software\Microsoft\Windows\...

A continuación, puede cambiar la ubicación a la unidad cvkey: como si se tratara de cualquier otra unidad:

PS> cd cvkey:

O bien:

PS> Set-Location cvkey: -PassThru

Path

----

cvkey:\

El cmdlet New-PsDrive agrega la nueva unidad sólo a la sesión actual de Windows PowerShell. Si cierra la ventana de Windows PowerShell, perderá la nueva unidad. Para guardar una unidad de Windows PowerShell, utilice el cmdlet Export-Console para exportar la sesión de Windows PowerShell actual, y use seguidamente el parámetro PSConsoleFile de PowerShell.exe para importarla. O bien, agregue la nueva unidad a su perfil de Windows PowerShell.

Eliminar unidades de Windows PowerShell (Remove-PSDrive)

Puede eliminar unidades de Windows PowerShell usando el cmdlet Remove-PSDrive. El cmdlet Remove-PSDrive es fácil de usar; para eliminar una unidad específica de Windows PowerShell, basta con que proporcione el nombre de dicha unidad.

Por ejemplo, si ha agregado la unidad Office: de Windows PowerShell tal como se indica en el tema dedicado a New-PSDrive, para eliminarla debe escribir:

PS> Remove-PSDrive -Name Office

Para eliminar la unidad cvkey: de Windows PowerShell, mostrada también en el tema dedicado a New-PSDrive, utilice el comando siguiente:

PS> Remove-PSDrive -Name cvkey

Eliminar una unidad de Windows PowerShell es fácil, pero no podrá hacerlo si se encuentra en esa unidad. Por ejemplo:

PS> cd office:
PS Office:\> remove-psdrive -name office
Remove-PSDrive : Cannot remove drive 'Office' because it is in use.
At line:1 char:15
+ remove-psdrive  <<<< -name office

Agregar y eliminar unidades fuera de Windows PowerShell

Windows PowerShell detecta las unidades del sistema de archivos que se agregan o quitan en Windows, incluidas las unidades de red que se asignan, las unidades USB que se conectan y las unidades que se eliminan usando el comando net use o los métodos WScript.Network MapNetworkDrive y RemoveNetworkDrive de un script de Windows Script Host (WSH).




Tabla de contenido