Auf Netzwerkfreigabe zugreifen, ohne Laufwerksbuchstaben zuzuordnen (PowerShell)

23

Ich möchte auf eine Remote-SMB-Netzwerkfreigabe zugreifen, \\SHARE-HOST\ohne einen Laufwerksbuchstaben zuzuordnen. Ich kann es manuell in Windows tun, indem ich \\SHARE-HOST\Share_folder\im Explorer tippe. Wenn ich es programmatisch machen möchte, muss ich den net useBefehl verwenden. Dazu muss ich einen Buchstaben angeben.

ServerAdminGuy45
quelle
Funktioniert der Befehl Set-Location \\SHARE-HOST\Share-folderin Powershell nicht für Sie? Gibt es eine Fehlermeldung?
Jscott
1
"Ich muss den Befehl net use verwenden. Dazu muss ich einen Buchstaben angeben." Sie müssen keinen angeben: net use * \\share\folderVerwendet den nächsten freien Laufwerksbuchstaben (ab Z:)
kapex
1
Tatsächlich müssen Sie bei der Nettonutzung keinen Buchstaben angeben oder verwenden. Die erste Antwort finden Sie hier: serverfault.com/questions/580369/…
Joshua Hanley

Antworten:

26

PowerShell unterstützt UNC-Pfade vollständig. Sie können sie überall dort verwenden, wo ein Verzeichnis- oder Dateiname erwartet wird:

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

Sie benötigen jedoch die richtigen Zugriffsrechte, um eine Verbindung zur Remote-Freigabe herzustellen. Dies bedeutet, dass entweder Ihr Benutzerkonto bereits über die erforderlichen Berechtigungen verfügt oder Sie manuell eine Netzwerkverbindung zum Remoteserver herstellen müssen, bevor Sie auf Ordner und Dateien zugreifen können.

Siehe auch hier: /programming/303045/connecting-to-a-network-folder-with-username-password-in-powershell .

Massimo
quelle
Seltsamerweise habe ich ein Verhalten festgestellt, bei dem es beispielsweise nicht möglich ist, Inhalte mit aufzulisten, es sei Get-ChildItemdenn, Sie ändern Ihren aktuellen Standort mit Set-Locationauf einen Remote-Computer (dh servername). Möglicherweise hat dies etwas mit der Benutzerkontensteuerung und / oder Win10 + -Maschinen zu tun, aber nicht sicher.
Petr Abdulin
2

Sie müssen die Freigabe "durchsuchen", es sei denn, Sie müssen sich zuvor mit alternativen Anmeldeinformationen authentifizieren, dann können Sie Folgendes verwenden:

get-childitem \\server\share
Ben Lavender
quelle
2

Ich kann auf einen freigegebenen Ordner auf meinem Laptop zugreifen, indem ich einfach tippe

cd \\MYLAPTOP\C$\Games

Verwenden Sie Anführungszeichen, wenn ein Ordnername Leerzeichen enthält:

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

Dadurch kann ich auf das Dateisystem des Remotecomputers zugreifen.

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

cd ist ein Alias ​​für Set-Location(s. http://technet.microsoft.com/en-us/library/ee176962.aspx ), der solche Pfade unterstützt.

Ich musste mich jedoch zuerst im Explorer an diesem Computer anmelden, indem ich versuchte, den Pfad dorthin zu öffnen. Dann hat es auch in PS geklappt. Möglicherweise müssen Sie zuerst Anmeldeinformationen in PowerShell hinzufügen.

Strahl
quelle
1

Ich möchte nur zu Massimos Antwort hinzufügen, dass mir auch aufgefallen ist, dass ich in anderen PSD-Laufwerken keine Netzwerkstandorte verwenden könnte, aber reguläre Standorte funktionieren.

Zum Beispiel, wenn ich drin bin Cert:\LocalMachine\>oder PS HKLM:\>nicht kanncd \\server\share

wenn ich Set-Location C:und dann Set-Location \\servername\shareklappt es einwandfrei.

Außerdem musste ich bei vielen Befehlen nicht zum Netzwerkspeicherort wechseln. Zum Beispiel könnte ich Get-Content '\\127.0.0.1\C$\eula.1028.txt'von C: \ fine.

PsychoData
quelle