Как запустить программу от имени администратора без прав администратора
Перейти к содержимому

Как запустить программу от имени администратора без прав администратора

  • автор:

Запуск программ от админа без прав админа

Имеются много учётных записей объединённых в группу usersgroup с правами обычного пользователя. Им нужно запускать программы которые требуют права Администратора, но назначать их в группу Администраторов не желательно.
Как сделать так, что бы они могли запускать программы от имени администратора без прав администратора??
Программы типа runas, AdmiLink и т.п не подходят, потому что они разрешают запускать программы от имени администратора без прав под конкретной учётной записью, а мне нужно для группы учётных записей так как учёток очень много.

Отслеживать
user262779
задан 18 фев 2017 в 2:30
521 1 1 золотой знак 11 11 серебряных знаков 23 23 бронзовых знака
Какая версия windows?
18 фев 2017 в 2:33
Подойдет ли Sudo for windows ?Пользователей просто нужно запихать в локальную группу Sudoers.
1 апр 2019 в 2:03

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Понимаю что некропостинг, но больно уж чудная задачка (ставьте ударение куда хотите %) ).

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

В принципе, в случаях, когда доменному пользователю нужны права администратора для некоторого рабочего набора программ, его проще всего поместить в группу «Локальные администраторы» конкретной рабочей станции. Таким образом, пользователь сможет навредить только своему компьютеру и почти(!) не способен навредить домену в целом.

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

Чаще всего требование повышенных привилегий связано с записью на диск в защищаемые системой папки, вроде Program Files или корень системного диска. Обычно это касается старых программ. В таком случае можно настроить права папки в которую установлена программа, чтобы в нее могли писать обычные пользователи.

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

Плохой вариант — создать BAT-файл, в котором прописать запуск от имени локального администратора. Плохой он тем, что BAT-файл это обычный текст и вы собственноручно сообщаете пользователю учетные данные локального администратора. При этом выдать права локального администратора явно — проще и более безопасно, т.к. их в нужный момент можно и отобрать.

Плохой и сложный способ — написать к каждой программе лаунчер, который будет запускать программу в отдельном процессе от имени нужного пользователя. Проблема заключается в том, что лаунчер должен каким либо способом получать данные нужной учетной записи для запуска процесса, а то это в целом не слишком отличает данный способ от BAT-файла по надежности и безопасности, зато на несколько порядков сложнее в реализации.

Неудобный вариант 1 — с помощью системного планировщика задач можно запускать указанные программы автоматически, например при логине пользователя. Да, в планировщике необходимо будет указать от чьего имени должна быть запущена программа, но эти данные не хранятся в открытом виде и получить их будет существенно сложнее (если вообще возможно, т.к. планировщик работает с системными правами и значит ему нужен только дескриптор пользователя, а его логин и пароль ему без надобности, но это только теория, глубоко не копал). Минусы данного подхода в том, что настройку нужно делать на конкретных рабочих станциях индивидуально и если пользователь закроет программу, то заново запустить ее он не сможет, для этого ему потребуется выйти из системы и зайти снова. К тому же, если мне не изменяет память, системный планировщик не умеет различать какой именно пользователь залогинился.

Неудобный вариант 2 — использовать logon-скрипты в групповой политике. С одной стороны все здорово, мы просто молча запускаем программу при логине пользователя обычным BAT-файлом и не раскрываем информацию о его содержимом (во всяком случае необходимо обладать некоторой квалификацией чтобы ее получить, а если пользователь обладает необходимой квалификацией — ему проще дать локального администратора). С другой стороны имеем часть недостатков из Неудобный вариант 1 и необходимость разместить учетки пользователей в одном OU в Active Directory, для применения групповой политики только к этим пользователям.

Как запустить программу или игру от имени Администратора в Windows 10

Как запустить программу от имени администратора

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

В этой инструкции подробно о том, как запустить любую игру или программу как Администратор в Windows 10 различными способами.

  • Запуск игр и программ как Администратор
  • Видео инструкция
  • PsExec и NirCmd

Способы запуска программы как Администратор

Учитывайте, что для возможности выполнения описанных далее шагов, ваша учётная запись должна иметь соответствующие права администратора в системе или, при их отсутствии, вам потребуется ввести пароль такой учётной записи. Также будьте осторожнее с запуском малоизвестных вам программ от администратора (так как тем самым вы им даёте права на почти любые изменения в системе), предварительно проверьте такую программу на вирусы онлайн.

В Windows 10 возможны разные методы запуска программ и игр от имени Администратора, по порядку рассмотрим их все.

  1. Если ярлык программы или её исполняемый EXE файл находятся в известной вам папке или на рабочем столе Windows 10, просто нажмите по такому ярлыку правой кнопкой мыши и выберите пункт «Запуск от имени Администратора». Запуск от Администратора в контекстном меню
  2. Для запуска программы от имени администратора из меню Пуск, нажмите по значку такой программы правой кнопкой мыши, выберите пункт «Дополнительно» и нажмите по пункту «Запуск от имени Администратора». Запустить как Администратор в меню Пуск Windows 10
  3. Один из самых простых способов запуска ПО с повышенными правами — использование поиска в панели задач: набираем в поиске название программы и, если она была найдена, нажимаем по результату правой кнопкой мыши и выбираем пункт контекстного меню «Запуск от имени администратора». Для некоторых программ (например, командной строки) такой пункт будет отображаться в панели справа от результата поиска. Запустить от Администратора в поиске Windows 10
  4. Если значок программы, которую нужно запустить от администратора находится только в панели задач, способов прямого запуска из этого расположения я предложить не могу, но знайте, что эти ярлыки фактически находятся в папке (просто вставьте этот путь в адресную строку проводника и нажмите Enter)
%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

Как сделать, чтобы программа или игра всегда запускалась с повышенными правами

Если вы не хотите каждый раз проделывать описываемые действия и требуется, чтобы выбранная программа или игра всегда запускалась от имени администратора, вы можете сделать следующее:

Всегда запускать программу от Администратора

  1. Нажмите правой кнопкой мыши по ярлыку или значку (исполняемому файлу) и откройте пункт «Свойства».
  2. Откройте вкладку «Совместимость» и отметьте пункт «Запускать эту программу от имени администратора», затем примените настройки.

И ещё один момент: значки некоторых программ имеют изображение щита в правом нижнем углу — такие программы всегда запускаются с правами администратора: это необходимое условие для их работы, заданное разработчиками.

Видео инструкция

Запуск программ с правами администратора и не только с помощью PsExec или NirCmd

Например, с помощью psexec, мы можем запустить программу от имени администратора (в том числе из bat-файла) без запроса контролей учётных записей следующим образом (первый вариант для запуска от имени Администратора программы, не требующей повышения прав по умолчанию, второй — для программ, которым это требуется, например, regedit­):

psexec -u Администратор -p password путь_к_program.exe psexec -u Администратор -p password "cmd.exe" /c start путь_к_программе_с_запросом_uac

Запуск от имени администратора в PsExec

Это лишь примеры, не рекомендую такое применение. Для работы приведённой команды встроенная учётная запись администратора локального компьютера должна быть активна и иметь пароль (в команде — password), иначе потребуются дополнительные настройки локальной политики безопасности. Существуют и иные варианты реализации необходимых действий в psexec, включая запуск программ от имени системного аккаунта и не только. Ещё одна утилита командной строки с иными возможностями, но также позволяющая выполнить запуск приложения с повышенными правами ­— NirSoft NirCmd.

А вдруг и это будет интересно:

  • Лучшие бесплатные программы для Windows
  • Лучшие редакторы контекстного меню для Windows
  • Дополнительные возможности в Windows 11 OOBE при установке
  • Ошибка 0x80070522 Клиент не обладает требуемыми правами — как исправить?
  • Компьютер не включается или черный экран после установки оперативной памяти
  • Автоматическая установка нескольких программ в Windows 11 и 10
  • Windows 11
  • Windows 10
  • Android
  • Загрузочная флешка
  • Лечение вирусов
  • Восстановление данных
  • Установка с флешки
  • Настройка роутера
  • Всё про Windows
  • В контакте
  • Одноклассники

    Геннадий 24.12.2020 в 14:50

  • Dmitry 25.12.2020 в 08:29

Как установить и запустить программу без прав администратора на Windows 10

Как установить и запустить программу без прав администратора на Windows 10

Установка игр и приложений – это процесс, знакомый каждому владельцу ПК. Обычно инсталляция происходит через запуск EXE-файла, и вот здесь у пользователя могут возникнуть проблемы. Инсталлятор попросит выдать расширенные права, которых у текущего аккаунта может не быть. Поэтому важно понимать, как установить программу без прав администратора на операционной системе Windows 10.

Зачем обычному приложению могут понадобиться права администратора?

screenshot_1

После первого включения компьютер предлагает владельцу создать несколько учетных записей. Главная из них обладает правами администратора, и этот пользователь может вносить любые изменения в работу ПК. Но зачем подобного рода разрешения требуются безобидной программе или игре? Ответ на поставленный вопрос прост: расширенные полномочия требуются в том случае, если программа установлена на системный диск, где хранятся файлы ОС. В подобной ситуации обычному пользователю запрещается вносить изменения в логи и конфигурацию, а потому софт запрашивает административные права.

Как установить программу без прав администратора

screenshot_2

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

Выдача прав на папку с программой

  • Войдите в учетную запись администратора.
  • Запустите проводник.
  • Найдите папку «program Files».
  • Кликните по ней ПКМ.
  • Перейдите в «Свойства».

screenshot_3

  • Во вкладке «Безопасность» нажмите на кнопку «Изменить».

screenshot_4

  • Поставьте галочку напротив пункта «Полный доступ».
  • Сохраните новые настройки.

screenshot_5

Теперь для запуска и установки приложения через папку «Program Files» расширенные полномочия требоваться не будут. Но это не касается других каталогов, включая «Program Files (x86), в связи с чем рекомендуется еще раз проверить правильность выбора директории.

Запуск программы с учетной записи обычного пользователя

Если вы не можете получить доступ к административному аккаунту, то можете обойти ограничения через «Командную строку»:

  • Щелкните ПКМ по значку «Пуск».
  • Запустите КС.

screenshot_6

  • Введите запрос «runas /user:User_Name\administrator Program_Name.exe», где вместо «User_Name» будет указано название вашего профиля, а вместо «Program_Name.exe» установочный файл или файл запуска.
  • Нажмите на клавишу «Enter».

screenshot_7

Windows 10 предполагает, что пользователь без опыта не сможет воспользоваться командной строкой, а потому дает такую возможность изменения прав. Но, как вы могли убедиться, выполнить пару-тройку несложных шагов может любой владелец ПК.

Использование портативной версии программы

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

На заметку. Портативные версии ПО имеют в своем названии пометку «Portable».

screenshot_8

Попробуйте найти интересующую программу именно в таком виде и запустите ее привычным способом без помощи административного аккаунта. Просто дважды кликните ЛКМ по EXE-файлу, и прога откроется.

[Конспект админа] Что делать, если программа хочет прав администратора, а вы нет

К сожалению, в работе сисадмина нет-нет да и приходится разрешать пользователям запускать всякий софт с админскими правами. Чаще всего это какие-нибудь странные китайские программы для работы с оборудованием. Но бывают и другие ситуации вроде небезызвестного bnk.exe.

Выдавать пользователю права администратора, чтобы решить проблему быстро и просто, противоречит нормам инфобезопасности. Можно, конечно, дать ему отдельный компьютер и поместить в изолированную сеть, но — это дорого и вообще…

Попробуем разобрать решения, которые позволят и программу запустить, и безопасника с финансистом не обозлить.

Ну, и зачем тебе права?

Программа может запрашивать права администратора условно в двух случаях:

  1. Когда хочет получить доступ туда, куда «простым смертным» нельзя: например, создавать файлы в системных каталогах.
  2. Когда программу скомпилировали со специальным флагом «Требовать права администратора».

С первым случаем все понятно: берем в руки замечательную программу Марка Руссиновича Process Monitor, смотрим, что происходит, и куда программа пытается залезть:

Куда это лезет этот 7Zip?

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

Сложнее, если случай клинический, и так просто выдать права не получится: например, программа требует сильного вмешательства в работу системы вроде установки драйверов. Тогда придется придумывать всякий колхоз, про который речь пойдет в последнем разделе статьи. Пока подробнее освещу второй случай — когда стоит флажок.

Если сильно упростить, то в специальном манифесте программы (к слову, установщики — это тоже программы) могут быть три варианта запуска:

  • asInvoker. Программа запускается с теми же правами, что и породивший ее процесс (как правило, это explorer.exe c правами пользователя);
  • highestAvailable. Программа попросит максимально доступные пользователю права (у администратора появится окно с запросом повышения UAC, у пользователя — нет);
  • requireAdministrator. Программа будет требовать права администратора в любом случае.

Если разработчик твердо решил требовать права администратора, даже если они не нужны, то обойти это можно малой кровью.

Нет, не будет тебе прав

В системе Windows, начиная с Vista, появилась служба UAC, которая помимо прочего отвечает за запросы программ на повышение прав. Не все программы «переваривали» работу с этой службой. Поэтому в системе был доработан механизм совместимости приложений, позволяющий прямо задать программе ее поведение — запрашивать права или нет.

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

Рассмотрим пример с редактором реестра. Действительно, запуская regedit.exe под администратором, мы получаем запрос на повышение прав:

Запрос повышение прав.

Если же мы запустим редактор реестра из консоли, предварительно поменяв значение переменной среды __COMPAT_LAYER на:

set __COMPAT_LAYER=RUNASINVOKER 

То запроса UAC не будет, как и административных прав у приложения:

Бесправный редактор реестра.

Этим можно пользоваться, запуская программы батниками или добавляя контекстное меню через реестр. Подробнее читайте в материале How to Run Program without Admin Privileges and to Bypass UAC Prompt?

С конкретным примером такой неприятной программы можно столкнуться при загрузке классификаторов банков из 1С с сайта РБК по ссылке http://cbrates.rbc.ru/bnk/bnk.exe. Если обновление классификаторов отдается на откуп самим пользователям и нет возможности поменять загрузку на bnk.zip (а современные 1С это поддерживают), то приходится придумывать костыли. Ведь bnk.exe — самораспаковывающийся архив, в котором зачем-то прописано «Требовать права администратора».

Поскольку ярлычками тут обойтись не выйдет, ведь 1С сама скачивает файл и запускает его, то придется применять тяжелую артиллерию — Microsoft Application Compatibility Toolkit.

Документация к ПО, как обычно, доступна на официальном сайте, загрузить можно как часть Windows Assessment and Deployment Kit. Сам процесс решения проблемы несложен.

Необходимо поставить утилиту, запустить Compatibility Administrator и создать Application Fix в новой или имеющейся базе данных:

Создаем исправление приложения.

Имя и издатель значения не имеют. Имеет значение только расположение файла — тут нужно указать реальный проблемный bnk.exe (где он будет лежать на самом деле — не важно).

Далее необходимо в списке исправлений выбрать RunAsInvoker.

Выбираем нужный фикс.

Все остальное оставляем по умолчанию, сохраняем базу данных. Должно получиться примерно так:

Созданный фикс для bnk.exe.

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

Все становится хуже, если приложению действительно нужны права админа. Тогда добавление прав на системные объекты и исправления не помогают.

Ну ладно, держи права

Казалось бы, самым очевидным решением для запуска нашего странного ПО выглядит использование встроенной утилиты Runas. Документация доступна на сайте Microsoft.

Ну, посмотрим, что из этого выйдет.

runas /savecred /user:Администратор "C:\Program Files\7-Zip\7zFM.exe" 

Действительно, RunAs запустит 7zip с правами учетной записи «Администратор», спросит пароль и запомнит его. Потом ярлык с такой строкой запуска будет запускать 7zip под Администратором без вопросов.

)

Есть один существенный недостаток: пароль запоминается на уровне системы, и теперь, используя команду Runas, можно будет запускать абсолютно любую программу. Это мало чем отличается от прямого предоставления админских прав сотрудникам, так что использовать это решение не стоит.

Зато runas может быть полезен, когда сотрудник знает пароль администратора, но работает под ограниченной учетной записью (по идее так должен делать каждый системный администратор).

Если мы начали с консольных команд, то перейдем к более высокоуровневым скриптам. Интересное решение было предложено в статье «Планктонная Windows», где упомянутый выше Runas обвязывался js-скриптом и пропускался через обфускатор. У решения есть и очевидный минус — скрипт можно раскодировать.

Чуть более интересным методом в 2к20 являются возможности PowerShell и его работа с паролями. Подробнее можно почитать в материале «Защита и шифрование паролей в скриптах PowerShell».

Если вкратце: в PS работа с паролями производится через специальный тип данных SecureString и объект PSCredential. Например, можно ввести пароль интерактивно:

$Cred = Get-Credential 

Затем сохранить пароль в зашифрованном виде в файл:

$Cred.Password | ConvertFrom-SecureString | Set-Content c:\pass.txt 

И теперь использовать этот файл для неинтерактивной работы:

$username = "Domain\Администратор" $pass = Get-Content C:\pass.txt | ConvertTo-SecureString $creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $pass 

К сожалению, файл этот можно использовать только на том ПК, на котором его создали. Чтобы этого избежать, можно сделать отдельный ключ шифрования. Например так:

$AESKey = New-Object Byte[] 32 [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESKey) $AESKey | out-file C:\password_aes.key 

Теперь при помощи этого ключа пароль можно зашифровать:

$Cred.Password| ConvertFrom-SecureString -Key (get-content C:\password_aes.key )| Set-Content C:\pass.txt 
$pass = Get-Content C:\pass.txt | ConvertTo-SecureString -Key (get-content C:\password_aes.key) 

К сожалению, с безопасностью дела обстоят так же печально: утащить пароль не составляет трудностей, если есть доступ к файлу с ключом шифрования и зашифрованным паролем. Да, можно добавить обфускации и скомпилировать скрипт в .exe вместе с нужными файлами. Но нужно понимать, что это — полумеры.

В свое время я использовал для решения подобных задач свой любимый AutoIt, где компилировал скрипт с командой RunAs и радовался… До тех пор, пока не узнал, что AutoIt (особенно старых версий) декомпилируется на раз-два.

Другим интересным вариантом может быть применение назначенных заданий — если создать назначенное задание от админского аккаунта, пользователю для работы будет достаточно его запуска. К сожалению, для интерактивной работы с приложением это решение не подходит.

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

Пожалуй, одна из самых известных утилит — это AdmiLink, разработанная Алексеем Курякиным для нужд ядерной физики. Программа и принципы ее работы описаны на официальном сайте. Я, как обычно, позволю себе более краткое описание.

Программа состоит из трех модулей. AdmiLink — это графическое окно, где можно создать ярлык на нужное приложение (в принципе, в ряде случаев достаточно только его).

Основное окно программы.

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

Второй модуль называется AdmiRun и представляет из себя консольную утилиту. Она умеет запускать приложения от имени администратора, получив в качестве одного из параметров строку, созданную через AdmiLink. В строке шифруется имя пользователя и пароль, при этом участвует и путь к программе.

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

Третий модуль — AdmiLaunch — отвечает за запуск окон в разных режимах, и он используется для запуска AdmiRun, если создавать ярлык через AdmiLink.

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

RunAsRob — довольно интересное ПО за авторством немецкого разработчика Оливера Хессинга (Oliver Hessing). В отличие от AdmiLink, ПО устанавливается как служба, запускаемая под привилегированной учетной записью (администратора или системы). Как следствие, подготовленный ярлык обращается к службе, которая уже в свою очередь запускает заданное ПО.

Особенность программы в том, что есть возможность авторизовать не только программы, но и папки (включая сетевые). А хранение настроек в реестре позволило добавить шаблоны групповых политик, примерно как мы писали в статье «Погружение в шаблоны и приручение GPO Windows». Благодаря этому при необходимости настройки можно применять прямо из Active Directory.

Основное окно программы.

Программа богато документирована на официальном сайте.

У этого автора есть еще и программа RunAsSpc, позволяющая запускать исполняемые файлы под правами другого пользователя, передавая учетные данные через зашифрованный файл.

Мне остается только добавить, что это ПО бесплатно только для личного использования.

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

Запускаем cmd.exe прямо из редактора реестра.

Немного защититься помогут политики запрета контекстного меню и прочих диспетчеров задач, часть из которых может настроить AdmiLink. Но в любом случае следует быть осторожным.

А вам приходилось городить странные костыли? Предлагаю делиться историями в комментариях.

  • windows
  • ограничение прав
  • китайский софт
  • безопасность должна быть безопасной

Добавить комментарий

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