Когда вы пытаетесь получить доступ к подключенному сетевому диску из командной строки с повышенными привилегиями, командной строки администратора или планировщика заданий (с наивысшими правами), подключенный диск будет недоступен. Попытка использовать подключенные сетевые диски вызывает ошибку Система не может найти указанный путь (код ошибки: 0x80070003) .
Вот скриншоты с компьютера под управлением Windows 10 версии 1903.
Однако подключенный сетевой диск доступен из проводника и обычной (без повышенных прав) командной строки.
На различных форумах предлагается использовать UNC-пути (как обходной путь) вместо букв подключенных дисков в режиме командной строки с повышенными правами или при запуске пакетных файлов с помощью планировщика задач. Также они советуют пользователям отключать Беги с высшими привилегиями для этого конкретного запланированного задания, чтобы иметь возможность использовать подключенный сетевой диск.
Однако в этих обходных приемах нет необходимости, поскольку существует постоянное решение на основе реестра, которое позволяет использовать подключенные диски как из стандартных, так и из процессов с повышенными правами.
( Перейти к решению напрямую )
Статья базы знаний Microsoft KB937624 После включения UAC программы могут не получить доступ к некоторым сетевым ресурсам. решает эту проблему. Но реальное исправление дано в KB3035277 (также упоминается ниже).
KB937624 утверждает:
Когда администратор входит в Windows Vista, Local Security Authority (LSA) создает два маркера доступа. Если LSA уведомляется о том, что пользователь является членом группы администраторов, LSA создает второй вход в систему с удаленными (отфильтрованными) правами администратора. Этот отфильтрованный токен доступа используется для запуска рабочего стола пользователя. Приложения могут использовать маркер полного доступа администратора, если пользователь-администратор нажимает Разрешить в диалоговом окне Контроль учетных записей пользователей.
Если пользователь вошел в систему Windows Vista и если включен контроль учетных записей пользователей, программа, использующая токен отфильтрованного доступа пользователя, и программа, использующая токен полного доступа администратора, могут работать одновременно. Поскольку LSA создает маркеры доступа во время двух отдельных сеансов входа в систему, маркеры доступа содержат отдельные идентификаторы входа.
Поскольку сопоставления дисков, созданные из проводника, создаются из токена стандартного пользователя, диски не видны из токена с повышенными правами (например, из командной строки администратора или запланированных задач, настроенных для запуска с наивысшими привилегиями).
Другая статья Microsoft KB3035277 под названием Подключенные диски недоступны в запросе с повышенными правами, когда UAC настроен на «Запрашивать учетные данные» предлагает объяснение вместе с решением, которое работает в Windows Vista через Windows 10 (протестировано на v1903)
KB3035277 заявляет:
Когда UAC включен, система создает два сеанса входа в систему при входе пользователя в систему. Оба сеанса входа в систему связаны друг с другом. Один сеанс представляет пользователя во время сеанса с повышенными правами, а другой сеанс, в котором вы работаете с минимальными правами пользователя.
При создании сопоставлений дисков система создает объекты символических ссылок («DosDevices»), которые связывают буквы дисков с путями UNC. Эти объекты относятся к сеансу входа в систему и не используются совместно сеансами входа.
Примечание. Запись реестра EnableLinkedConnections заставляет записывать символические ссылки в оба связанных сеанса входа в систему, которые создаются, когда включен UAC.
И вот полезная заметка от Джеймса Финнигана [MSFT].
Политика «EnableLinkedConnections» полагается на то, что пользователь является членом группы «Администраторы» и имеет общий доступ через границу между не повышенными и не повышенными (что может привести к намеренно неверному назначению дисков вредоносным ПО). По сути, это обходной путь для клиентов, которые находятся в процессе перевода своих пользователей на стандартного пользователя, но должны делать это постепенно и в краткосрочной перспективе оставить их членами группы администраторов.
Исправлено: подключенные диски не видны из командной строки администратора и планировщика задач.
Как указано в KB3035277, вы можете решить проблему, создав EnableLinkedConnections
Значение DWORD (32-разрядное) в следующем разделе реестра и установка его данных на 1
.
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Policies System
- Чтобы создать / установить значение реестра, запустите редактор реестра (
regedit.exe
) - Перейдите в ветку выше.
- В меню «Правка» выберите «Создать», «Значение DWORD (32-разрядное)».
- Назовите значение DWORD как
EnableLinkedConnections
и установите его данные в1
.
- Закройте редактор реестра и перезапустите Windows.
В EnableLinkedConnections
Значение позволяет Windows совместно использовать сетевые подключения между отфильтрованным маркером доступа и маркером полного доступа администратора для члена группы администраторов. Как было сказано ранее, вы должны перезагрузить компьютер после создания значения реестра.
После перезапуска Windows диски будут доступны как в обычных, так и в процессах с повышенными привилегиями, то есть процессах, выполняемых с токеном фильтрованного доступа, а также с токеном полного доступа администратора.
Использование файла .REG
Вы можете автоматизировать вышеуказанную настройку, создание файла .reg из следующего содержания.
Редактор реестра Windows версии 5.00 [HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Policies System] 'EnableLinkedConnections' = dword: 00000001
Планировщик заданий по-прежнему не может получить доступ к подключенным дискам?
Если ваши запланированные задачи по-прежнему не могут получить доступ к подключенным сетевым дискам, несмотря на включение EnableLinkedConnections
реестра, тогда вам нужно будет проверить две вещи:
- Политика безопасности, связанная с контролем учетных записей пользователей, и
- Если запланированная задача настроена для запуска от имени другого пользователя, вам придется снова подключить диск из этой учетной записи. (видеть Важный: примечание в конце этой статьи)
Если следующий параметр политики UAC настроен на Запрос учетных данных , запланированные задачи (выполняемые с наивысшими привилегиями) не могут получить доступ к подключенному сетевому диску.
Контроль учетных записей пользователей: поведение запроса на повышение прав для администраторов в режиме утверждения администратором
С помощью редактора политики безопасности ( secpol.msc
) или в редакторе реестра, вам необходимо настроить указанную выше политику на Запрос содержания (что является настройкой Windows по умолчанию)
Полная инструкция для настройки указанной выше политики безопасности (вместе с альтернативным решением на основе реестра) доступны в статье UAC запрашивает пароль, даже если вы вошли в систему как администратор.
После сброса вышеуказанной политики перезапустите Windows. Подключенные диски должны быть доступны для запланированных задач, настроенных для запуска с наивысшими привилегиями.
Важный: Однако, когда вы выполняете задачу под другой учетной записи пользователя или под СИСТЕМА
( LocalSystem ) контексту, подключенные диски не будут видны, несмотря на EnableLinkedConnections
значение реестра. Это связано с тем, что сетевые диски отображаются для каждого пользователя. Это означает, что вам нужно будет снова подключить диск под той конкретной учетной записью пользователя, которая настроена для запуска запланированной задачи.
Информация в этой статье относится к Windows Vista - Windows 10. Последний раз решения тестировались в Windows 10 v1903.
Одна небольшая просьба: если вам понравился этот пост, поделитесь им?
Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:- Приколи это!
- Поделитесь этим в своем любимом блоге + Facebook, Reddit
- Напишите об этом в Твиттере!