В работе любого системного администратора иногда встаёт задача запуска программы от имени другого пользователя. В *NIX системах с этим всё просто. А как с этим делом в операционных системах семейства Windows?
Начиная с Windows 2000 в этой ОС появилась новая служба "RunAs". С её помощью провести запуск программы от имени другой учетной записи довольно легко и любой, кто хоть чуть интересовался этим, мог самостоятельно разобраться что к чему: нажимаешь Shift (в Windows 2000) + щелкаешь мышью по программе или ярлыку и выбираешь пункт меню "Запуск от имени...", указываешь нужные логин и пароль и - вуаля - программа запускается с правами другого пользователя. Просто и удобно. Для особых ценителей есть и консольный вариант программы:
C:\>runasИспользование команды RUNAS:
RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
/user:<имя пользователя> <программа>
RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
/smartcard [/user:<имя пользователя>] <программа>
/noprofile Не загружать профиль пользователя. Это приводит к более
быстрой загрузке приложения, но может стать причиной
неправильной работы некоторых приложений./profile Загружать профиль пользователя.
Этот параметр установлен по умолчанию./env Использовать текущие параметры среды.
/netonly Учетные данные предназначены только для удаленного
доступа./savecred Использовать учетные данные, сохраненные пользователем.
Этот параметр не доступен в Windows XP Home Edition
и будет проигнорирован./smartcard Для указания учетных данных используется
смарт-карта./user <имя пользователя> должно быть в виде USER@DOMAIN или DOMAIN\USER
<программа> Командная строка для EXE. См. примеры ниже.
Примеры:
> runas /profile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad \"Мой файл.txt\""Примечание: вводите пароль пользователя только тогда, когда он запрашивается.
Примечание: формат записи USER@DOMAIN несовместим с параметром /netonly.
Примечание: параметр /profile несовместим с параметром /netonly.
Но вот вам другая задача: как сделать так, чтобы программа всегда запускалась от некоего определенного имени? Как видно из листинга, такого параметра, как "пароль", нет. RunAs всегда запускается интерактивно, что вполне объяснимо с точки зрения безопасности.
Можно попробовать поизголяться с командной строкой и перенаправлением вывода, типа:
c:\>echo passwd | runas /user:MyUser CoolProgram.exe
но у меня в Windows XP SP2 этот фокус не прошел - программа запускалась от моего имени.
Но выход, конечно, есть. И имя ему CPAU. При помощи этой замечательной проги можно значительно расширить функционал RunAs.
Command line tool for starting process in alternate security context. Basically this is a runas replacement. Also allows you to create job files and encode the id, password, and command line in a file so it can be used by normal users.
или по-русски в моём переводе:
Утилита командной строки для запуска процесса с другим контекстом безопасности. В основном это замена runas. Также позволяет создавать командные файлы и шифровать идентификатор, пароль и команду запуска в файле, также может быть использована обычными пользователями.
Вот например, чтобы запустить CoolProgram.exe от имени пользователя MyUser с паролем passwd, нужно:
cpau -u MyUser -p passwd -ex "C:\Path\to\CoolProgram.exe" -lwop
Другие примеры можно найти, запустив справку:
cpau | more
В общем, утилита из разряда "admin tools". Рекомендую.
Ах да! Скачать программу можно отсюда.

Captain Flint
Говорят, если запихнуть пароль в файл (например, passwd.txt), и сделать так:
c:\> runas /user:MyUser CoolProgram.exe < passwd.txtто всё должно заработать. Но надо проверять.
У меня на Win2k SP4
У меня на Win2k SP4 это не сработало.
runas /savecred
Для виндов выше WinXP Home Ed. сработает такой вариант:
runas /savecred /user:DOMAIN\MyUser CoolProgram.exeПри первом запуске будет запрошен пароль и сохранен где-то в недрах винды. При последующих запуска этой команды прога будет запущена от имени сохраненного пользователя.
Прошу обратить внимание, что использование подобного приема запуска программ по сути является дырой в системе безопасности Вашей системы.
Здарова
И что не говорите, а Google лучший поисковик в мире!
Эт к чему? Гугол подсказал
Эт к чему? Гугол подсказал линк на пост? :)
Отправить комментарий