Я хочу получить доступ к удаленному сетевому ресурсу SMB \\SHARE-HOST\
не отображая букву диска. Я могу вручную сделать это в окнах путем ввода \\SHARE-HOST\Share_folder\
в проводнике. Если я хочу сделать это программно, я должен использовать net use
команда. Это требует, чтобы я указал букву.
Я могу получить доступ к общей папке на моем ноутбуке, просто набрав
cd \\MYLAPTOP\C$\Games
Используйте кавычки, если в имени папки есть пробелы:
cd "\\MYLAPTOP\C$\Games\Game Name"
Это дает мне доступ к файловой системе удалённого компьютера.
PS Microsoft.PowerShell.Core\FileSystem::\\MYLAPTOP\C$\Games>
cd - это псевдоним к Set-Location
(s. http://technet.microsoft.com/en-us/library/ee176962.aspx), который поддерживает такие пути.
Однако, мне нужно было сначала войти в систему на этом компьютере в проводнике, попытавшись открыть путь туда. Потом это сработало и в PS. Скорее всего, сначала нужно добавить учетные данные для входа в PowerShell
.Вам необходимо «просмотреть» общий ресурс, если вам не нужно заранее аутентифицироваться с альтернативными учетными данными, вы можете использовать следующее:
get-childitem \\server\share
PowerShell полностью поддерживает пути UNC; вы можете использовать их везде, где ожидается имя каталога или файла:
Set-Location \\ servername \ sharename
Get-ChildItem \\ servername \ sharename
Copy-Item \\ servername1 \ sharename1 \ filename. ext \\ servername2 \ sharename2
Remove-Item \\ servername \ sharename \ foldername \ filename.ext
Однако вам нужны соответствующие права доступа для фактического подключения к удаленному общему ресурсу; это означает, что либо ваша учетная запись пользователя уже должна иметь необходимые разрешения, либо вы должны вручную установить сетевое соединение с удаленным сервером перед доступом к папкам и файлам на нем.
См. также здесь: https://stackoverflow.com /questions/303045/connecting-to-a-network-folder-with-username-password-in-powershell].
просто хочу добавить к ответу массимо , что я также заметил, что если бы я был в других PSD-дисках, я не мог бы использовать сетевые местоположения, а обычные локации работают нормально.
Например, если я нахожусь в Cert: \ LocalMachine \>
или PS HKLM: \>
, я не могу cd \\ server \ share
, если я Set-Location C:
, а затем Set-Location \\ servername \ share
, все работает нормально.
Я также обнаружил, что мне не нужно переключаться на сетевое расположение для многих команд. Например, я мог Get-Content '\\ 127.0.0.1 \ C $ \ eula.1028.txt'
из C: \ fine.
Добавление к тому, что другие говорили о путях UNC в PowerShell, если для сетевой папки требуются другие учетные данные, чем вы вошли в систему Windows с (например, если он находится в домене, в котором вы не находитесь), по моему опыту:
домен\имя пользователя
.