Pull to refresh

Comments 28

А есть способ отучать особо наглые программы от UAC в W8.1/10? Например, чтобы распаковать архив, они запрашивают права админа, несмотря на наличие доступа к требуемой директории.

Невыдача прав приводит к закрытию программы. В теории, конечно, можно вооружиться дизассемблером и отучить программу от жадности к правам, но хотелось бы иметь какой-нибудь более простой способ
Возможно вопрос был не о том, но… Если нужно просто убрать лишний запрос, а права админа уже есть — достаточно запустить программу с помощью шедулера. Например, CCleaner именно так «сам себя» и запускает.
я вхожу в группу администраторы, но по умолчанию доступ к части директорий требует подтверждения от UAC в W8.1/10. Я не хочу разрешать всякому «левому» софту, особенно если он не подписан, доступ к папке windows и т.д., который она получит при повышении привелегий, особенно, если я понимаю, что без этих прав программа 100% обойдется (папка программы доступна на запись и без привелегий, процесс обновления затрагивает только саму папку — я проверял через process monitor).

По-хорошему перед обновлением программа сама должна проверить разрешения на запись в свою директорию, и, только если его нет, выводить запрос на повышение привелегий, как поступают все «культурные» разработчики. В Windows многое секретов, я знаю далеко не все, поэтому и надеюсь, что может быть какой-то хитрый способ обхода (нечто вроде песочницы: и нажал «да», и прав все равно не дал)
Я недавно обнаружил, что под Win7 любая программа, в названии которой имеются слова «updater», «install» или «setup», будет запрашивать привилегии через UAC, даже несмотря на то, что в программу честно прописан манифест, прямо указывающий, что админские права не нужны. Стоит только переименовать екзешник — и запрос UAC пропадает.
Как бы да, но разработчик же не может это сделать на компьютерах пользователей. Поэтому придется называть свои непривилегированные программы так, чтобы в них не было слов «update», «setup» и «install». Некрасивое решение.
У манифеста с asInvoker разве не будет приоритета?
Вроде как temp лежит внутри windows, а архиваторы туда постоянно лезут. Вынести этот злосчастный темп, точнее оба — и пользовательский и системный (в переменных среды). Может поможет? Я их давно уже выношу в корень на автомате из соображений удобства — чтобы далеко не лазить при зачистке.
Если на иконке приложения виден значок UAC в виде щита, велика вероятность, что для запуска с правами админа используется манифест а не API и можно обойтись без дизассемблера.
Нужно открыть EXE-файл в любой программе, позволяющей редактировать ресурсы (Resource Hacker — навскидку), и в manifest'е заменить в узле «requestedExecutionLevel» значение атрибута «level» на «asInvoker».
Кстати да! и я же сам писал когда-то манифесты, но забыл… Спасибо!!!
P.S. ник в тему :)
не API

Про какой API идет речь?
WinAPI, ShellExecute c 'runas', вроде бы.
Спасибо. Я подумал, что появилось что-то для элевации текущего процесса.
Я так и думал, что что-то похожее должно быть!
Если программу еще разрабатывают, то может стоит обратиться к разработчикам, сообщить им о проблеме и вынужденном способе решения?
Статья однозначно полезная, но хочу заметить, что при невозможности записи в реестр у вас бы не было SUCCESS значения, похоже скрин был сделан когда уже все заработало. Далее, импоритировать в Эксель нет необходимости, фильтры в PM отличные, да и зачастую приходится не пару веток ресстра разрешения дать… Устанете в эксель такскать после каждого шага. Следует просто добавить фильтр для <> SUCCESS.
Да, все верно! Делал скрины, уже после победы над проблемой))))
Тут наверное дело привычки, экспорт в Excel действительно не обязательный шаг!!!
Есть еще вариант воспользоваться утилитой AdmiLink которая создает специальный ярлык позволяющий запускать конкретный софт от имении другой ученой записи без ввода пароля. Это более быстрый способ, но не такой красивый.
Поясните, как это работает? Механика UAC и тем более ограниченные права не позволяют так делать.
Ограниченные права позволяют запускать приложение от имени другой учетной записи, а AdmiLink безопасно автоматизирует этот процесс.
Утилита по шагам запрашивает данные, и генерирует ярлык с путем вида:

C:\Windows\saferun.exe -th C:\Windows\AdmiRun.Exe -d+ -i+ -w- -l+ -c- -a- -m- Z/2B8tY5AABDRcgV9RAWOUft2sfSYo1dWM6F5mnNlh7aIU2ZH97rtISnA/F6LmWk «C:\Program Files\...\...\....EXE»

В этой строке зашифрованы все данные для запуска. Параметры UAC стандартные, работает нормально.
Как мне кажется этой программой нужно осторожно пользоваться, т.к. была у меня ситуация что с помощью программы AdmiLink давал доступ к одной программе (название уже не припомню), так вот некоторые мои студенты умудрялись через help этой программы запускать, командную оболочку, с повышенными привилегиями.
Кто ищет, тот всегда найдет (с)
В вашем случае и подобных (банкоматы, библиотечные терминалы и т.д.) нужны белые списки.
К сожалению не подходит, т.к. студенты учат программирование, а как я понимаю если будут белые списки, то скомпилированные их программы работать не будут.
Да, действительно, через некоторые приложения можно запустить исполняемый файл, например, если приложение использует диалог открытия файла со свободным выбором типа файла. Потенциальная дыра.
Sign up to leave a comment.

Articles