Когда блокнот запущен, я могу перетащить файл, чтобы открыть его, но тогда он не может сохранить файл. Когда я запускаю блокнот с повышенными правами для сохранения файла, я больше не могу перетаскивать, чтобы открыть файл.
Я понимаю, что перетаскивание файла из программы без повышенных прав в программу с повышенными правами представляет угрозу безопасности; однако, когда я запускаю проводник с повышенными правами, я все еще не могу перетащить / опустить в блокнот с повышенными правами.
Почему ОС не позволяет двум программам с повышенными привилегиями обмениваться информацией с помощью перетаскивания? Я серьезно подумываю вернуться к использованию Windows Server 2003.
Изменить: кажется, что две программы с повышенными правами могут обмениваться информацией; исследователь просто не мог поднять. После повышения уровня проводника файлы можно перетаскивать из проводника в блокнот с повышенными правами.
Невозможность «перетащить и оставить» из проводника в окно Блокнота с повышенными правами является проявлением изоляции привилегий пользовательского интерфейса (UIPI) характерная черта. Это в ОС, чтобы предотвратить отправку менее привилегированным приложением произвольных «сообщений» (в смысле межпроцессного взаимодействия операционной системы / приложения) другому, более привилегированному приложению. Если приложение с более высокими привилегиями обработало сообщение неправильно, менее привилегированное приложение могло бы заставить приложение с более высокими привилегиями выполнять произвольный код от своего имени (эти типы атак называются разбить атаки, названные так в статье 2002 года, описывающей метод атаки в текущих версиях Windows).
Вы можете думать об этом как о «брандмауэре» между приложениями, работающими с более низким «уровнем целостности» (непривилегированные), и приложениями с более высоким уровнем целостности (повышенными).
если ты ДЕЙСТВИТЕЛЬНО Если вам нужен проводник Windows с повышенными привилегиями, сделайте следующее:
Проводник снова откроется на повышенном уровне.
Если вы не хотите отключать UAC, вы можете попробовать просто отключить UIPI (изоляция привилегий пользовательского интерфейса).
Откройте regedit и перейдите по ссылке: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Добавить новый DWORD (32-bit) Value
называется EnableUIPI
и установите его на 0
.
Перезагрузите машину и посмотрите, будет ли она вести себя так, как вы хотите.
Это было проблемой в Vista, и я полагаю, что она также добралась до сервера 2008. Обычно вы не можете запустить проводник с повышенными правами. У вас есть опция безопасности для этого, и, похоже, она сработала, когда вы это сделаете, но на самом деле вы все равно получаете стандартное (без повышенных прав) окно проводника, отсюда и ваша проблема.
Обходные пути, которые мне приходилось использовать в прошлом, включали либо использование окна сохранения в качестве окна проводника в сеансе блокнота с повышенными правами, так как он также повышен, либо использование командной строки с повышенными правами для создания файлов, но ни один из них не исправит ваше перетаскивание бросить вопрос очевидно. Это довольно дрянная ошибка, которая существует уже некоторое время, я не знаю, почему они не исправляют ее, чтобы вы могли запустить расширенный экземпляр проводника.
Я думаю, проблема в том, что когда вы запускаете программы от имени администратора, они по-прежнему работают в той же оконной станции, что и все ваши другие программы. Explorer позволяет запускать себя только один раз на любой оконной станции, то есть в одном экземпляре explorer.exe, поэтому вы не можете запустить копию Explorer с повышенными правами.
Есть тенденция жаловаться на навязчивые аспекты контроля доступа пользователей, но безопасность всегда имеет свою цену. Я должен признать, что выключаю UAC на серверах, на которые редко заходят, потому что я верю себе, что не сделаю ничего глупого. Я оставляю UAC включенным для терминальных серверов и более чем счастлив мириться с незначительными неприятностями, которые это влечет за собой.
JR
Предположительно я бы сказал, что код, отвечающий за сборку деталей, необходимых для перетаскивания, работает в контексте без повышенных прав вместе с остальной частью пользовательского интерфейса (включая проводник), поэтому он не сможет доступ к информации о конвейере между двумя процессами.
Отредактируйте копию в своей базе данных конфигурации, а затем скопируйте новую версию на свой хост, перезаписав старую (или пусть config db сделает всю работу за вас, если может);)
Или откройте файл прямо из блокнота с повышенными правами, если вы не хотите повышать уровень проводника.
Редактирование системных файлов не должно сводиться к щелчку мышью, перетаскиванию мышью - по крайней мере, в моем понимании. Также нет особых проблем с отключением UAC для административных сеансов, вам все равно следует выполнять только административную работу на сервере (без терминальных серверов или еще чего-то), так зачем беспокоиться о UAC, когда единственное, что вы хотите сделать, требует повышения прав?
UAC на самом деле не является границей безопасности, поскольку у приложений есть несколько способов обойти его. Вот почему вам обычно следует работать как стандартный пользователь с обычными правами, когда повышение прав невозможно без дополнительных учетных данных - как и до появления UAC.
На мой взгляд, UAC представил более дружественный диалог runas с некоторым интеллектом, его не следует использовать для запуска от имени администратора и чувствовать себя в безопасности.