Доступ уже подключенный сетевой диск в PowerShell

Я выполняю установку Windows Server 2012 в VMware Workstation. Мне включили совместно используемые папки, так диск Z: отображается на \\vmware-host. Я могу правильно получить доступ к этому диску в Проводнике (я могу получить доступ Z: в "нормальном" 'cmd), и я могу правильно открыть файлы.

Я открыл PowerShell и попытался к cd Z: и я получил следующую ошибку:

CD: не Может найти путь 'Z:\', потому что он не существует.

Почему PowerShell не может найти уже подключенный сетевой диск?

Я Погуглил немного и нашел New-PSDrive команда. Я выполнил следующее:

New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\'

но я все еще получаю ту же ошибку как выше. Что я должен сделать для доступа к совместно используемым папкам VMware в PowerShell.

8
задан 5 March 2015 в 22:31
3 ответа

Вам необходимо сделать отображение дисков доступным для пользователя, от имени которого вы используете Powershell . Вы можете сделать следующее, чтобы предоставить этому пользователю такое же сопоставление дисков:

net use Z: "\\vmware-host\Shared Folders"

См. Следующий вопрос SO: Невозможно получить доступ к сетевому диску в PowerShell, запущенном от имени администратора

8
ответ дан 2 December 2019 в 22:53

Вы запускать эту консоль PowerShell как администратор или как текущий пользователь?

Если вы запускаете ее из командной строки без повышенных прав, она должна видеть все ваши локально подключенные сетевые диски. Я сейчас в той же ситуации, что и вы, и у меня x: сопоставлено с \\ vmware-host \ [папка] , и Get-PSDrive -PSProvider FileSystem показывает мне все мои локально подключенные диски.

Однако , если я запускаю эту консоль как администратор, он не видит ни одного из моих локальных подключенных дисков, поскольку для командной строки с повышенными привилегиями другой (второй) контекст безопасности используется для загрузки приложения, которое не разделяет сетевые подключения.

Хорошая новость заключается в том, что вам просто нужно сопоставить диск в консоли администратора только один раз, и он останется в этом контексте безопасности (до перезагрузки , Я думаю).

Если вы хотите автоматизировать это, вы должны прочитать об автозагрузке скриптов при запуске сеанса PowerShell. Обычно, если вы создаете папку в своем Мои документы под названием WindowsPowerShell и внутри нее создаете файл Microsoft.PowerShell_profile.ps1 , он будет запускаться каждый раз при запуске новая консоль powershell. Там вы можете добавить команду net use или добавить написанные вами пользовательские функции, которые вы хотите использовать.

Например,У меня есть один, который превращает мой курсор в красный цвет для административных консолей, и имеет функцию, которую я могу легко вызвать для подписи моих сценариев PS1.

5
ответ дан 2 December 2019 в 22:53

Чтобы эта команда New-PSDrive работала, вам нужно использовать путь UNC для -Root вместо «Z:», так как PowerShell с повышенными правами не пока не знаю о Z:

New-PSDrive -Name 'Z' -PSProvider FileSystem -Root '\\server\sharedFolder'

Насколько я понимаю, ответ jscott (net use... ) работает в большем количестве случаев.

0
ответ дан 5 February 2021 в 16:37

Теги

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