Команда RunAS используется для запуска приложения под учетной записью пользователя, имя которого передается в качестве параметра командной строки. В Windows 7, и более поздних, данная команда, при стандартных настройках безопасности, не позволяет получить администраторские привилегии, как это происходит в режиме «Запустить от имени Администратора». Для запуска приложения от имени администратора потребуется выполнение некоторых настроек системы.

1. Описание команды RUNAS.

1.1. Формат командной строки RUNAS:

RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ] /user:имя пользователя программа

RUNAS [ [/noprofile | /profile] [/env] [/savecred] ] /smartcard [/user:имя пользователя] программа

RUNAS /trustlevel:уровень доверия программа

1.2. Параметры командной строки:

  • /noprofile — Не загружать профиль пользователя. Это приводит к более быстрой загрузке приложения, но может стать причиной неправильной работы некоторых приложений.
  • /profile — Загружать профиль пользователя. Этот параметр установлен по умолчанию.
  • /env — Использовать текущие параметры среды.
  • /netonly — Учетные данные предназначены только для удаленного доступа.
  • /savecred — Использовать учетные данные, сохраненные пользователем. Этот вариант не доступен в выпусках Windows 7 Домашняя или Windows 7 Начальная и будет проигнорирован.
  • /smartcard — Для указания учетных данных используется смарт-карта.
  • /user — имя пользователя должно быть в виде USER@DOMAIN или DOMAIN\USER
  • /showtrustlevels — Отобразить список уровней доверия, которые можно использовать в качестве аргументов параметра /trustlevel.
  • /trustlevel — Значение «уровень доверия» должно быть перечислено в списке уровней доверия.
  • программа — Командная строка для EXE. См. примеры ниже.

2. Примеры.

2.1. Запустить интерпретатор команд cmd.exe от имени пользователя «administrator» компьютера «mymachine»:

C:\ runas /user:mymachine\administrator cmd.exe

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

2.2. Запустить консоль mmc с оснасткой «Управление дисками» от имени пользователя «admin» в домене «mydomain»:

C:\ runas /noprofile /env /user:mydomain\admin " mmc %windir%\system32\diskmgmt.msc "

Профиль пользователя не загружается, и используются текущие переменные среды. Загрузка профиля пользователя необходима только тогда, когда будет выполняться задача, которой требуются какие-либо данные из него. Если задан параметр «/env» то переменные окружения наследуются из среды текущего пользователя.

2.3. Запустить редактор реестра «regedit.exe» от имени пользователя «admin» домена «mydomain» с запоминанием введенного пароля.

C:\ runas /savecred /user:admin@mydomain regedit.exe

При наличии параметра «/savecred», введенный пароль запоминается в реестре в зашифрованном виде и в дальнейшем запрашиваться не будет .

2.4. Отобразить уровни доверия, существующие в системе.

C:\ runas /showtrustlevel

В ответ будет отображаться перечень в виде:

В системе доступны следующие уровни доверия:
0x20000 (Обычный пользователь)

Кроме значения trustlevel равного 0x20000 можно пользоваться значениями 0x10000, соответствующему минимальному набору привилегий и 0x40000, стандартному для данного пользователя набору. Для просмотра отличий разных уровней доверия можно воспользоваться командой Whoami, выполняя ее в сеансе командного процессора, запускаемого с каждым из уровней trustlevel

2.5. Запустить командный процессор cmd.exe с использованием уровня доверия, полученного в предыдущем примере:

C:\ runas /trustlevel:0x20000 cmd.exe

2.6. Запустить командный процессор cmd.exe с использованием стандартного уровня доверия:

C:\ runas /trustlevel:0x40000 cmd.exe

Примечание: в сеансе командной строки, запущенной с использованием параметра /trustlevel, список привилегий соответствующий каждому уровню доверия можно получить с использованием команды whoami /priv, а полные сведения об учетной записи — whoami /ALL. Параметр /profile несовместим с параметром /netonly. Параметр /savecred несовместим с параметром /smartcard .

2.7. Для запуска приложений от имени администратора с использованием runas.exe необходимо изменить стандартные настройки безопасности системы:

  • включить учетную запись Администратора ( по умолчанию, она отключена);
  • задать пароль для пользователя Администратор;

2.8. Для проверки наличия прав администратора использовался командный файл с именем who-admin.bat следующего содержания:

@echo OFF

WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege"

if %ERRORLEVEL% == 0 goto admin

echo NOT have admin rights!

pause

exit

:admin

ECHO !!! ADMIN !!!

pause

Принцип анализа привилегий основан на использовании команды whoami с параметром /priv. В зависимости от наличия прав администратора, командный файл выводит сообщение «NOT have admin rights!», или — «!!! ADMIN !!!» и ожидает нажатия клавиши на клавиатуре. Подробности найдете в описании команды whoami по ссылке из полного списка команд.

2.9. Запуск от имени администратора командного файла who-amdmin.bat, находящегося в папке C:\scripts:

C:\ runas /savecred /user:Администратор C:\scripts\who-amdmin.bat

При первом запуске будет запрошен пароль Администратора, при последующих запусках ( с параметром /savecred ) — ввод пароля не требуется.

Пароли, запоминаемые при использовании утилиты RUNAS.EXE с параметром /savecred можно изменить или удалить с помощью оснастки управления сохраненными паролями:

%systemroot%\system32\rundll32.exe" keymgr.dll,KRShowKeyMgr

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

Для управления сохраненными учетными записями в командной строке Windows используется утилита CMDKEY.EXE