Создайте виртуальный диск с помощью PowerShell.

Я пытаюсь создать диск D: в Windows, который указывает на какой-то локальный каталог (например, C:\DDrive) с помощью PowerShell.

Этот код работает нормально:

New-PSDrive -Name D -Root "C:\D_Drive\" -PSProvider "FileSystem"

Но в проводнике Windows диск D: не виден.

Как правильно использовать эту команду? Также: диск должен быть постоянным, поэтому я попытался добавить параметр «-Persist». Но это приводит к ошибке ("неизвестный параметр "-Persist"...").


person Boris    schedule 23.05.2019    source источник
comment
По-видимому, поддерживаются только сопоставленные диски UNC, что, вероятно, к лучшему, поскольку они могут сохраняться в HKCU\Network с параметром -persist и могут отражаться в обоих сеансах входа в связанный вход UAC (стандартный и с повышенными правами). Для диска C: вы можете использовать административный общий ресурс C$, например. \\локальный\C$\D_Drive.   -  person Eryk Sun    schedule 23.05.2019
comment
Кстати, кто бы ни разработал PSDrive в команде PowerShell, он немного невежественен. Двоеточие всегда было частью имени диска/устройства, так же как и необязательно для других устройств DOS, таких как CON, также известное как CON:. Имя точки монтирования устройства NT (т. е. объекта SymbolicLink) включает двоеточие, и оно нам нужно при непосредственном открытии тома, например \\.\C:.   -  person Eryk Sun    schedule 23.05.2019


Ответы (2)


Команда New-PSDrive создает только сопоставление, видимое в PowerShell. В проводнике вообще не отображается.

Вот два других вопроса, которые задают то же самое:

https://community.spiceworks.com/topic/649234-powershell-mapped-drive-not-showing-in-my-computer

https://social.technet.microsoft.com/Forums/windowsserver/en-US/96222ba2-90f9-431d-b05a-82b804cdc76e/newpsdrive-does-not-appear-in-explorer?forum=winserverpowershell

person I.T Delinquent    schedule 23.05.2019

Просто беги:

subst D: "C:\D_Drive\"

в сеансе PS без повышенных прав (не запускайте от имени администратора).

person nemze    schedule 23.05.2019
comment
Диски subst.exe (то есть устройства с буквами дисков, созданные с помощью DefineDosDevice, которые нацелены на каталог файловой системы) не лишены проблем. Во-первых, как вы упомянули, они не отражаются в связанном сеансе входа в систему. Они также приводят к сбою некоторых API (например, GetVolumePathName), которые предполагают, что буква диска является либо соединением с томом, либо подключенным сетевым диском, но не соединением с каталогом файловой системы. - person Eryk Sun; 23.05.2019
comment
Это действительно хорошая информация, спасибо. Теперь мне нужно проверить некоторые вещи с ним, чтобы увидеть для себя. Это снова мы... :) - person nemze; 23.05.2019