Как да деактивирате UAC за конкретна програма в Windows 10?

В тази статия ще покажем как селективно да деактивирате UAC за конкретно приложение, без да деактивирате напълно тази услуга за контрол на потребителските акаунти. Нека разгледаме няколко начина да изключите контрола на потребителския акаунт за приложение, използвайки флага на съвместимостта. RunAsInvoker.

Контрол на потребителски акаунт или Контрол на потребителски акаунт (UAC) моли потребителя за потвърждение на всяко действие, което изисква администраторски права. Това е доста ефективен механизъм за защита на Windows от различни заплахи (вируси, троянски коне, червеи, руткити и др.). Някои потребители се дразнят от прозореца на UAC и напълно деактивират контрола на потребителските акаунти, въпреки че специалистите на Microsoft и информационната сигурност настоятелно препоръчват да не го правят..

Флагът RunAsInvoker ви позволява да стартирате приложението с маркер, наследен от родителския процес. Това отменя обработката на манифеста на приложението и откриването на процесите на инсталатора. Този параметър не предоставя администраторски права, а само блокира появата на прозореца на UAC.

Ако програмата изисква администраторски права за стартиране, защото Ако той промени системните настройки или системните файлове, тогава, когато UAC е деактивиран за него, потребителските привилегии в приложението не се увеличават. Програмата продължава да се изпълнява с правата на текущия потребител и ако няма правомощия да прави тези промени, програмата няма да може да ги направи. Има и малък брой приложения, които се изпълняват само в режим „Като администратор“, игнорирайки флага на съвместимостта на RunAsInvoker..

Като пример ще деактивираме появата на заявката за контрол на потребителските акаунти за редактора на системния регистър (regedit.exe). Въпреки факта, че акаунтът ми има администраторски права, когато стартирам помощната програма, все пак получавам заявка за UAC за потвърждаване на стартирането.

Съдържание:

  • Деактивиране на UAC за програма с помощта на инструментариума за съвместимост на приложения
  • Активирайте флаг RUNASINVOKER за програмата чрез системния регистър
  • Bat файл, за да стартирате приложението в режим RunAsInvoker

Деактивиране на UAC за програма с помощта на инструментариума за съвместимост на приложения

Нуждаем се от помощна програма Инструментариум за съвместимост на приложения, която е част от Windows ADK. Изтеглете последната версия на Windows ADK за Windows 10 тук.

Стартирайте изтегления файл adksetup.exe и по време на инсталирането (програмата се нуждае от достъп до Интернет) изберете само Инструментариум за съвместимост на приложения.

забележка. пакет Инструментариум за съвместимост на приложения на Microsoft - безплатен набор от помощни програми, предназначени да коригират проблеми със съвместимостта на приложения при надстройка до нови версии на Windows.

В системата ще се появят две версии Администратор за съвместимост на приложенията - 32 и 64 битова версия. Стартирайте версията на администратора за съвместимост на приложения в зависимост от битовата дълбочина на приложението, за което искате да потиснете UAC заявката.

Стартирайте помощната програма Администратор на съвместимост (32-битов) с права на администратор (!). В секцията Персонализирани бази данни щракнете с десния бутон върху елемента New Database и изберете Създаване на ново-> Поправяне на приложения.

В прозореца, който се отваря, посочете името на приложението (regedit), производителя (Microsoft) и пътя към изпълнимия файл (C: \ Windows \ regedit.exe).

Пропуснете следващия прозорец на съветника за настройка (Режим на съвместимост), чрез докосване до. В прозореца Поправки за съвместимост проверете опцията RunAsInvoker.

Ако желаете, можете да се уверите, че приложението може да работи без UAC, като кликнете върху бутона за тестване (Тестово изпълнение).

В прозореца Съответстваща информация Можете да определите кои параметри на приложението да проверите (версия, сума за проверка, размер и т.н.). Оставих проверките на COMPANY_NAME, PRODUCT_NAME и ORIGINAL_FILENAME, включени, за да не пресъздам отново патч файла след следващата актуализация на Windows 10 и актуализиране на версията на файла regedit.

съвет. За да се предпазите от подмяната на изпълним файл от нападател, е желателно да използвате контролна сума, file_version и размер на контролна сума. Имайте предвид, че допълнителните проверки до известна степен ще забавят стартирането на приложението.

преса финиш и посочете името на файла, където искате да запазите създадения пакет за поправяне на съвместимост, например regedit.sdb. Този файл ще съдържа инструкции за стартиране на приложението с посочените опции за съвместимост..

Остава да приложите пакета за поправяне на съвместимостта към приложението си. Можете да направите това директно от конзолата за съвместимост администратор (като изберете инсталирам) или от командния ред.

За да направите това, отворете командния ред с права на администратор и стартирайте командата:

sdbinst -q c: \ ps \ regedit.sdb

Ако всичко е направено правилно, ще се появи съобщение за успешното прилагане на пакета.

Инсталирането на regedit завършено.

След инсталиране на пакета съответният запис ще се появи в списъка с инсталирани програми за Windows (Програми и функции).

Опитайте сега да стартирате приложението в потребителска сесия без права на местния администратор. Сега тя трябва да започне без UAC заявка..

Сега проверете с какви привилегии се изпълнява това приложение. За да направите това, в диспечера на задачите в раздела на процеса добавете колоната „Повишени“. Уверете се, че процесът regedit.exe е стартиран от потребителя в непривилегирован режим (Повишен = Не).

В този процес на редактора на системния регистър, потребителят може да редактира само своите клонове на системния регистър, но когато се опитате да редактирате / създадете нещо в системата HKLM, грешката „Нямате необходимите разрешения".

В бъдеще това решение за съвместимост може да бъде разпространено до компютрите на потребителите с помощта на групови правила. По този начин можете да деактивирате проверките на UAC за конкретни приложения на множество компютри в домейн на Active Directory.

За да премахнете корекцията за съвместимост, изпълнете командата

sdbinst -u c: \ ps \ regedit.sdb

Активирайте флаг RUNASINVOKER за програмата чрез системния регистър

В Windows 10 / 8.1 / 7 можете да разрешите флаг за съвместимост на RUNASINVOKER чрез системния регистър. Флагът за съвместимост на приложението може да бъде зададен за един потребител или за всички компютърни потребители:

Например, за regedit трябва да създадете нов параметър на низа в клона на системния регистър HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers (REG_SZ) от формуляра:

  • Име на стойността: C: \ windows \ regedit.exe
  • Данни за стойността: RunAsInvoker

Ако искате да активирате режима на съвместимост на приложения за всички компютърни потребители, трябва да създадете този параметър в клона на системния регистър: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers.

В домейна можете да разпространявате тези настройки на системния регистър на потребителите чрез GPO.

Bat файл, за да стартирате приложението в режим RunAsInvoker

Има и друга опция за стартиране на приложението без права на администратор и потискане на заявката за UAC (вижте статията).

Просто създайте прилеп файл със следния код:

Задайте ApplicationPath = "C: \ windows \ regedit.exe"
cmd / min / C "set __COMPAT_LAYER = RUNASINVOKER && start" "% ApplicationPath%"

Когато този прилеп файл се изпълнява като потребител, посоченото приложение ще стартира без UAC заявка.

И така, разгледахме как да деактивирате UAC за конкретна програма, без напълно да деактивирате контрола на потребителските акаунти. Това ще ви позволи да стартирате Windows програми като обикновен потребител без подкана UAC и без администраторска парола..