Acceda a la red compartida sin asignar la letra de unidad (PowerShell)

23

Quiero acceder a un recurso compartido de red SMB remoto \\SHARE-HOST\sin asignar una letra de unidad. Puedo hacerlo manualmente en Windows escribiendo \\SHARE-HOST\Share_folder\explorador. Si quiero hacerlo programáticamente tengo que usar el net usecomando. Esto requiere que especifique una carta.

ServerAdminGuy45
fuente
¿El comando Set-Location \\SHARE-HOST\Share-folderno funciona dentro de Powershell para usted? ¿Hay un mensaje de error?
jscott
1
"Tengo que usar el comando net use. Esto requiere que especifique una letra". No tiene que especificar uno: net use * \\share\folderutilizará la siguiente letra de unidad libre (a partir de Z:)
kapex
1
En realidad, no tiene que especificar o usar una letra con el uso neto. Vea la primera respuesta aquí: serverfault.com/questions/580369/…
Joshua Hanley

Respuestas:

26

PowerShell es totalmente compatible con rutas UNC; puede usarlos en cualquier lugar donde se espera un directorio o nombre de archivo

  • Set-Location \\servername\sharename
  • Get-ChildItem \\servername\sharename
  • Copy-Item \\servername1\sharename1\filename.ext \\servername2\sharename2
  • Remove-Item \\servername\sharename\foldername\filename.ext

Sin embargo, necesita derechos de acceso adecuados para conectarse realmente al recurso compartido remoto; esto significa que su cuenta de usuario ya debe tener los permisos requeridos, o debe establecer manualmente una conexión de red al servidor remoto antes de acceder a las carpetas y archivos en él.

Consulte también aquí: /programming/303045/connecting-to-a-network-folder-with-username-password-in-powershell .

Massimo
fuente
Por extraño que parezca, he notado un comportamiento en el que no es posible, por ejemplo, enumerar el contenido a Get-ChildItemmenos que cambie su ubicación actual Set-Locationa una máquina remota (es decir servername). Posiblemente esto tenga algo que ver con máquinas UAC y / o win10 +, pero no estoy seguro.
Petr Abdulin
2

Debe "examinar" el recurso compartido, a menos que tenga que autenticarse con credenciales alternativas de antemano, entonces puede usar lo siguiente:

get-childitem \\server\share
Ben lavanda
fuente
2

Puedo acceder a una carpeta compartida en mi computadora portátil simplemente escribiendo

cd \\MYLAPTOP\C$\Games

Use comillas si el nombre de una carpeta tiene espacios:

cd "\\MYLAPTOP\C$\Games\Game Name"

Esto me da acceso al sistema de archivos de la computadora remota.

PS Microsoft.PowerShell.Core\FileSystem::\\MYLAPTOP\C$\Games>

cd es un alias de Set-Location(s. http://technet.microsoft.com/en-us/library/ee176962.aspx ) que admite tales rutas.

Sin embargo, primero tuve que iniciar sesión en esa computadora en el explorador intentando abrir la ruta allí. Luego funcionó en PS también. Probablemente primero necesite agregar credenciales de inicio de sesión en PowerShell.

Rayo
fuente
1

solo quiero agregar a la respuesta de massimo que también noté que si estuviera en otros PSDrives no podría usar ubicaciones de red, pero las ubicaciones normales funcionan bien.

Por ejemplo, si estoy dentro Cert:\LocalMachine\>o PS HKLM:\>no puedocd \\server\share

si yo Set-Location C:y luego Set-Location \\servername\sharefunciona bien.

También descubrí que no necesitaba cambiar a la ubicación de red para muchos comandos. Por ejemplo, podría Get-Content '\\127.0.0.1\C$\eula.1028.txt'desde C: \ fine.

PsychoData
fuente