Windows 10: Настройки UAC через GPO и KIS

Некоторое время назад я заметил, что при попытке какой-то программой запросить повышение привилегий, диалоговое окно UAC появляется, но экран не темнеет, а остаётся прозрачным. Это было неудобно хотя бы потому, что периодически оно теряло фокус. Началось это после какого-то обновления. Я выставил настройки UAC на уровень 4 и перезагрузил комп. Через некоторое время (было еще несколько перезагрузок) диалог UAC опять стал появляться без затемненного экрана, т.е. режим «Switch to the secure desktop when prompting for elevation» не работал.
Я решил попробовать настроить поведение UAC через политики.
Computer Configuration -> Windows Settings -> Security Settings-> Local Policies -> Security Options -> User Account Control: *

Behavior of the elevation prompt for administrators in Admin Approval Mode = Prompt for consent on the secure desktop
Run all administrators in Admin Approval Mode = Enabled
Switch to the secure desktop when prompting for elevation = Enabled

Применил полики:

gpupdate /force

Но когда запустил gpedit.msc снова, то увидел, что все значения опять были выставлены по дефолту!
Я подумал, что это KIS «балуется» и отключил его, но ничего не изменилось — политики не применялись. Причем не применялись только настройки UAC. Я проверил на других значениях — они успешно сохранялись!

Пока не понял, кто виноват…
Попробовал следующий способ:

  1. Нажать Win+R
  2. Ввести «msconfig» (без кавычек) и нажать Enter
  3. В появившемся окне перейти на вкладку «Tools»
  4. Выбрать пункт «Change UAC Settings» и затем нажать на кнопку в правом нижнем углу «Launch»
  5. Выставить желаемый уровень UAC и перезагрузить компьютер.

Теперь после перезагрузки у меня в GPO заданы три позиции:

  • Behavior of the elevation prompt for administrators in Admin Approval Mode = Prompt for consent on the secure desktop
  • Run all administrators in Admin Approval Mode = Enabled
  • Switch to the secure desktop when prompting for elevation = Enabled

Ну это уже лучше!

Настройки через реестр.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000001
"ConsentPromptBehaviorAdmin"=dword:00000002
"ConsentPromptBehaviorUser"=dword:00000003
"PromptOnSecureDesktop"=dword:00000001

update 18.11.16:
Был установлен KIS 2017, при нем и была проблема. Решения, описанные выше, уже не помогали. Удалил его, поставил старую версию — KIS 2016. Как результат, проблема исчезла…
Да здравствует Касперыч :)

Сделай доступ «только для чтения» и не будут меняться.Light-XP

Будут «меняться» ;) Не помогало это, он просто очищал нафиг всю ветку [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System].
Как следствие, UAC устанавливался на уровень 3…

update 03.12.16:
В KIS2016 то же самое. К моим проблемам добавилась еще одна: теперь я не могу запустить редактор Unity. При запуске появляется интерфейс редактора частично — есть окно, меню, но нет окошек редактора, приложение зависает а через некоторое время вылетает утилита для отправки баг-репорта. Если KIS отключить (или отключить его компоненты), то ничего не помогает, т.к. в памяти висят драйвера:
kis-startedservices01
Помогает только удаление KIS.

Пробовал установить аудит на удаление этой ветки реестра, удалял ее вручную, через редактор реестра — в Журнале событий никаких соответствующих событий не было. Не было и при удалении через PowerShell:

Remove-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA

update 12.12.16:
Вооружился Process Monitor и отловил момент сброса настроек UAC:
Windows 10: Настройки UAC через GPO и KIS
Поясню, что именно он словил:
1. Я запускаю оснастку secpol.msc.
2. Меняю текущий уровень SRP. Например был уровень «Disallowed», я поменял его на «Unrestricted» (или наоборот).
3. Какой-то из драйверов KIS (не служба, т.к. я их все отключал) ловит это событие и удаляет все ключи в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
4. Поскольку ветка теперь чистая, система устанавливает ДЕФОЛТОВЫЙ уровень UAC, который к сожалению не Level 4, а Level 3.
Если менять уровень SRP через редактор реестра или через PowerShell, то проблемы НЕТ!

Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers -Name DefaultLevel -Value 0x00000000

update 05.01.17
Был какой-то конфликт при работе KIS и svchost.exe. Для того, чтобы триггер не срабатывал, пришлось создать в KIS исключение:
1. KIS -> Настройка -> Защита -> Контроль программ -> Управление ресурсами
2. Откроется окно настроек, в левой панели для ресурса «Операционная система» необходимо создать три исключающих правила в подразделе «Параметры безопасности», для этого нужно нажать на кнопку «Добавить»:
Windows 10: Настройки UAC через GPO и KIS
3. После этого нажимаем на строку «Ключ реестра» и выбираем HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA
4. Повторяем действия для HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop
5. Потом то же самое для HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\ConsentPromptBehaviorUser
6. На панели с правой стороны выбираем «Вид» и снимаем галочку с «Скрывать системные программы», теперь можно будет увидеть svchost.exe.
7. Раскрываем группу «Microsoft» и находим там «Host Process for Windows Services»
8. По очереди выделяем новое правило из пункта 3-5 и для каждого из них на программе «Host Process for Windows Services» выставляем ЗАПРЕТ на удаление:
Windows 10: Настройки UAC через GPO и KIS
9. После всего этого нажимаем кнопку «Сохранить».

Теперь ветка реестра не будет очищаться, а значит проблема с изменением уровня UAC решена!