Доступ до спільної мережі без відображення літери накопичувача (PowerShell)


23

Я хочу отримати доступ до віддаленої спільної мережі SMB \\SHARE-HOST\без відображення літери диска. Я можу це зробити вручну в Windows, ввівши \\SHARE-HOST\Share_folder\Explorer. Якщо я хочу це робити програмно, я повинен використовувати net useкоманду. Це вимагає від мене уточнення листа.


Чи Set-Location \\SHARE-HOST\Share-folderне працює команда в Powershell для вас? Чи є повідомлення про помилку?
jscott

1
"Я повинен використовувати команду net use. Це вимагає, щоб я вказав лист." Не потрібно вказувати один: net use * \\share\folderбуде використовувати наступний лист безкоштовного диска (починаючи з Z:)
kapex

1
Насправді вам взагалі не потрібно вказувати або використовувати лист із чистим використанням. Дивіться першу відповідь тут: serverfault.com/questions/580369/…
Джошуа Ханлі

Відповіді:


26

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

Однак вам потрібні належні права доступу, щоб фактично підключитися до віддаленої спільної мережі; це означає, що або ваш обліковий запис користувача вже повинен мати необхідні дозволи, або ви повинні вручну встановити мережеве з'єднання з віддаленим сервером, перш ніж отримати доступ до папок і файлів на ньому.

Дивіться також тут: /programming/303045/connecting-to-a-network-folder-with-username-password-in-powershell .


Як не дивно, я зазначив поведінку, коли неможливо, наприклад, перераховувати вміст, Get-ChildItemякщо ви не зміните своє поточне місцезнаходження Set-Locationна віддалену машину (тобто servername). Можливо, це має щось спільне з машинами UAC та або win10 +, але не впевнено.
Петро Абдулін

2

Потрібно "переглянути" поділку, якщо вам не доведеться заздалегідь пройти автентифікацію за допомогою альтернативних облікових даних, тоді ви можете скористатися наведеним нижче способом:

get-childitem \\server\share

2

Я можу отримати доступ до спільної папки на своєму ноутбуці, просто набравши текст

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.


1

просто хочу додати відповідь Massimo, що я також зауважив, що якщо я був у інших PSDrives, я не міг би використовувати мережеві локації, але звичайні локації працюють нормально.

Наприклад, якщо я перебуваю 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: \ штрафу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.