В работе любого системного администратора иногда встаёт задача запуска программы от имени другого пользователя. В *NIX системах с этим всё просто. А как с этим делом в операционных системах семейства Windows?
RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
C:\>runas
Использование команды RUNAS:
/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