Chcę uzyskać dostęp do zdalnego udziału sieciowego SMB \\SHARE-HOST\
bez mapowania litery dysku. Mogę to zrobić ręcznie w systemie Windows, wpisując \\SHARE-HOST\Share_folder\
w Eksploratorze. Jeśli chcę to zrobić programowo, muszę użyć net use
polecenia. To wymaga ode mnie podania litery.
windows
powershell
network-share
drive
ServerAdminGuy45
źródło
źródło
Set-Location \\SHARE-HOST\Share-folder
nie działa w programie PowerShell dla Ciebie? Czy jest komunikat o błędzie?net use * \\share\folder
użyje następnej litery wolnego dysku (zaczynając odZ:
)Odpowiedzi:
PowerShell w pełni obsługuje ścieżki UNC; możesz ich używać wszędzie, gdzie oczekiwana jest nazwa katalogu lub pliku:
Set-Location \\servername\sharename
Get-ChildItem \\servername\sharename
Copy-Item \\servername1\sharename1\filename.ext \\servername2\sharename2
Remove-Item \\servername\sharename\foldername\filename.ext
Jednak potrzebne są odpowiednie prawa dostępu, aby faktycznie połączyć się ze zdalnym udziałem; oznacza to, że albo twoje konto użytkownika musi mieć wymagane uprawnienia, albo musisz ręcznie ustanowić połączenie sieciowe ze zdalnym serwerem przed uzyskaniem dostępu do folderów i plików na nim.
Zobacz także tutaj: /programming/303045/connecting-to-a-network-folder-with-username-password-in-powershell .
źródło
Get-ChildItem
chyba że zmienisz swoją bieżącą lokalizacjęSet-Location
na zdalną maszynę (tjservername
.). Być może ma to coś wspólnego z UAC i / lub maszynami z Win10 +, ale nie jestem pewien.Musisz „przeglądać” udział, chyba że musisz wcześniej uwierzytelnić się przy użyciu alternatywnych poświadczeń, możesz skorzystać z poniższych:
źródło
Jestem w stanie uzyskać dostęp do folderu współdzielonego na moim laptopie, po prostu pisząc
Użyj cudzysłowów, jeśli nazwa folderu ma spacje:
To daje mi dostęp do systemu plików komputera zdalnego.
cd to pseudonim
Set-Location
(s. http://technet.microsoft.com/en-us/library/ee176962.aspx ), który obsługuje takie ścieżki.Jednak najpierw musiałem zalogować się na tym komputerze w Eksploratorze, próbując otworzyć tam ścieżkę. Potem działało również w PS. Najpierw prawdopodobnie musisz dodać poświadczenia logowania w PowerShell.
źródło
chcę tylko dodać do odpowiedzi massimo, że zauważyłem również, że gdybym był w innych PSDrivach, nie mógłbym używać lokalizacji sieciowych, ale zwykłe lokalizacje działają dobrze.
Na przykład, jeśli jestem w środku
Cert:\LocalMachine\>
lubPS HKLM:\>
nie mogęcd \\server\share
jeśli ja
Set-Location C:
i wtedySet-Location \\servername\share
to działa dobrze.Odkryłem również, że nie musiałem przełączać się do lokalizacji sieciowej dla wielu poleceń. Na przykład mógłbym
Get-Content '\\127.0.0.1\C$\eula.1028.txt'
z C: \ fine.źródło