Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] Запуск программ с включенным UAC без повышения прав (http://forum.oszone.net/showthread.php?t=145492)

ebaboon 18-07-2009 11:59 1171244

Запуск программ с включенным UAC без повышения прав
 
Есть программа которая на требует админских прав, и прекрасно работала еще на XP. Когда я её запускаю на Windows 7 включается UAC и запускает её с правами администратора (что мне совершенно не нужно). При выключеном UAC программа без проблем работает с правами обычного пользователя.
Как не отключая UAC заставить её работать от имени пользователя, а не админа?

Busla 18-07-2009 13:54 1171287

Цитата:

Цитата ebaboon
обычного пользователя »

обычного или опытного? - "Опытный пользователь" в XP - фактически обладает правами Администратора.

ebaboon 18-07-2009 18:10 1171428

Обычный пользователь (который самый бесправный :)

Petya V4sechkin 18-07-2009 22:06 1171555

ebaboon, можно в разделе реестра
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
создать параметр: полный_путь_к_программе.exe = RUNASINVOKER

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

Или воспользоваться статьей:
How to disable the User Account Control Prompt for a certain application only

Цитата:

Цитата Busla
"Опытный пользователь" в XP - фактически обладает правами Администратора.

"Опытный пользователь" в XP не может устанавливать службы/драйверы, к примеру (и еще много чего). Потому что нет соответствующих привилегий и разрешений.

Vadikan 18-07-2009 23:02 1171585

Цитата:

Цитата Petya V4sechkin
"Опытный пользователь" в XP не может устанавливать службы/драйверы, к примеру »

Microsoft говорит, что может...
Цитата:

By default, the rights and permissions that are granted to the Power Users group include those rights and permissions that are required to allow members of the Power Users group to modify computer-wide settings, to install drivers, and to run (or install) non-certified programs.
A member of the Power Users group may be able to gain administrator rights and permissions in Windows Server 2003, Windows 2000, or Windows XP
Но это совершенно неважно в контексте Vista/7, ибо группы уже нет.

Petya V4sechkin 18-07-2009 23:41 1171605

Цитата:

Цитата Vadikan
Microsoft говорит, что может...

Нет разрешений на запись в раздел HKLM\SYSTEM

ebaboon 19-07-2009 08:15 1171727

Цитата:

Цитата Petya V4sechkin
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
создать параметр: полный_путь_к_программе.exe = RUNASINVOKER »

Спасибо, то, что доктор прописал. Вопрос закрыт.

myhouse_1991 06-01-2011 13:08 1582040

Кстати, а можно сделать так, чтобы была возможность запустить любую программу с правами ограниченного пользователя, не взирая на то, что по этому поводу думает UAC? Каждый добавлять править реестр считаю неудобным занятием. Пробовал в Process Explorer использовать Run As Limited User - не работает, получаю Access Denied со следующими пояснениями "Процесс требует повышение прав".

Vadikan 06-01-2011 13:54 1582066

myhouse_1991, если вы конкретизируете задачу, будет проще понять, зачем вам это нужно... Можно отклонять все запросы http://www.oszone.net/11424/uac_windows7_2#005

myhouse_1991 06-01-2011 21:41 1582511

Цитата:

Цитата Vadikan
если вы конкретизируете задачу, будет проще понять, зачем вам это нужно...

Запускать недоверенное ПО с заниженными привилегиями.

Vadikan 06-01-2011 22:07 1582528

myhouse_1991, краткость, возможно, и сестра таланта, но только не здесь... Вообще-то "недоверенное ПО" нельзя запускать :) Для этого есть AppLocker.

А так, программе просто могут быть нужны полные права для дела, и без них она просто не сможет работать. Если не для дела - RunAsInvoker должен помочь. И я не вижу ничего страшного в избирательном подходе, ибо большинству программ полные права и не нужны.

А вам это нужно для кого? С какими правами пользователь(и) работают?

t_ara_s 06-01-2011 22:19 1582544

Помогите и мне. Есть программа KeySwitcher (аналог Punto). Если включить UAC, то автозапуском она не стартует. Как побороть???????

Vadikan 06-01-2011 22:24 1582548

t_ara_s, в планировщик поставьте выполнение при входе в систему и с наивысшими правами. Для справки см. Упрощаем запуск приложений в Windows 7 от имени администратора без отключения UAC (номер 4). Вообще, вопрос оффтоп - продолжайте тут, если непонятно что-то.

Morpheus 06-01-2011 22:24 1582549

t_ara_s, значит несовместимая с Windows 7 версия. http://www.oszone.net/10594#400 - в триггере укажите "при входе в систему".

Vadikan, опередил :)

myhouse_1991 06-01-2011 23:29 1582602

Цитата:

Цитата Vadikan
А вам это нужно для кого?

Для себя.

Цитата:

Цитата Vadikan
С какими правами пользователь(и) работают?

Сделано как по-умолчанию. Встроенный администратор не используется т.к. я заметил его особенность обходить UAC.
Пока раздумываю отключить ли UAC (но я теряю и виртуализацию) и использовать классическую схему с 2 пользователями с разными правами, или оставить как есть и использовать UAC, который мне пока что доставляет одну проблему, описанная чуть выше.

Цитата:

Цитата Vadikan
Вообще-то "недоверенное ПО" нельзя запускать

Да, это я понимаю, но иногда приходится. В Windows XP я обычно для этого создавал пользователя-жертву с ограниченными привилегиями, запускал непонятное ПО и просматривал Process Monitor'ом деятельность. Также чтобы потом долго не возиться с последствиями и с удалением пользователя - включал фильтр записи EWF (кстати, аналог в Windows 7 есть?) перед экспериментами, чтобы после перезагрузки вернуться к тому, что было раньше. Но времена меняются и решил потихонечку переходить на Windows 7, где я столкнулся с некоторыми проблемами...

Цитата:

Цитата myhouse_1991
Запускать недоверенное ПО с заниженными привилегиями.

Хотя не только это - я обычно придерживаюсь принципа работы с заниженными привилегиями, что спасало меня в Windows XP от многих проблем, в частности от переустановок. Но проблема с UAC в том, что когда я знаю, что для этой программы точно не нужны права администратора, UAC иногда определяет как раз наоборот и не даёт запустить с заниженными привилегиями (вариант запуска с администратором не предлагать - принцип заниженных привилегий для меня куда важнее, чем потом мучиться с глюками ОС из-за ошибки программиста), а лазить каждый раз для этого в реестр... Нет ли просто глобальной настройки? Я это спрашиваю для того, чтобы заранее узнать перед написанием маленькой программы, которая автоматически дописывает в ветку реестра данные и стирает после вызова контекстного меню, которое добавлю вручную с надписью "Force Run As Limited User in UAC".

Цитата:

Цитата Vadikan
А так, программе просто могут быть нужны полные права для дела, и без них она просто не сможет работать. Если не для дела - RunAsInvoker должен помочь. И я не вижу ничего страшного в избирательном подходе, ибо большинству программ полные права и не нужны.

Я не совсем понял логику определения "Нужны повышения" и "Не нужны повышения" :
1) Я пробовал запустить троян vzlom_vkontakte.exe - он регистрирует службу для зловредной деятельности и тут UAC правильно определил, что для корректной работы нужны повышенные права. Но я, допустим, не знаю, что он конкретно делает и хочу запустить, но только с заниженными привилегиями не отключая UAC + по возможности включить виртуализацию.
2) Запустил Windows Worms Door Cleaner (не надо говорить, что его делали для Windows XP - это для проверки), который лезет в ветку реестра HKLM и тут UAC не определил, что ему нужны права администратора - видимо виртуализовывает.
3) Запустил SFX распаковщик и тут UAC пристаёт с тем, что ему нужны права администратора - с чего это вдруг? Этот SFX я сам создал для проверки UAC. Не надо говорить, что можно взять WinRar, 7-zip и т.д. для распаковки. Просто для меня это говорит о том, что UAC не всегда корректно определяет, когда нужно повышать права, а когда нет и при этом запрещает мне занизить принудительно права, даже если я знаю, что этого будет достаточно.

Цитата:

Цитата Vadikan
Для этого есть AppLocker.

AppLocker работает по принципу классической политики SRP (Software Restrict Policy). Только я не понимаю, имеет ли она какое-то отношение с запуском любой программы с заниженными привилегиями в обход того, что думает UAC.

Morpheus 06-01-2011 23:40 1582607

myhouse_1991, UAC ничего не думает, ему 10 раз фиолетово. Повышать или нет, решает разработчик программы и прописывает это в манифесте. Если софт старый (писался ещё под XP и более старые версии) - разумеется никаких повышений не закладывалось.
Цитата:

Цитата myhouse_1991
Да, это я понимаю, но иногда приходится. В Windows XP я обычно для этого создавал пользователя-жертву с ограниченными привилегиями, запускал непонятное ПО и просматривал Process Monitor'ом деятельность. »

А виртуальные машины не рассматриваете? Побезопасней будет.

Vadikan 07-01-2011 12:12 1582822

Цитата:

Цитата myhouse_1991
Пока раздумываю отключить ли UAC (но я теряю и виртуализацию) и использовать классическую схему с 2 пользователями с разными правами, или оставить как есть и использовать UAC »

Я не вижу смысла в "классической схеме". См. аргументацию в https://www.outsidethebox.ms/10034/ от "С какими правами работать?" до "Безопасность или комфорт" включительно.

Цитата:

Цитата myhouse_1991
Я не совсем понял логику определения "Нужны повышения" и "Не нужны повышения" »

Приложения Microsoft спроектированы так, что запрос выводится при необходимости (пример - редактор реестра, проводник при копировании файлов в системную папку). Для сторонних приложений запрос на повышение выводится, опять же, если это заложено в программу (манифест), либо определяется параметрами совместимости приложения (задается в свойствах приложения = в реестре, см. пост 4). Для всех остальных приложений, которые можно назвать "старыми", т.е. не умеющими работать с UAC, применяется виртуализация. См. https://www.outsidethebox.ms/10034/ "Старые приложения".

Цитата:

Цитата myhouse_1991
Запустил Windows Worms Door Cleaner (не надо говорить, что его делали для Windows XP - это для проверки), который лезет в ветку реестра HKLM и тут UAC не определил, что ему нужны права администратора - видимо виртуализовывает. »

Да, это пример старого приложения. Другими словами, за счет виртуализации UAC может нейтрализовать вредоносное ПО, рассчитанное на внесение изменений в системные параметры и папки.

Цитата:

Цитата myhouse_1991
Запустил SFX распаковщик и тут UAC пристаёт с тем, что ему нужны права администратора - с чего это вдруг? »

Не зная "начинки" и условий выполнения, невозможно сказать. Очевидно, распаковка производится в системную папку, либо после распаковки выполняется приложение, требующее повышения.

Что касается ваших экспериментов с вредоносным ПО на рабочей системе, то это безрассудно, а если отбросить политкорректность, то попросту глупо. Используйте виртуальные машины. См. также Эксперименты с программами.
Цитата:

Цитата myhouse_1991
AppLocker работает по принципу классической политики SRP (Software Restrict Policy). Только я не понимаю, имеет ли она какое-то отношение с запуском любой программы с заниженными привилегиями в обход того, что думает UAC. »

С UAC это не связано. Я упомянул AppLocker в контексте ограничения запуска "недоверенных" приложений, поскольку на тот момент формулировка вашей задачи была расплывчатой.

myhouse_1991 07-01-2011 13:47 1582890

Цитата:

Цитата Vadikan
Что касается ваших экспериментов с вредоносным ПО на рабочей системе, то это безрассудно, а если отбросить политкорректность, то попросту глупо. Используйте виртуальные машины. См. также Эксперименты с программами.

Если говорить, что безопасней всего - использовать только отдельную машину, ведь из виртуальной среды тоже можно выбраться. Чего только стоит недоценить возможность виртуальной машины атаковать ваши же открытые порты со статусом Listening, если ему дали доступ к сети.

Цитата:

Цитата Vadikan
то это безрассудно, а если отбросить политкорректность, то попросту глупо

По мне надо же иногда проверять как противостоит ему Windows, а не только принимать на веру все эти антивирусы, Firewall'ы и т.д.

Цитата:

Цитата Vadikan
Другими словами, за счет виртуализации UAC может нейтрализовать вредоносное ПО, рассчитанное на внесение изменений в системные параметры и папки.

Вот этот эффект я и хотел использовать.

Vadikan 07-01-2011 17:03 1583094

Цитата:

Цитата myhouse_1991
По мне надо же иногда проверять как противостоит ему Windows, а не только принимать на веру все эти антивирусы, Firewall'ы и т.д. »

Не очень понимаю, что мешает это проверять на виртуальной машине, ну да ладно...
Цитата:

Цитата myhouse_1991
Вот этот эффект я и хотел использовать. »

Я бы не стал на него всецело полагаться, ибо отсутствие полных прав не означает отсутствия вредоносных функций. Шпионить можно и из профиля пользователя...

myhouse_1991 13-01-2011 14:24 1587726

Сделал я то, что хотел. Назвал в контекстом меню пункт как Force Run As Invoker (UAC) вместо задуманного Force Run As Limited User in UAC т.к. не используется сторонняя программа для понижения прав, а используются лишь штатные средства.

Вот сам твик реестра.
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Force Run As Invoker (UAC)"

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /C \"REG ADD \"HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /t REG_SZ /d RunAsInvoker && start \"\" \"%1\" && REG DELETE \"HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f\""

Принцип действия простой - изменяется реестр как описано здесь:
Цитата:

Цитата Petya V4sechkin
можно в разделе реестра
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
создать параметр: полный_путь_к_программе.exe = RUNASINVOKER

Потом программа запускается, а после та запись удаляется из реестра.

myhouse_1991 16-01-2011 19:08 1590028

Есть другой способ, который работает без правки реестра. Случайно нашёл статью HOW TO: Script Compatibility Layers in Windows XP и там обнаружил, что можно выставить готовый слой совместимости, используя специальную переменную __COMPAT_LAYER. Проверил на Windows 7, присвоив переменной значение RUNASINVOKER, - также работает.

Вот пример bat файла для запуска программы с включенным исправлением RUNASINVOKER
Код:

set __COMPAT_LAYER=RUNASINVOKER
start "" myprogram.exe

Также переправил свой первый вариант контекстного меню Force Run As Invoker (UAC) с использованием переменной, вместо правки реестра.
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Force Run As Invoker (UAC)"

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""


Vom 01-03-2011 21:13 1624818

Отлично - элегантное решение :ok:
Встречный вопрос - как раз и навсегда для определенной программы ( exe-ка ) запретить повышение прав в Windows 7?
Так как тут получится при стандартным двойном клике все равно вылезет UAC.
Конечно можно выключить так называемое "Обнаружение установки приложений и запрос на повышение прав". Что для организации кстати подходит.

Но где-то с год тому или больше случайно встретил статью о использовании Мастера совместимости и указании принудительно режима для определенного файла, но что-то отвлекло, и потерялась ссылка.

Сейчас не могу найти, может кому-то попадалась подобная информация?
___

Хм, задал вопрос.. а оказывается выше был уже ответ)

читать дальше »
Кстати да - есть куча программ, абсолютно совместимых как с Window XP, так и с Windows 7, за вычетом - почему то при запуске в Win 7 появляется запрос UAC, и при этом абсолютно нормально работающих при простом пользователе в Win XP.
Это разные игры, спец утилиты для работы с каким-то файлом, бухгалтерские утилиты и т.п.
Пока решал с помощью сторонней утилиты (как и на повышение прав, так и на понижение).

GhostKU 07-12-2012 13:45 2040620

Скажите, а можно ли как-то узнать какая из операций выполняемых программой требует повышения прав? У меня была программа требующая запуска от Администратора, я сделал батник как рекомендовано выше и прога запускается и вроде нормально работает, но для полной уверенности хотелось бы знать зачем ей нужны были права.

Cooc 25-01-2013 19:51 2074954

Цитата:

Цитата Morpheus
t_ara_s, значит несовместимая с Windows 7 версия. http://www.oszone.net/10594#400 - в триггере укажите "при входе в систему". »

А вот тут вы ошибаетесь. Антибаннер Adguard,лицензия,полная совместимость с Windows 7(проверял помощником по совместимости...),в настройках самой программы указано,в конфигурация системы-автозагрузка прописана,в свойствах ярлыка административный запуск указан в обоих пунктах (причём для всех пользователей),а всё равно со включённым даже на минимлке UACом автозагрузка не происходит.Вот так-то.

Pineapple 19-07-2013 20:08 2187495

Учетные записи
 
Есть две учетные записи admin с правами администратора и user с обычным доступом. Что бы userу запустить приложение нужно для каждого запуска вводить пароль. А как это убрать без всяких утилит? Другие приложения нормально, а именно одно такое. Winows 7 Ultimate x64

Vadikan 19-07-2013 21:08 2187546

Pineapple, склеил, читайте тему.

Pineapple 19-07-2013 21:52 2187575

Vadikan, а есть инструкция по управлению учетными записями? Например мне нужно, чтобы пользователь с обычными правами не мог трогать файлы на hdd, не мог ничего изменять. Просто запускать некоторые программы и пользоваться ими. А при сторонних действиях всегда запрашивало пароль.

Vadikan 19-07-2013 22:02 2187581

Pineapple, пользователь с обычными правами и так не имеет доступа в системные папки и профили других пользователей. По поводу запуска программ - читайте тему.

Pineapple 19-07-2013 22:06 2187585

Vadikan, Насчет папок других пользователей. Я зашел с паролем в папку админа и больше пароль не требует. Приходится в настройках безопасности убирать права. И еще в windows 8 это лучше реализовано или нет?

Vadikan 19-07-2013 22:55 2187608

Pineapple, а зачем вы юзером заходите с паролем в папки админа? В Windows 8 то же самое.

Вообще, чего вы пытаетсь добиться? Конечная цель какая у вас?

Pineapple 19-07-2013 23:01 2187613

Цитата:

Цитата Vadikan
а зачем вы юзером заходите с паролем в папки админа? »

Просто мне иногда так удобнее, чтобы не переключатся.
Моя цель полный контроль над пользователем, чтобы он делал только то, что я посчитаю нужным.

Vadikan 19-07-2013 23:04 2187616

Pineapple, если вы хотите полный контроль, достаточно работать администратором и при нбх одобрять UAC, что эквивалентно переходу от обычных прав к административным. Если хочется тотально огородиться, передвиньте ползунок на верхний уровень - будете вводить пароль всегда.

См. также Так ли страшен контроль учетных записей?

Pineapple 19-07-2013 23:35 2187626

Vadikan, вот user играет в игру Point blank и когда она запускается всегда требует пароль админа. Как это убрать?

Pineapple 19-07-2013 23:50 2187634

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
создать параметр: полный_путь_к_программе.exe = RUNASINVOKER
У меня нет Layers там только Compatibility Assistant

ruslan... 20-07-2013 00:40 2187654

Pineapple,

Примените твик реестра и создайте параметр. Применение твиков реестра Windows 7 и Vista
Код:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]

Или внесите сразу в твик свой параметр. Будет выглядеть так.
Код:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"полный_путь_к_программе.exe"=RUNASINVOKER

В чем загвоздка ?

Pineapple 20-07-2013 13:03 2187757

Цитата:

Цитата ruslan...
В чем загвоздка ? »

нет в реестре пункта Layers

ruslan... 20-07-2013 13:36 2187769

Цитата:

Цитата Pineapple
нет в реестре пункта Layers »

После запуска первого твика, он сразу же появится.

Создание REG-файла

Pineapple 20-07-2013 14:41 2187786

Cooc, Меня этот windows уже скоро доведет, буду пользоваться Ubuntu как основной

Beliy.IV 11-11-2016 08:53 2686526

Ребят, вот на работе есть программа которая требует прав администратора, но пользуется ей обычный пользователь.
Я внес запись в реестр, поставил в совместимости Выполнять от имени администратора, и всё бы нечего, но
пропал свет, и настройки сбились, в реестре рядом с значением RUNASINVOKER появился RunAsAdmin и после повторной перезагрузки пропала галочка Выполнять от имени администратора.

Как быть?
---------------------
И подскажите как сделать контекстное меню, которое предлагается на 3 стр., но только для одной рпограммы.
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Force Run As Invoker (UAC)"

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""


Beliy.IV 15-11-2016 07:59 2687684

есть кто ?


Время: 07:48.

Время: 07:48.
© OSzone.net 2001-