В Windows 8 почему подключенный диск недоступен в командной строке с повышенными привилегиями, а в обычной командной строке? Я могу запустить сетевое использование и сделать его доступным, но я все еще нахожу это странным.
3 ответа
При использовании UAC с правами администратора, при входе в систему Windows создает два токена. Один токен (повышенный) не отфильтрован, и на нем включена группа администраторов. На другом токене отфильтрована группа «Администраторы» (и некоторые другие детали, например группа «Опытные пользователи»).
Поскольку эти два токена имеют разные контексты безопасности, сетевые соединения в одном недоступны в другом, даже если это действительно один и тот же пользователь.
Поэтому, если вы подключите диск с помощью проводника, командная строка с повышенными правами (или любой другой процесс с повышенными правами) не сможет его увидеть.
Вы можете сопоставить тот же сетевой ресурс (используя даже ту же букву диска) в командной строке с повышенными правами, используя команду NET USE. После этого любой повышенный процесс также сможет это увидеть.
Ответ Уильяма объясняет, почему это происходит, и дает один обходной путь. Но я хочу добавить, что на самом деле есть исправление реестра от Vista, которое работает в Windows 7 для настройки этого поведения. Просто добавьте это в свой реестр:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLinkedConnections"=dword:00000001
После перезагрузки подключенные диски должны быть доступны через командную строку с повышенными правами.
Потому что вы поднимаете командную строку как другой пользователь, и соответствующий сопоставленный диск был сопоставлен неадминистративным пользователем. Разные пользователи имеют разные пользовательские настройки, такие как принтеры, подключенные сетевые диски и так далее.