Доля сети доступа, не отображая букву диска (PowerShell)

Я хочу получить доступ к удаленному сетевому ресурсу SMB \\SHARE-HOST\ не отображая букву диска. Я могу вручную сделать это в окнах путем ввода \\SHARE-HOST\Share_folder\ в проводнике. Если я хочу сделать это программно, я должен использовать net use команда. Это требует, чтобы я указал букву.

23
задан 3 November 2015 в 13:58
5 ответов

Я могу получить доступ к общей папке на моем ноутбуке, просто набрав

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

.
2
ответ дан 28 November 2019 в 20:20

Вам необходимо «просмотреть» общий ресурс, если вам не нужно заранее аутентифицироваться с альтернативными учетными данными, вы можете использовать следующее:

get-childitem \\server\share
2
ответ дан 28 November 2019 в 20:20

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].

26
ответ дан 28 November 2019 в 20:20

просто хочу добавить к ответу массимо , что я также заметил, что если бы я был в других 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.

1
ответ дан 28 November 2019 в 20:20

Добавление к тому, что другие говорили о путях UNC в PowerShell, если для сетевой папки требуются другие учетные данные, чем вы вошли в систему Windows с (например, если он находится в домене, в котором вы не находитесь), по моему опыту:

  • Вы должны сначала просмотреть путь один раз в проводнике, чтобы получить диалоговое окно учетных данных. Там есть галочка "запомнить меня". Используйте диспетчер учетных данных Windows для изменения/удаления запомненных учетных данных.
  • Если общий сетевой ресурс находится в домене, в который вы не вошли, имя пользователя должно иметь вид домен\имя пользователя.
  • Если вам нужен доступ через PowerShell с правами администратора (он же с повышенными правами), вам придется сделать это через экземпляр File Explorer с повышенными правами.
0
ответ дан 1 May 2020 в 16:29

Теги

Похожие вопросы