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

Бывают моменты, когда программа требует прав администратора для запуска. В случае если метод runasinvoker не помог, есть еще один, менее безопастный вариант.

Для этого можно использовать команду runas с сохранением пароля администратора на компютере.

runas /user:пользователь /savecred путь к программе

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

Пользователь передается в формате domain\user. Если ваш компьютер в домене и права есть у пользователя домена (допустим имя домена mymemos а имя пользователя admin) то формат будет следующий : mymemos\admin

В случае использования компютера вне домена, или использования локальной записи то формат должен быть следующий (допустим имя компютера mypc а имя пользователя admin) : mypc\admin

Для примера мы будем использовать учетную запись mymemos\admin. А программа которую надо запустить с правами администратора находится в C:\1\1.exe

При первом запуске командная строка попросить ввести пароль к этому пользователю. Пароль будет сохранен в windows credential store и при следующем запуске вводить пароль не потребуется.

До windows 10 1803 можно было использовать команду

runas /user:mymemos\admin /savecred "C:\1\1.exe"

Однако теперь можно столкнуться с ошибкой

RUNAS ERROR: Unable to run - C:\1\1.exe
740: The requested operation requires elevation.

Это связано с политикой : User Account Control: Admin Approval Mode for the Built-in Administrator account. Что бы не отключать эту политику, команду необходимо изменить на :

runas /user:mymemos\admin /savecred "cmd /c Start /B C:\1\1.exe"

Можно создать cmd фаил с этой командой. Рекомендую это делать во время отладки, и ставить после этой команды pause, для ловли ошибок. После того как команда работает корректно, можно создать просто ссылку где и прописать эту команду. Для удобства пользователя можно поменять иконку.

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

Минусы этого метода: пароль от учетной записи администратора постоянно сохранен в windows credential store и продвинутый пользователь с помощью командной строки и той же команды runas сможет запустить на компютере любую программу с правами администратора.

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

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