Accéder au partage réseau sans mapper la lettre de lecteur (PowerShell)

23

Je souhaite accéder à un partage réseau SMB distant \\SHARE-HOST\sans mapper une lettre de lecteur. Je peux le faire manuellement dans Windows en tapant \\SHARE-HOST\Share_folder\dans l'explorateur. Si je veux le faire par programme, je dois utiliser la net usecommande. Cela m'oblige à spécifier une lettre.

ServerAdminGuy45
la source
La commande Set-Location \\SHARE-HOST\Share-folderne fonctionne- t-elle pas dans Powershell pour vous? Y a-t-il un message d'erreur?
jscott
1
"Je dois utiliser la commande net use. Cela m'oblige à spécifier une lettre." Vous n'avez pas besoin d'en spécifier un: net use * \\share\folderutilisera la prochaine lettre de lecteur gratuit (à partir de Z:)
kapex
1
En fait, vous n'avez pas du tout besoin de spécifier ou d'utiliser une lettre avec une utilisation nette. Voir la première réponse ici: serverfault.com/questions/580369/…
Joshua Hanley

Réponses:

26

PowerShell prend entièrement en charge les chemins UNC; vous pouvez les utiliser partout où un répertoire ou un nom de fichier serait attendu:

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

Cependant, vous devez disposer des droits d'accès appropriés pour vous connecter réellement au partage distant; cela signifie que votre compte d'utilisateur doit déjà disposer des autorisations requises ou que vous devez établir manuellement une connexion réseau au serveur distant avant d'accéder aux dossiers et fichiers qu'il contient.

Voir également ici: /programming/303045/connecting-to-a-network-folder-with-username-password-in-powershell .

Massimo
la source
Curieusement, j'ai remarqué un comportement où il n'est pas possible, par exemple, de lister le contenu avec Get-ChildItemsauf si vous changez votre emplacement actuel avec Set-Locationen machine distante (ie servername). Cela a peut-être quelque chose à voir avec les machines UAC et / ou win10 +, mais pas sûr.
Petr Abdulin,
2

Vous devez «parcourir» le partage, sauf si vous devez vous authentifier avec d'autres informations d'identification au préalable, vous pouvez alors utiliser ce qui suit:

get-childitem \\server\share
Ben Lavender
la source
2

Je peux accéder à un dossier partagé sur mon ordinateur portable en tapant simplement

cd \\MYLAPTOP\C$\Games

Utilisez des guillemets si un nom de dossier contient des espaces:

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

Cela me donne accès au système de fichiers de l'ordinateur distant.

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

cd est un alias de Set-Location(s. http://technet.microsoft.com/en-us/library/ee176962.aspx ) qui prend en charge ces chemins.

Cependant, j'ai d'abord dû me connecter à cet ordinateur dans l'explorateur en essayant d'ouvrir le chemin. Ensuite, cela a également fonctionné sur PS. Vous devez probablement d'abord ajouter des informations d'identification de connexion dans PowerShell.

Rayon
la source
1

je veux juste ajouter à la réponse de massimo que j'ai également remarqué que si j'étais dans d'autres PSDrives, je ne pourrais pas utiliser les emplacements réseau mais les emplacements réguliers fonctionnent bien.

Par exemple, si je suis Cert:\LocalMachine\>ou PS HKLM:\>ne peux pascd \\server\share

si je Set-Location C:puis Set-Location \\servername\shareça marche bien.

J'ai également constaté que je n'avais pas besoin de basculer vers l'emplacement réseau pour de nombreuses commandes. Par exemple, je pourrais Get-Content '\\127.0.0.1\C$\eula.1028.txt'de C: \ fine.

PsychoData
la source