artemk [more=Дополнительно]
Использование AdmiRun в пакетном режиме
Программа AdmiLink и AdmiRun вообще-то создавались для высокозащищенных систем, где пользователь, запускающий ярлыки под администратором, не должен ни при каких обстоятельствах узнать его пароль или запускать посторонние программы. При этом ярлык хранит зашифрованный ключ, сгенерировать который можно только с помощью программы AdmiLink и только в интерактивном режиме.
А вот как быть с командным режимом, когда надо запускать разные программы под разными пользователями, а вопрос защиты не стоит так остро? Ну, например:
•Ваша основная программа (например, программа управления измерительной системой) работает (благодаря ярлыку AdmiLink) под Администратором. Вы хотите, чтобы по какой-то кнопке запускался, скажем, Internet Explorer, но из соображений безопасности Вам надо, чтобы он запускался под ограниченным пользователем, то есть с пониженными правами. Скрывать пароль в этом случае вообще не нужно - пользователь и так знает свой пароль. RunAs не поможет: там передача пароля в командной строке невозможна, есть только интерактивный режим. Правда, можно использовать ключ SaveCred, но это не очень надежный способ - пароли, сохраненные SaveCred, можно легко очистить, и все перестанет работать. Лучше передавать учетную запись явно.
•Другой случай. Допустим, Администратору домена надо запускать (со своей машины!) разные командные скрипты, работающие под кучей разных пользователей, при этом, поскольку скрипты находятся на машине администратора, защита паролей в общем-то необязательна.
•Другой случай - запуск скриптов для администрирования клиентских компьютеров с Flash-диска, когда скрипты пользователю недоступны и автоматически исчезают при отключении Flash-диска.
Ну, для таких задач одно время я использовал cpau.exe, а потом подумал - зачем? И добавил в AdmiRun ключики, позволяющие делать практически то же самое, что умеет cpau.exe (только лучше
.
Ключ -u+ позволяет отключить шифрование учетной записи (пользователя, домена и пароля). При этом "секретный ключ" передается в URL кодировке и должен иметь вид:
user%0d%0adomain%0d%0apassword
user - имя пользователя
domain - домен
password - пароль
%0d%0a - разделитель (CR,LF)
Например, пользователь bilbo в домене shire с паролем ring может использовать ключ типа
admirun -u+ bilbo%0d%0ashire%0d%0aring c:\Game\Lord.exe
Не буду углублять эту тему - кто знает, что такое URL кодировка - разберется, кто не знает - тому и не положено пользоваться такими штуками. Кстати, в AdmiLink есть URL кодировщик, которым всегда можно воспользоваться. Надо лишь помнить, что символы пробелов, а также +, % обрабатываются специальным образом. Еще полезно знать, что для запуска под текущим пользователем достаточно указать ключи "admirun -u+ + ...", так как плюс заменится на пробел и получится пустой "секретный ключ", который интерпретируется как текущий пользователь.
Ключ -s+ позволяет отключить интерактивные сообщения (диалоговые окна), которые появляются в случае ошибки запуска программы. Этот режим удобен для командного режима, чтобы лишние сообщения не болтались на экране. В командных файлах лучше анализировать код возврата, чем лицезреть всякие там окна.
Ключ -d0, -d1, ... -d10 позволяет запускать программу в различных режимах:
•-d0 - Запуск программы без окна.
•-d1 - Запуск программы с нормальным окном.
•-d2 - Запуск программы с минимальным (свернутым) окном.
•-d3 - Запуск программы с максимальным (развернутым) окном.
•-d4 - Запуск программы с неактивным окном (текущее окно не теряет фокус).
•-d5 - Запуск программы с нормальным окном.
•-d6 - Запуск программы с минимальным (свернутым) окном.
•-d7 - Запуск программы с минимальным и неактивным окном.
•-d8 - Запуск программы с нормальным окном.
•-d9 - Запуск программы с нормальным окном.
•-d10 - Запуск программы с нормальным окном.
Подробнее смотрите константы SW_SHOW... в документации по "mustdie32".
В программе AdmiLink перечисленные ключи не используются, так как они ориентированы на режим командной строки и командных файлов.
Примеры:
--Запуск Notepad (Minimized) под текущим пользователем
admirun -d2 -u+ + c:\windows\system32\notepad.exe
--Запуск Notepad (Maximized) под localhost\root с паролем boss, с подавлением сообщений об ошибках
admirun -d3 -s+ -u+ root%0d%0alocalhost%0d%0aboss c:\windows\system32\notepad.exe[/more]
Добавлено: А вообще: TeamViewer, «и делай с ним что хошь»