Команда 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