New-PSDrive
Crea una unidad de Windows PowerShell en la sesión actual.
Sintaxis
New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Credential <PSCredential>] [-Description <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Descripción
El cmdlet New-PSDrive crea una unidad de Windows PowerShell que se "asigna" o asocia a una ubicación en un almacén de datos, como una unidad de red, un directorio en el equipo local o una clave del Registro.
Las unidades de Windows PowerShell que se crean se pueden utilizar para tener acceso a datos del almacén de datos asociado, al igual que se haría con cualquier unidad asignada. Pueden cambiarse las ubicaciones en la unidad (usando "Set-Location", "cd" o "chdir") y se puede tener acceso al contenido de la unidad (usando "Get-Item", "Get-ChildItem" o "dir").
Sin embargo, las unidades de Windows PowerShell solo se conocen en Windows PowerShell. No se puede tener acceso a ellas utilizando Explorador de Windows, Instrumental de administración de Windows (WMI), Modelo de objetos componentes (COM) o Microsoft .NET Framework, ni utilizando herramientas como Net Use.
Las unidades de Windows PowerShell solo existen en la sesión de Windows PowerShell actual. Para que la unidad sea persistente, se puede exportar la sesión a la que se ha agregado la unidad o guardar un comando New-PSDrive en el perfil de Windows PowerShell.
Para eliminar una unidad creada por New-PSDrive, use el cmdlet Remove-PSDrive.
Parámetros
-Credential <PSCredential>
Especifica una cuenta de usuario con permiso para realizar esta acción. El valor predeterminado es el usuario actual.
Escriba un nombre de usuario, como "Usuario01" o "Dominio01\Usuario01". O bien, escriba un objeto PSCredential, como uno generado por el cmdlet Get-Credential. Si escribe un nombre de usuario se le pedirá una contraseña.
Este parámetro no es compatible con los proveedores que se instalan con Windows PowerShell.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Description <string>
Especifica una descripción de texto breve de la unidad. Escriba cualquier cadena.
Para ver las descripciones de todas las unidades de Windows PowerShell en el sistema, escriba "Get-PSDrive | format name, description". Para ver la descripción de una unidad de Windows PowerShell determinada, escriba "(get-psdrive <nombreDeUnidad>).description".
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Name <string>
Especifica un nombre para la nueva unidad. Puede utilizar cualquier cadena válida para el nombre. No está limitado a las letras de unidad. Los nombres de las unidades de Windows PowerShell distinguen mayúsculas de minúsculas.
¿Requerido? |
true |
¿Posición? |
1 |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-PSProvider <string>
Especifica el proveedor de Windows PowerShell que admite unidades de este tipo.
Por ejemplo, si la unidad de Windows PowerShell está asociada a un recurso compartido de red o un directorio del sistema de archivos, el proveedor de Windows PowerShell es "FileSystem". Si la unidad de Windows PowerShell está asociada a una clave del Registro, el proveedor es "Registry".
Para ver una lista de los proveedores en la sesión de Windows PowerShell, escriba "Get-PSProvider".
¿Requerido? |
true |
¿Posición? |
2 |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Root <string>
Especifica la ubicación de almacén de datos a la que se asigna la unidad de Windows PowerShell.
Por ejemplo, especifique un recurso compartido de red (como \\Server01\Public), un directorio local (como C:\Archivos de programa) o una clave del Registro (como HKLM:\Software\Microsoft).
¿Requerido? |
true |
¿Posición? |
3 |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Scope <string>
Especifica un ámbito para la unidad. Los valores válidos son "Global", "Local", "Script" o el número correspondiente al ámbito actual (entre 0 y el número de ámbitos, donde 0 es el ámbito actual y 1 su ámbito principal). "Local" es el valor predeterminado. Para obtener más información, vea about_Scopes.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Confirm
Solicita confirmación antes de ejecutar el comando.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
false |
¿Aceptar caracteres comodín? |
false |
-WhatIf
Describe lo que ocurriría si ejecutara el comando sin ejecutarlo realmente.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
false |
¿Aceptar caracteres comodín? |
false |
-UseTransaction
Incluye el comando en la transacción activa. Este parámetro sólo es válido cuando hay una transacción en curso. Para obtener más información, vea about_Transactions.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
false |
¿Aceptar caracteres comodín? |
false |
<CommonParameters>
Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.
Entradas y salidas
El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.
Entradas |
Ninguno No se pueden canalizar entradas a este cmdlet. |
Salidas |
System.Management.Automation.PSDriveInfo |
Notas
El cmdlet New-PSDrive está diseñado para funcionar con los datos expuestos por cualquier proveedor. Para mostrar los proveedores que están disponibles en la sesión, escriba "Get-PSProvider". Para obtener más información, vea about_Providers.
Ejemplo 1
C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public
Name Provider Root
---- -------- ----
P FileSystem \\Server01\Public
Descripción
-----------
Este comando crea una unidad de Windows PowerShell que funciona como una unidad de red asignada en Windows. El comando crea una unidad de Windows PowerShell denominada P: que se asigna al recurso compartido de red \\Server01\Public.
Utiliza el parámetro Name para especificar un nombre para la unidad, el parámetro PSProvider para especificar el proveedor FileSystem de Windows PowerShell y el parámetro Root para especificar el recurso compartido de red.
Cuando el comando se completa, el contenido del recurso compartido \\Server01\Public aparece en la unidad P:. Para verlo, escriba: "dir p:".
Ejemplo 2
C:\PS>new-psdrive -name MyDocs -psprovider FileSystem -root "C:\Documents and Settings\User01\My Documents" -Description "Maps to my My Documents folder."
Name Provider Root
---- -------- ----
MyDocs FileSystem C:\Documents and Settings\User01\My Documents
Descripción
-----------
Este comando crea una unidad de Windows PowerShell que proporciona acceso rápido a un directorio local. Crea una unidad denominada MyDocs: que se asigna al
directorio "C:\Documents and Settings\User01\My Documents" en el equipo local.
Utiliza el parámetro Name para especificar un nombre para la unidad, el parámetro PSProvider para especificar el proveedor FileSystem de Windows PowerShell, el parámetro Root para especificar la ruta de acceso a la carpeta My Documents y el parámetro Description para crear una descripción de la unidad.
Cuando el comando se completa, el contenido de la carpeta My Documents aparece en la unidad MyDocs:. Para verlo, escriba: "dir mydocs:".
Ejemplo 3
C:\PS>new-psdrive -name MyCompany -psprovider Registry -root HKLM:\Software\MyCompany
Name Provider Root
---- -------- ----
MyCompany Registry HKEY_LOCAL_MACHINE\Software\MyCo...
Descripción
-----------
Este comando crea una unidad de Windows PowerShell que proporciona acceso rápido a una clave del Registro que se comprueba con frecuencia. Crea una unidad denominada MyCompany que se asigna a la clave del Registro HKLM\Software\MyCompany.
Utiliza el parámetro Name para especificar un nombre para la unidad, el parámetro PSProvider para especificar el proveedor Registry de Windows PowerShell y el parámetro Root para especificar la clave del Registro.
Cuando el comando se completa, el contenido de la clave MyCompany aparece en la unidad MyCompany:. Para verlo, escriba: "dir MyCompany:".
Ejemplo 4
C:\PS>new-psdrive -name PsDrive -psprovider FileSystem -root \\Server01\Public
C:\PS> $drive = new-object -com wscript.network
C:\PS> $drive.MapNetworkDrive("X:", "\\Server01\Public")
C PS:\> get-psdrive public, x
Name Provider Root
---- -------- ----
PsDrive FileSystem \\Server01\public
X FileSystem X:\
C:\PS>get-psdrive psdrive, x | get-member
TypeName: System.Management.Automation.PSDriveInfo
Name MemberType Definition
---- ---------- ----------
CompareTo Method System.Int32 CompareTo(PSDriveInfo drive),
Equals Method System.Boolean Equals(Object obj),
GetHashCode Method System.Int32 GetHashCode()
...
C:\PS> net use
Status Local Remote Network
---------------------------------------------------------------------------
X: \\server01\public Microsoft Windows Network
C:\PS> get-wmiobject win32_logicaldisk | ft deviceid
deviceid
--------
C:
D:
X:
C:\PS> get-wmiobject win32_networkconnection
LocalName RemoteName ConnectionState Status
--------- ---------- --------------- ------
X: \\products\public Disconnected Unavailable
Descripción
-----------
En este ejemplo se muestra la diferencia entre una unidad de Windows asignada a un recurso compartido de red y una unidad de Windows PowerShell asignada al mismo recurso compartido de red.
El primer comando utiliza el cmdlet New-PSDrive para crear una unidad de Windows PowerShell denominada PSDrive: que se asigna al recurso compartido de red \\Server01\Public.
El segundo conjunto de comandos usa el cmdlet New-Object para crear un objeto COM Wscript.Network y utilizar después su método MapNetworkDrive para asignar el recurso compartido de red \\Server01\Public a la unidad X: en el equipo local.
Ahora se pueden examinar las dos unidades. Cuando se usa un comando de unidad Get-PSDrive, las unidades parecen ser las mismas, aunque el nombre del recurso compartido de red aparece solamente en la raíz de la unidad PSDrive:.
El envío de los objetos de unidad a Get-Member muestra que tienen el mismo tipo de objeto, System.Management.Automation.PSDriveInfo.
Sin embargo, un comando "net use", un comando Get-WmiObject a la clase Win32_LogicalDisk y un comando Get-WmiObject a la clase Win32_NetworkConnection buscan solamente la unidad X: que se creó utilizando el objeto Wscript.Network. Eso se debe a que las unidades de Windows PowerShell solo se conocen en Windows PowerShell.
Si cierra la sesión de Windows PowerShell y, a continuación, abre una nueva, la unidad PSDrive: no estará y la unidad X: persistirá.
Por consiguiente, al decidir qué método va a utilizar para asignar unidades de red, tenga en cuenta cómo va a utilizar la unidad, si es necesario que sea persistente, y si la unidad tiene que estar visible para otras características de Windows.