Acceda a la unidad de red ya asignada en PowerShell


8

Estoy ejecutando una instalación de Windows Server 2012 dentro de VMWare Workstation. Tengo carpetas compartidas habilitadas, por lo que la unidad Z:está asignada \\vmware-host. Puedo acceder correctamente a esta unidad en Explorer (puedo acceder Z:dentro del cmd "normal") y puedo abrir archivos correctamente.

Abrí PowerShell e intenté hacerlo cd Z:y recibí el siguiente error:

cd: No se puede encontrar la ruta 'Z: \' porque no existe.

¿Por qué PowerShell no puede encontrar la unidad de red ya asignada?

Busqué en Google un poco y encontré el New-PSDrivecomando. Ejecuté lo siguiente:

New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\'

pero sigo teniendo el mismo error que el anterior. ¿Qué debo hacer para acceder a las carpetas compartidas VMWare dentro de PowerShell?


¿Qué Get-PSDrive -PSProvider FileSysteminforma cuando abre una nueva consola Powershell?
jscott

@jscott: En una nueva consola, veo A, Cy D. En la consola que ya tengo abierta, también veo Z. ¿Por qué no se muestra la nueva consola Z?
Rocket Hazmat

3
¿Estás ejecutando Powershell elevado? Si es así, intente ejecutarlo sin "Ejecutar como administrador". Tendría que volver a asignar la unidad si se ejecuta elevado. stackoverflow.com/questions/4742992/…
jscott

@jscott: se está ejecutando como administrador. Yo también corrí Set-ExecutionPolicy -ExecutionPolicy Unrestricted. Estoy usando PowerShell para intentar ejecutar un script para llamar New-ADUser.
Rocket Hazmat

@jscott: Acabo de ejecutar PowerShell como mi usuario (no Administrador), y pude acceder Z:sin problemas.
Rocket Hazmat

Respuestas:


8

Debe hacer que la asignación de unidades esté disponible para el usuario con el que se está ejecutando Powershell. Puede hacer lo siguiente para proporcionar a ese usuario la misma asignación de unidad:

net use Z: "\\vmware-host\Shared Folders"

Consulte la siguiente pregunta de SO: No se puede acceder a la unidad de red en PowerShell ejecutándose como administrador


También puedo mencionar que Powershell admite el uso de PUSHD y POPD (o más formalmente: push-location y pop-location) que pueden ser más adecuados para mapear temporalmente una unidad para una operación específica.
Get-HomeByFiveOClock

5

¿Estás iniciando esta consola de PowerShell como administrador o como tu usuario actual?

Si lo está ejecutando desde un símbolo del sistema no elevado, debería ver todas las unidades de red asignadas localmente. Estoy en la misma situación que usted ahora y me he x:asignado \\vmware-host\[folder], y Get-PSDrive -PSProvider FileSystemme muestra todas mis unidades localmente asignadas.

Sin embargo , si inicio esta consola como Administrador, no verá ninguna de mis unidades mapeadas locales, ya que para un símbolo del sistema elevado se utiliza un (segundo) contexto de seguridad diferente para cargar la aplicación, que no comparte conexiones de red.

La buena noticia es que básicamente solo necesita asignar el disco en la consola del administrador solo una vez y permanecerá en ese contexto de seguridad (hasta que se reinicie, creo).

Si desea automatizar esto, debe leer los scripts de carga automática cuando comience una sesión de PowerShell. Básicamente, si crea una carpeta en su My Documentsllamada WindowsPowerShelly dentro que crea un Microsoft.PowerShell_profile.ps1archivo, se activará cada vez que inicie una nueva consola de PowerShell. Allí puede agregar un net usecomando o agregar funciones personalizadas que haya escrito y que desee usar.

Por ejemplo, tengo uno que convierte mi cursor en rojo para las consolas administrativas, y tiene una función a la que puedo llamar fácilmente para firmar mis scripts de PS1.


Sí, eso es lo que estaba pasando aquí. La unidad se asignó como mi usuario y PowerShell se estaba ejecutando como Administrador. Estoy acostumbrado a los shells de Linux, no a PowerShell.
Rocket Hazmat

Esa es una muy buena sugerencia sobre el indicador de la consola de administración. ¿Qué utiliza en su profile.ps1 para detectar si la sesión es elevada o no?
stib
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.