PSDrive – Cómo usar la alternativa PowerShell Net Use

Todos conocemos el comando Net Use que podemos usar para mapear unidades de red desde la línea de comandos.

Aunque podemos usar Net Use en PowerShell, existe una alternativa más potente, el cmdlet New-PSDrive.

Con el cmdlet New-PSDrive, no solo podemos asignar unidades de red, sino también crear asignaciones de unidades a carpetas locales o claves de registro en nuestra computadora.

Las unidades creadas con el cmdlet pueden ser temporales solo para las sesiones actuales de PowerShell o persistentes para que puedan usarse en el explorador.

En este artículo, vamos a echar un vistazo más de cerca a todas las posibilidades del cmdlet New-PSDrive con algunos ejemplos útiles para su uso.

Unidades temporales vs persistentes

Antes de que echemos un vistazo a cómo crear las unidades de red, primero quiero explicar la diferencia entre unidades temporales y persistentes.

Las unidades temporales solo se pueden usar en la sesión actual de PowerShell. No estarán visibles en el Explorador de Windows y desaparecerán cuando cierre la sesión de PowerShell.

Son excelentes para usar cuando necesita interactuar con una carpeta remota o una ruta de carpeta larga en su computadora local.

A las unidades persistentes se les asigna una letra de unidad y, por lo tanto, también se pueden usar en Explorer.

Permanecerán disponibles cuando cierre la sesión de PowerShell o incluso reinicie su computadora.

Agregar una nueva unidad de red con New-PSDrive

Para mapear una unidad de red con PowerShell, vamos a crear una conexión de red persistente.

De esta forma, la unidad de red estará disponible en Explorer y otras herramientas y no solo en PowerShell.

Hay un par de parámetros necesarios para crear una conexión de red:

Parámetro Descripción
Nombre Debe ser una letra de unidad disponible
PSProvider Ajustado a sistema de archivos para recursos compartidos de red y carpetas
Raíz La ubicación de red que desea mapear
Persistir Para que esté disponible fuera de PowerShell (en Explorer)

Entonces, para asignar el recurso compartido de red \\VBoxSvr\Win11 y asignarle la letra de unidad v: podemos usar el siguiente comando:

New-PSDrive -Name V -PSProvider FileSystem -Root \\VBoxSvr\Win11 -Persist
Nuevo cmdlet PSDrive
Nueva asignación de red de PSDrive

La ubicación de la red ahora estará disponible en Explorer o en cualquier otra herramienta que desee utilizar.

Usar diferentes credenciales para la unidad de red asignada

Al igual que con Net Use, podemos usar diferentes credenciales para abrir una unidad de red remota.

Para esto, primero debemos crear un objeto de credencial que podamos usar para mapear la unidad de red.

# Get the credentials
$cred = Get-Credential

# Create the drive mapping with the credentials
New-PSDrive -Name V -PSProvider FileSystem -Root \\VBoxSvr\Win11 -Persist -Credential $cred

Crear una asignación de unidad temporal en PowerShell

Como se mencionó, también podemos crear una asignación de unidad temporal con PowerShell.

Con asignaciones temporales, no estamos limitados solo a letras. Podemos dar cualquier nombre que queramos al mapeo.

Además, podemos crear una asignación a una carpeta local en nuestra computadora.

Por ejemplo, podemos crear una asignación a nuestra carpeta de registro con:

New-PSDrive -Name Log -PSProvider FileSystem -Root c:\temp\logfiles -Description "Log Folder"

De esta manera podemos navegar rápidamente a los archivos de registro con cd log:.

Pero no solo podemos navegar a la carpeta, ahora también hacemos referencia a la asignación en otros cmdlets. Por ejemplo:

Get-ChildItem log:
Uso de red de PowerShell
nuevo-PSDrive

Creación de una asignación persistente a una carpeta local

Las asignaciones temporales desaparecen después de cerrar la ventana de PowerShell.

No hay opción para almacenar asignaciones a carpetas locales con New-PSDrive.

Pero cuando necesite acceder a una ruta de carpeta larga a menudo desde PowerShell, puede agregar el cmdlet a su perfil de PowerShell.

De esta forma, la asignación se volverá a crear cada vez que abra PowerShell.

Primero, abre tu perfil:

ise $profile

Si recibe un error de que no se encuentra su perfil, siga este artículo para crear uno rápidamente.

En su perfil de PowerShell agregue la siguiente línea:

# Create shotcuts to long folder paths
New-PSDrive -Name Log -PSProvider FileSystem -Root c:\temp\logfiles -Description "Log Folder" | Out-Null

Tenga en cuenta que agregamos | Out-Null al cmdlet. De forma predeterminada, el cmdlet generará los resultados de la asignación de unidades. Pero no queremos eso cada vez que abrimos una nueva sesión de PowerShell.

Asignación de claves de registro con New-PSDrive

Además de asignar unidades y carpetas de red, también podemos asignar claves de registro con el cmdlet New-PSDrive.

De forma predeterminada, ya encontrará una asignación a la clave HKEY_CURRENT_USER y la clave HKEY_LOCAL_MACHINE. Puede algunos de estos con el comando:

Get-PsDrive -PSProvider Registry

# Result
Name           Used (GB)     Free (GB) Provider      Root                   CurrentLocation
----           ---------     --------- --------      ----                   ---------------
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE

Si desea crear una asignación a las colmenas HKEY_USERS, puede hacer lo siguiente:

New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS

No estamos limitados a los registros de nivel superior, puede crear asignaciones a cualquier clave de registro que desee. Por ejemplo, la clave HKCU de Windows NT:

New-PSDrive -Name WinNT -PSProvider Registry -Root HKEY_CURRENT_USER\Software\Microsoft\Windows NT

Ahora puede agregar, editar o eliminar fácilmente claves de registro utilizando la asignación de creación:

# WinNT: is the mapping that we created earlier
New-Item –Path WinNT: –Name LazyAdmin

Terminando

Para ser honesto, hay pocas ventajas en usar New-PSDrive si solo desea asignar un recurso compartido de red que también está disponible en Explorer.

El comando Net-Use es más corto y más cómodo de usar.

Pero cuando solo necesita crear una asignación en una sesión de PowerShell, o cuando desea crear un acceso directo a las carpetas locales o al registro, el cmdlet puede ser muy útil.

Si tiene alguna pregunta, simplemente deje un comentario a continuación.

Unidades temporales vs persistentes

Antes de que echemos un vistazo a cómo crear las unidades de red, primero quiero explicar la diferencia entre unidades temporales y persistentes.

Las unidades temporales solo se pueden usar en la sesión actual de PowerShell. No estarán visibles en el Explorador de Windows y desaparecerán cuando cierre la sesión de PowerShell.

Son excelentes para usar cuando necesita interactuar con una carpeta remota o una ruta de carpeta larga en su computadora local.

A las unidades persistentes se les asigna una letra de unidad y, por lo tanto, también se pueden usar en Explorer.

Permanecerán disponibles cuando cierre la sesión de PowerShell o incluso reinicie su computadora.

Agregar una nueva unidad de red con New-PSDrive

Para mapear una unidad de red con PowerShell, vamos a crear una conexión de red persistente.

De esta forma, la unidad de red estará disponible en Explorer y otras herramientas y no solo en PowerShell.

Hay un par de parámetros necesarios para crear una conexión de red:

Parámetro Descripción
Nombre Debe ser una letra de unidad disponible
PSProvider Ajustado a sistema de archivos para recursos compartidos de red y carpetas
Raíz La ubicación de red que desea mapear
Persistir Para que esté disponible fuera de PowerShell (en Explorer)

Entonces, para asignar el recurso compartido de red \\VBoxSvr\Win11 y asignarle la letra de unidad v: podemos usar el siguiente comando:

New-PSDrive -Name V -PSProvider FileSystem -Root \\VBoxSvr\Win11 -Persist
Nuevo cmdlet PSDrive
Nueva asignación de red de PSDrive

La ubicación de la red ahora estará disponible en Explorer o en cualquier otra herramienta que desee utilizar.

Usar diferentes credenciales para la unidad de red asignada

Al igual que con Net Use, podemos usar diferentes credenciales para abrir una unidad de red remota.

Para esto, primero debemos crear un objeto de credencial que podamos usar para mapear la unidad de red.

# Get the credentials
$cred = Get-Credential

# Create the drive mapping with the credentials
New-PSDrive -Name V -PSProvider FileSystem -Root \\VBoxSvr\Win11 -Persist -Credential $cred

Crear una asignación de unidad temporal en PowerShell

Como se mencionó, también podemos crear una asignación de unidad temporal con PowerShell.

Con asignaciones temporales, no estamos limitados solo a letras. Podemos dar cualquier nombre que queramos al mapeo.

Además, podemos crear una asignación a una carpeta local en nuestra computadora.

Por ejemplo, podemos crear una asignación a nuestra carpeta de registro con:

New-PSDrive -Name Log -PSProvider FileSystem -Root c:\temp\logfiles -Description "Log Folder"

De esta manera podemos navegar rápidamente a los archivos de registro con cd log:. Pero no solo podemos navegar a la carpeta, ahora también hacemos referencia a la asignación en otros cmdlets. Por ejemplo:

Get-ChildItem log:
Uso de red de PowerShell
nuevo-PSDrive

Creación de una asignación persistente a una carpeta local

Las asignaciones temporales desaparecen después de cerrar la ventana de PowerShell.

No hay opción para almacenar asignaciones a carpetas locales con New-PSDrive.

Pero cuando necesite acceder a una ruta de carpeta larga a menudo desde PowerShell, puede agregar el cmdlet a su perfil de PowerShell.

De esta forma, la asignación se volverá a crear cada vez que abra PowerShell.

Primero, abre tu perfil:

ise $profile

Si recibe un error de que no se encuentra su perfil, siga este artículo para crear uno rápidamente.

En su perfil de PowerShell agregue la siguiente línea:

# Create shotcuts to long folder paths
New-PSDrive -Name Log -PSProvider FileSystem -Root c:\temp\logfiles -Description "Log Folder" | Out-Null

Tenga en cuenta que agregamos | Out-Null al cmdlet. De forma predeterminada, el cmdlet generará los resultados de la asignación de unidades. Pero no queremos eso cada vez que abrimos una nueva sesión de PowerShell.

Asignación de claves de registro con New-PSDrive

Además de asignar unidades y carpetas de red, también podemos asignar claves de registro con el cmdlet New-PSDrive.

De forma predeterminada, ya encontrará una asignación a la clave HKEY_CURRENT_USER y la clave HKEY_LOCAL_MACHINE. Puede algunos de estos con el comando:

Get-PsDrive -PSProvider Registry

# Result
Name           Used (GB)     Free (GB) Provider      Root                   CurrentLocation
----           ---------     --------- --------      ----                   ---------------
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE

Si desea crear una asignación a las colmenas HKEY_USERS, puede hacer lo siguiente:

New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS

No estamos limitados a los registros de nivel superior, puede crear asignaciones a cualquier clave de registro que desee. Por ejemplo, la clave HKCU de Windows NT:

New-PSDrive -Name WinNT -PSProvider Registry -Root HKEY_CURRENT_USER\Software\Microsoft\Windows NT

Ahora puede agregar, editar o eliminar fácilmente claves de registro utilizando la asignación de creación:

# WinNT: is the mapping that we created earlier
New-Item –Path WinNT: –Name LazyAdmin

Terminando

Para ser honesto, hay pocas ventajas en usar New-PSDrive si solo desea asignar un recurso compartido de red que también está disponible en Explorer.

El comando Net-Use es más corto y más cómodo de usar.

Pero cuando solo necesita crear una asignación en una sesión de PowerShell, o cuando desea crear un acceso directo a las carpetas locales o al registro, el cmdlet puede ser muy útil.

Si tiene alguna pregunta, simplemente deje un comentario a continuación.

Otros artículos relacionados

ADGroupMember: obtenga todos los usuarios en ADGroup con PowerShell

ADGroupMember: obtenga todos los usuarios en ADGroup con PowerShell

Los grupos de Active Directory le permiten asignar fácilmente permisos o software a sus usuarios. Pero, ¿cómo se obtienen todos ...
Leer Más
Cómo usar Substring en PowerShell

Cómo usar Substring en PowerShell

Cuando desee extraer una parte de una cadena en PowerShell, podemos usar el método Substring(). Este método nos permite especificar ...
Leer Más
Cómo usar Import-CSV en PowerShell

Cómo usar Import-CSV en PowerShell

Cuando trabajamos con PowerShell, podemos usar archivos CSV para importar datos a los sistemas o usarlos como una lista de ...
Leer Más
Cómo agregar o configurar MailboxFolderPermission con PowerShell

Cómo agregar o configurar MailboxFolderPermission con PowerShell

En Exchange Online podemos compartir buzones completos con otros usuarios. Pero, ¿qué sucede si desea compartir solo una carpeta? ¿O ...
Leer Más
GUI de PowerShell - Cómo empezar

GUI de PowerShell – Cómo empezar

He creado muchos scripts de PowerShell durante los últimos años. Todo con un solo propósito para automatizar mi trabajo de ...
Leer Más
Obtenga el estado de MFA de los usuarios de Office 365 con Microsoft Graph

Obtenga el estado de MFA de los usuarios de Office 365 con Microsoft Graph

Hacer un seguimiento del estado de MFA de su usuario es importante para mantener protegido a su arrendatario. Por ahora, ...
Leer Más

Deja un comentario