runasadmin vdf что это
Запуск программы без прав администратора и подавлением запроса UAC
Многие программы при запуске требуют повышения прав (значок щита у иконки), однако на самом деле для их нормальной работы права администратора не требуется (например, вы можете вручную предоставить необходимые права пользователям на каталог программы в ProgramFiles и ветки реестра, которые используются программой). Соответственно, если на компьютере включен контроль учетных записей, то при запуске такой программы из-под непривилегированного пользователя появится запрос UAC и Windows потребует от пользователя ввести пароль администратора. Чтобы обойти этот механизм многие просто отключают UAC или предоставляют пользователю права администратора на компьютере, добавляя его в группу локальных администраторов. Microsoft не рекомендует использовать такие методы, т.к. это снижает безопасность компьютера.
Зачем обычному приложению могут понадобится права администратора?
Права администратора могут потребоваться программе для модификации некоторых файлов (логи, файлы конфигурации и т.д.) в собственной папке в C:\Program Files (x86)\SomeApp). По умолчанию у пользователей нет прав на редактирование данного каталога, соответственно, для нормальной работы такой программы нужны права администратора. Чтобы решить эту проблему, нужно войти на компьютер под администратором и вручную предоставить пользователю (или встроенной группе Users) права на изменение/запись для этого каталога на уровне файловой системы NTFS.
Запуск программы, требующей права администратора, от обычного пользователя
Ранее мы уже описывали, как можно с помощью параметра RunAsInvoker отключить запрос UAC для конкретной программы. Однако этот метод недостаточно гибкий.
Также можно воспользоваться RunAs с сохранением пароля админа /SAVECRED в диспетчере паролей Windows (Credentials Manager). Это также небезопасно, т.к. пользователь может использовать сохранённый пароль учетной записи администратора для запуска других программ.
Рассмотрим более простой способ принудительного запуска любой программы без прав администратора (и без ввода пароля админа) при включенном UAC (4,3 или 2 уровень ползунка UAC).
Для примера возьмем утилиту редактирования реестра — regedit.exe (она находится в каталоге C:\windows\). Обратите внимание на щит UAC у иконки. Данный значок означает, что для запуска этой программы будет запрошено повышение привилегий через UAC.
Попробуем обойти запрос UAC для этой программы. Создайте на рабочем столе файл run-as-non-admin.bat со следующим текстом:
cmd /min /C «set __COMPAT_LAYER=RUNASINVOKER && start «» %1″
Теперь для принудительного запуска приложения без прав администратора и подавлением запроса UAC, просто перетащите нужный exe файл на этот bat файл на рабочем столе.
После этого редактор реестра должен запуститься без появления запроса UAC и без ввода пароля администратора. Откройте диспетчер процессов, добавьте столбец Elevated и убедитесь, что в Windows 10 запустился непривилегированный процесс regedit (запущен с правами пользователя).
Попробуйте отредактировать любой параметр в ветке HKEY_LOCAL_MACHINE. Как вы видите доступ на редактирование реестра в этой ветке запрещен (у данного пользователя нет прав на запись в системные ветки реестра). Но вы можете добавлять и редактировать ключи в собственной ветке реестра пользователя — HKEY_CURRENT_USER.
Аналогичным образом через bat файл можно запускать и конкретное приложение, достаточно указать путь к исполняемому файлу.
run-app-as-non-admin.bat
Set ApplicationPath=»C:\Program Files\MyApp\testapp.exe»
cmd /min /C «set __COMPAT_LAYER=RUNASINVOKER && start «» %ApplicationPath%»
Также можно добавить контекстное меню, которое добавляет у всех приложений возможность запуска без повышения прав. Для этого создайте файл runasuser.reg файл, скопируйте в него следующий код, сохраните и импортируйте его в реестр двойным щелчком по reg файлу (понадобятся права администратора).
После этого для запуска любого приложения без прав админа достаточно выбрать пункт “Run as user without UAC elevation” в контекстном меню проводника Windows File Explorer.
RunAsInvoker в переменной окружения __COMPAT_LAYER
Переменная окружения __COMPAT_LAYER позволяет устанавливать различные уровни совместимости для приложений (вкладка Совместимость в свойствах exe файла). С помощью этой переменной можно указать настройки совместимости, с которыми нужно запускать программу. Например, для запуска приложения в режиме совместимости с Windows 7 и разрешением 640×480, установите:
set __COMPAT_LAYER=Win7RTM 640×480
Из интересных нам опций переменной __COMPAT_LAYER можно выделить следующие параметры:
Следующий код включает режим RUNASINVOKER для текущего процесса и запускает указанную программу:
start «» «C:\Program Files\MyApp\testapp.exe»
Включаем режим RunAsInvoker через манифест exe файла программы
Как мы уже говорили выше, Windows 10 показывает значок щита UAC у программ, которые для запуска требуют повышение привилегий. Это требование разработчики задают при разработке в специальной секции программы — манифесте.
Вы можете отредактировать манифест exe файла программы и отключить требование запускать программу в привилегированном режиме.
Для редактирования манифеста программы можно использовать бесплатную утилиту Resource Hacker. Откройте исполняемый файл программы в Resource Hacker.
В дереве слева перейдите в раздел Manifest и откройте манифест программы.
Обратите внимание на строки:
Именно благодаря опции requireAdministrator Windows всегда запускает эту программу с правами администратора.
Измените requireAdministrator на asInvoker и сохраните изменения в exe файле.
Обратите внимание, что теперь у иконки программы пропал щит UAC и вы можете запустить ее без запроса прав администратора с привилегиями текущего пользователя.
В этом случае можно заставить программу использовать внешний файл манифеста. Создайте в каталоге с ехе файлом текстовый файл app.exe.manifest (например Autologon.exe.manifest) и скопируйте в него код манифеста из Resource Hacker. Измените requireAdministrator на asInvoker. Сохраните файл.
Чтобы Windows при запуске приложений всегда пробовала использовать внешний файл манифеста, включите специальный параметр реестра:
REG ADD «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide» /v PreferExternalManifest /t REG_DWORD /d 1 /f
Перезагрузите Windows и убедитесь, что программа использует внешний файл манифеста, в котором указано, что нужно запускаться без прав администратора.
jameszero.net
Запуск программ с правами администратора под ограниченной учётной записью
Некоторые производители ПО до сих пор не соблюдают элементарных правил разработки программ для современных многопользовательских вычислительных сред и создают программы, не позволяющие их использовать без дополнительных костылей в условиях централизованной инфраструктуры с требуемым уровнем безопасности и ограниченными правами пользователей.
Столкнувшись на практике с обслуживанием систем видеонаблюдения я отказывался понимать, что ПО для просмотра видеокамер выпущено совсем недавно (производителя умолчу). Программа, к моему удивлению, требовала для своей работы административных прав, причем анализ того, что именно она делает с компьютером, не выявил необходимости в этом. Да, программа хранит настройки в директории установки в Program Files и ограниченная учётная запись не имеет доступ к ним на запись, но попытка обойти это ограничение установкой программы в другую папку, успехом не увенчалась. Одним из решений которое я в итоге использовал, было подписание исполняемого файла своей цифровой подписью и редактирование манифеста с заменой level=»requireAdministrator» на level=»asInvoker», но ввиду отсутствия цифровых подписей в широком обиходе в этой статье я расскажу о другом варианте решения:
Runasrob распространяется в zip-архиве, в котором находятся две папки x86 и x64. Выбрав требуемую разрядность и запустив RunAsAdmin.exe вы увидите следующее окно:
Добавляем программу в список, ставим галку на Logon as administrator и жмем на Create shortcut. Это создаст в папке с RunasRob ярлык на запуск. В его свойствах вы можете поменять иконку и, если требуется, комментарий.
После этого перенесите ярлык в доступное ограниченному пользователю место, например на общий рабочий стол и перелогиньтесь в пользовательскую учётку. Первый запуск ярлыка из под ограниченной учётной записи потребует ввести пароль от неё (не административный, а именно пользовательский пароль) и не забудьте поставить галку на Store credentials.
На этом настройка закончена, а созданный ярлык позволит запустить программу с правами администратора под ограниченной учётной записью. В данном решении есть небольшой недостаток — мигание консольного окна при запуске, но я обычно в этот момент медленно моргаю и не замечаю этого)).
RUNASADMIN в реестре, похоже, не работает в Windows 7
некоторое время установщик моей программы использовал приведенный ниже код для запуска моего приложения с правами администратора. Но это видимо не действует под Windows 7. В Vista он работал красиво. Если я щелкну Правой Кнопкой Мыши ярлык и скажу, чтобы он запускался как администрирование, программа запустится нормально. Но, используя приведенный ниже код, его следует заставить запускать программу таким образом все время. Теперь уже нет. Кто-нибудь знает, использует ли Win 7 Этот ключ? ОАК тоже по путь.
5 ответов
Я использую Windows 7, и я вижу такие ключи. Однако я не думаю, что это правильный способ настройки вашего приложения и установщика.
моя рекомендация заключается в том, что вы распространяете файл манифеста вместе с вашим приложением (app.исполняемый.) Файл манифеста может быть даже встроен в исполняемый файл легко, если вы используете Visual Studio 2008 с. Затем в файле манифеста вам может потребоваться администратор права.
у меня есть ответ/решение для этого вопроса.
во-первых, я не согласен (с уважением) с комментарием, что использование AppCompatFlags не является «правильным способом настройки вашего приложения и установщика.»Изменение этого раздела реестра-это просто зеркальное отображение с помощью графического интерфейса Windows для изменения уровня привилегий исполняемого файла. Я считаю, что этот метод проще реализовать, чем добавить файл манифеста. Если пользователь хочет изменить уровень привилегий, чтобы не работать Администратор, они могут сделать это легко с GUI.
во всяком случае, у меня была такая же проблема с попыткой установить уровень привилегий исполняемого файла для запуска от имени администратора. Мы знаем, что мы можем установить его с помощью GUI:
когда изменения будут сохранены, вы найдете параметр в реестре:
однако, всякий раз, когда я пытался изменить реестр напрямую, не проходя через GUI, программа просто не будет работать как администратор. Реестр показывает, что я внес изменения, и когда я смотрю на уровень привилегий для исполняемого файла, Запуск от имени администратора проверены на.
все эти методы сделали то же самое. Реестр был изменен, и GUI показал, что программа должна работать от имени администратора, но программа никогда не работает от имени администратора.
Я не знаю, что здесь происходит, но это работает.
в win7, RUNASADMIN ПОМЕЩАЕТСЯ В КЛАВИШУ : когда HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers используя install shield 5.1, значения копируются в appcpmctflgsin wow6432node и exe actualy falis для запуска от имени администратора.
этот ответ Робен работает «для exe-файла, который я не создавал», который вы выразили как интерес к вашему комментарию ответ Лекса ли. Он использует вашу оригинальную идею реестра.
два, возможно, существенных изменений:
Я использовал CMD для добавления этой записи в реестр, используя следующую команду:
и все нормально как в 32, так и в 64-битных ОС(Win 7 32Bit, Win 8 32Bit, Win 8.1 64Bit).
Запуск от имени администратора без запросов
Нужно добавить в автозагрузку запуск программы от админа, но без вывода сообщения для подтверждения (и запроса пароля, если я не админ).
Как это можно сделать?
runas вроде как всегда требует пароль, т.е. его даже в параметрах не задать (к тому же, не совсем понятно как там указать необходимость повышения прав: обычные проги запускаются всё равно без админа, а запуск требующих прав админа прог приводит к сообщению «Запрошенная операция требует повышения»).
Добавлено через 1 минуту
т.е. надо ещё саму runas запустить от админа сначала получается
Запуск от имени администратора
Запуская Far от имени администратора, но в диспетчере задач он виден как запущенный от.
Запуск программы от имени администратора
Добрый день. Как через bat файл запустить программу от локального администратора без ввода пароля.
Запуск программы от имени администратора
Добрый день! Такая ситуация. Работаю на фирме, компов не мало и у всех НЕТУ прав администратора.
Батник на Запуск программы от имени администратора
Подскажите пожалуйста : сотрудник работает с правами пользователя, нужно запустить из под.
Вы используете встроенную УЗ Администратора?
При установках UAC по умолчанию, код ниже должен осуществлять элевацию прав.
Это абсолютно точно работает под Windows 7
У меня ваше приложение(без вшитого манифеста) открывается с админскими правами, без запроса UAC
FlasherX, нет, гляну.
Я использую свою учётную запись. Я администратор.
Что значит «встроенная»? Что за УЗ?
Новые варианты посмотрю, спасибо
FlasherX, нет у меня такой учётной записи.
В ProfileList только
S-1-5-18
S-1-5-19
S-1-5-20
S-1-5-21-*-1001
И в последнем не «Администратор» в ProfileImagePath, а заданное мной имя пользователя.
Добавлено через 1 минуту
Собственно, и папки такой у меня нет в C:\Users.
Добавлено через 2 минуты
Собственно, на ВМ у меня есть Win7, там то же самое, только 0 на конце: S-1-5-21-*-1000.
И в Win10 на ВМ то же аналогично.
Никаких «Администраторов» нигде нет.
Встроенная учетная запись «Администратор» с относительным идентификатором безопасности (RID) 500 по умолчанию в большинстве случаев теперь отключена. Изначально подразумевалось, что эта учетная запись будет использоваться только в крайних случаях. Она предназначалась для восстановления системы и данных в случаях, когда все остальные способы оказались безуспешны. Однако очень часто она используется в качестве обычной административной учетной записи, что нарушает несколько принципов безопасности. Самым главным из этих принципов является принцип отслеживания и определения ответственности. В случае использования упомянутой учетной записи невозможно отследить, кто именно совершал изменения в системе. Поэтому использование этой учетной записи не приветствовалось. Возможно, в дальнейшем в корпорации Майкрософт будет принято решение полностью отказаться от этой учетной записи, на сегодняшний же день ее сделали отключенной по умолчанию. В случае если в группе «Администраторы» кроме этой учетной записи больше нет других членов, возможно использование идентификатора RID 500 в консоли восстановления и в безопасном режиме, но в остальных случаях его невозможно и не нужно использовать.
Jin X, Кстати, я вот тут намедни вспомнил, что при запуске от встроенной учетки «Администратор» запрос UAC не будет появляться.
Можно поколдовать, с планировщиком и запуском Exe-файла через Powershell c передачей админских данных.
Если интересно могу подсказать как сделать!
Во всех остальных случаях, наверняка придется использовать дополнительное ПО.
Хотя нет, еще я предлагал вариант с сервисом, который будет запускать ваш EXE-файл
В этом случае, нужно написать сервис, который будет брать свой маркер безопасности, делать его дубликат, и с этим дубликатом запускать Exe-файл.
Но, здесь предварительно нужно будет отлавливать вход в систему, коли приложение оконное.
Я так делал, но уже достаточно давно.