Как отключить UAC для определенной программы | Windows для системных администраторов

Как отключить UAC для определенной программы

Контроль учетных записей (User Account Control или UAC), впервые появившийся еще в Windows Vista – отличное решение в области обеспечения безопасности ОС семейства Windows, позволяющее защитить компьютер от различных угроз, таких как: вирусы, трояны, черви, руткиты и т.п. При включенном UAC система запрашивает подтверждение на выполнение любого действий, требующего прав администратора.

Некоторых пользователей появление окошек контроля учетных записей раздражает, и они предпочитают полностью отключить UAC в системе, хотя Microsoft и специалисты в области ИБ этого делать категорически не рекомендуют.

Сегодня мы покажем, как выборочно отключить UAC для определенного приложения, не отключая полностью эту службу. Для этого нам понадобится пакет Microsoft Application Compatibility Toolkit 5.6, скачать который можно по этой ссылке: http://www.microsoft.com/en-us/download/details.aspx?id=7352.

Примечание. Пакет Microsoft Application Compatibility Toolkit – бесплатный набор утилит, предназначенный для устранения проблем совместимости приложений при переходе на новые версии Windows. Одна из возможностей этого большого пакета – возможность повышать привилегии определенного приложения, обходя систему контроля  UAC.

Установка Application Compatibility Toolkit  тривиальна, так что не будет останавливаться на ее описании.

После установки ApplicationCompatibilityToolkitSetup.exe (12,2 Мб) – в системе появится две (32-х и 64-х битная) версии  утилиты. Если необходимо отключить UAC для 32-битного приложения, нужно воспользоваться 32-битной версией Application Compatibility Toolkit (и наоборот).

В качестве примера мы настроим запуск редактора реестра (regedit.exe) без появления запроса User Account Control. окно uac при запуске приложений требующего административные права (regedit)

Запустим с правами администратора (!) утилиту Compatibility Administrator (32-bit). В разделе Custom Databases, щелкните ПКМ по элементу New Database и выберите пункт Create New-> Application Fix.

Окно Compatibility Administrator (32-bit).

В открывшемся окне нужно указать имя приложения (regedit), производителя (Microsoft) и путь к исполняемому файлу (C:\Windows\System32\regedit.exe).

выбираем программу, для которой нужно отключить UAC (например, regedit)

Следующее окно мастера  настройки (Compatibility Mode) пропускаем, нажав Next. В окне Compatibility Fixes отметим опцию RunAsInvoker.

Примечание. Параметр RunAsInvoker позволяет запускать приложения с правами, с которыми запущен родительский процесс (в данном случае это будет утилита Compatibility Administrator, которую мы запустили в режиме Run As Administrator).

При желании можно убедиться, что приложение может работать без UAC, нажав на кнопку тестового запуска (Test Run).   Параметр RunAsInvoker - запуск программы с правамии родителя (с отключенным UAC)

Нажимаем Finish и указываем имя файла, в который нужно сохранить созданный пакет исправления совместимости, например regedit.sdb. В этом файле будут содержаться инструкции по запуску приложения с заданными привилегиями. сохранить sdb пакет совместимости для отключения uac

Совет. Т.к. мы несколько снизили безопасность системы, разрешив приложению запускаться с повышенными правами без прохождения контроля UAC, мы оставили потенциальную «дыру» в системе. Чтобы защититься от подмены исполняемого файла злоумышленником, можно при запуске файла требовать выполнения дополнительных проверок (например, проверку контрольной суммы CHECKSUM, версии FILE_VERSION и т.п.). Отметим, однако, что дополнительные проверки будут несколько замедлять запуск приложения.Включаем проверку контрольной суммы для regedit32 - CHECKSUM

Осталось применить пакет с исправлением совместимости к нашему приложению. Сделать это можно непосредственно из консоли Compatibility Administrator (выбрав в меню пункт Install), либо из командной строки. Для этого откройте командную строку с правами администратора и выполните команду:

sdbinst -q c:\tools\regedit.sdb

Установка пакета совместимости sdb

Если все сделали правильно, появится сообщение об успешном применении пакета.

Installation of regedit complete.
sdbins -q sdb

После установки пакета, соответствующая запись появится в списке установленных программ Windows (Programs and Features).Новое приложение с отключенным UAC отображается в Program and features

Попробуйте теперь запустить приложение в обычном режиме. Теперь оно должно запуститься без запроса UAC.

В дальнейшем это исправление совместимости можно распространить на ПК организации с помощью групповых политик. Тем самым можно добиться отключения проверки  системы контроля учетных записей (UAC) для определенных приложений в рамках всего домена Active Directory.

Чтобы удалить исправление совместимости, выполните команду

sdbinst –u c:\tools\regedit.sdb
Еще записи по теме: Windows 7
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 17

Оставить комментарий
  1. Stanner | 21.04.2014

    Тоже понадобился этот функционал для программы обновления клиента электронного документооборота.
    Выручил импорт пользователям файла реестра:
    [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
    «C:\\Program Files\\Папка\\Клиент\\cupdater.exe»=»RUNASINVOKER»

    Ответить
    • itpro | 24.04.2014

      Спасибо за дополнение! Про эту возможность я подзабыл :)
      Но в данном случае это решение для одного пользователя. Если нужно отключить UAC для программы у всех пользователей системы, по тому же принципу нужно создать параметр в ветке
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

      Ответить
  2. Арнольд | 01.07.2014

    К сожалению, вышеописанные операции не привели к нужному результату (т.е. ПО так и продолжало при запуске выдавать уведомление UAC). Пришлось воспользоваться программой Elevated Shortcut (запускает программу через штатный планировщик с галочкой «Выполнить с наивысшими полномочиями»). Не мытьем, так катаньем.

    Ответить
    • itpro | 01.07.2014

      Можно, конечно и через планировщик… А какая версия и разрядность ОС?

      Ответить
  3. louri | 23.10.2014

    А можно более подробную инфу и разворачивании данного решения через ГП?

    Ответить
  4. im2 | 15.07.2015

    К сожалению если программу необходимо запускать «As Admin» данный способ не работает, все равно просит повышения прав. Как то можно отключить UAC для запуска приложения от админа?

    Ответить
    • itpro | 23.07.2015

      Вы имеете в виду что приложение запускается из-под обычного пользователя?

      Ответить
      • im2 | 03.08.2015

        Я работаю под учёткой доменного админа, однако имея права админа FAR по-умолчанию запускается с ограниченными правами. Чтобы нормально запустить FAR у меня в ярлыке стоит галка «Run As Admin», и в этом случае я получаю запрос от UAC на повышение прав. Если в Compatibility Toolkit выбрать только опцию RunAsInvoker, то фар всё равно запускается ограниченным, если поставть RunAsAdmin то получаю запрос UAC. Если выставить обе опции RunAsInvoker и RunAsAdmin одновременно, то срабатывает только RunAsInvoker, т.е. сообщение UAC я не получаю, но и FAR запускается не как админ.

        Ответить
  5. Александр | 02.12.2015

    Подскажите — на 8.1 тоже будет работать ???

    Ответить
  6. AlE͕̬̦̥͎̟̯ͪ̓̇͊̋̍̚X | 12.02.2016

    Сори за офтоп,
    везде как отключить,
    А как исправить поломанный UAC?
    Поднял ползунок до «всегда уведомлять», ни одного запроса,
    до этого стояло: никогда не уведомлять.

    Делал сброс: политик.
    RD /S /Q «%WinDir%\System32\GroupPolicyUsers»
    RD /S /Q «%WinDir%\System32\GroupPolicy»
    gpupdate /force

    Ответить
    • itpro | 12.02.2016

      Если дело не в доменных GPO и все приведенное не помогает, попробуйте импортировать на проблемный ПК ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
      \CurrentVersion\Policies\System со здорового (должна быть )аналогичная версия ОС. Один раз таким способом получилось сбросить настройки UAC на дефолтные, после того, как один «продвинутый» человек через реестр систему наоптимизировал.

      Ответить
  7. Антон | 29.02.2016

    А если нужно чтобы программа, которая требует админских прав (но которая на самом деле может и без них прекрасно работать, типа старого софта) запускалась без окошка повышения прав и ввода административного пароля?

    Ответить
    • itpro | 01.03.2016

      Пробовали по этой инструкции создать sdb файл? Ну или через реестр, как в комментариях описал Stanner | 21.04.2014.
      По идее должно помочь.

      Ответить
      • Антон | 01.03.2016

        Нет.
        Пользовался таким батником для запуска setup.exe
        cmd /min /C «set __COMPAT_LAYER=RUNASINVOKER && start «» «setup.exe»»

        Ответить
    • Alex | 30.03.2016

      Для этого подойдёт метод из первого комментария. По сути он делает то-же самое, что ваш батник, только без батника

      Ответить
  8. Павел | 03.04.2016

    Жаль, но на Winodws 10 уже не работает

    Ответить
  9. Alexandr-46 | 29.06.2016

    Установка запуска без контроля для OUTLOOK-2013 закончилась неудачей: запуск стал невозможен с сообщением: «Невозможно открыть окно программы. Невозможно открыть папки. Невозможно соединение с сервером,»
    При повторном запуске Compatibility Administrator’a (32-bit) в списке установленных «Custom Databases» MSOutlook — отсутствовал!!!
    Вернул всё к исходному удалением программ через Reg Organizer.
    Подозреваю, что дело в длинных именах папок: вместо миленького
    sdbinst -q c:\tools\regedit.sdb
    sdbinst –u c:\tools\regedit.sdb
    реальный путь к OUTLOOK.EXE C:\Program Files (x86)\Microsoft Office\OFFICE11
    куда и был помещён MSOutlook.sdb
    В результате команда а-ля ДОС не сработала при удалении, и, по-видимому, не сработала при инсталляции, хотя она прошла с сообщением об успешном применении пакета.

    Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.27MB/0.00186 sec