Приветствую! Я тружусь администратором на благо нашей родины в крупном государственном медицинском учреждении.
После появления у нас на работе компьютеров с IE7 и IE8, мы, как и многие столкнулись с проблемой запуска эксплорера и нужных оснасток от имени администратора. Классический runas перестал работать =( Т.е. при запуске из командной строки — не открывается вообще ничего, а при запуске Internet Explorer через контекстное меню «Запуск от имени...» открывается только сам IE. В результате, чтобы выполнить какие-либо административные действия, приходится завершать сеанс и залогиниваться под администратором. Что долго и неудобно.

На помощь мне пришла простая и очень удобная программка AdminRunner, написанная моим знакомым Крюковым Алексеем Анатольевичем.
С его позволения расскажу и покажу как она работает.

Программа состоит из двух частей: AdminLoader и AdminRunner.

ADMIN LOADER


Выполняет 2 вспомогательные задачи:
1. Реализует мониторинг нажатия горячей клавиши для вызова диалога ввода пароля (как правило администраторского, но необязательно)
2. Загружает основную программу AdminRunner.

Чтобы обеспечить ее запуск при регистрации пользователя, можно поместить ярлык в автозагрузку компьютера или запускать ее при помощи групповой политики. Важно отметить, что программа должна запускаться под правами пользователя, а не под системными правами. Это необходимо для регистрации глобальной комбинации горячих клавиш.

Рассмотрим вариант с использованием групповой политики.
Для начала, нужно скопировать AdminLoader на локальный диск хоста под правами администратора, а затем запустить его под правами пользователя.
Для этого нужно создать политику и для копирования запускать из нее пакетный файл AdminLoaderCopy.bat (рис.1) под правами системы, а для запуска использовать файл AdminLoaderRun.bat (рис. 2).

рис. 1
рис. 1

рис. 2
рис. 2

В моем случае, в C:\Windows создается папка AdminRunner и в нее копируются AdminLoader.exe и AdminLoader.ini, после чего происходит запуск AdminLoader.exe из под пользователя.

AdminLoaderCopy.bat
md %windir%\AdminRunner
xcopy /y /d \\MYSERVER\NETLOGON\control\AdminLoader\AdminLoader.exe %windir%\AdminRunner\
xcopy /y /d \\MYSERVER\NETLOGON\control\AdminLoader\AdminLoader.ini %windir%\AdminRunner\


AdminLoaderRun.bat
start %windir%\AdminRunner\AdminLoader.exe
pause


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

После настройки автозапуска загрузчика (AdminLoader.exe) необходимо настроить путь к загружаемой им программе. В принципе, это может быть любая программа, но в нашем случае это будет программа AdminRunner.exe. Нужно разместить ее на сервере в отдельном каталоге. Настройка производится при помощи файла AdminLoader.ini. Можно открыть его при помощи текстового редактора и изменить параметры.

AdminLoader.ini
[MAIN]
AppRemoteFileName=\\MYSERVER\NETLOGON\control\AdminRunner\AdminRunner.exe
AppLocalDir=%windir%\AdminRunner

LoginName=admin@domain.ru

key=F9
mod1=SHIFT
mod2=CONTROL
mod3=ALT


AppRemoteFileName — указывает на место хранения файла AdminRunner.
AppLocalDir — указывает на директорию, в которую будут скопированы файлы AdminRunner.
LoginName — пользователь, из под которого будет запущен AdminRunner.
key, mod1, mod2, mod3 — клавиши, нажатие которых будет запускать AdminRunner.

Хочу отметить, что из директории, в которой находится файл AppRemoteFileName будут скопированы все файлы в директорию AppLocalDir. Что очень удобно, т.к. при изменении или добавлении нужных файлов на сервере, они будут синхронизированы на клиенте.

Теперь, если все сделано правильно и программы AdminLoader и AdminRunner и необходимые им файлы располагаются на сервере в отдельных каталогах, то после загрузки компьютера программа AdminLoader скопируется на локальный компьютер и запустится. Нажав заданную в AdminLoader.ini комбинацию клавиш, на экране появится диалоговое окно для ввода имени пользователя и пароля (рис. 3). Соответственно, это должен быть пользователь, обладающий администраторскими правами на клиентских машинах.

рис. 3
рис. 3

Если имя и пароль введены правильно, то AdminRunner будет синхронизирован с сервером и запущен (рис. 4).
Хочу отметить, что в случае если версия основной программы, находящейся на сервере и на локальной машине идентичны, то копирования производится не будет.

рис. 4
рис. 4

ADMIN RUNNER


После запуска программа сканирует директории, которые заданы в файле настроек Runner.ini параметром ScanDirs.
Параметр ScanMasks — определяет маску сканируемых файлов.
Параметр RecurseScan — определяет необходимость рекурсивного сканирования директорий. Русским языком, необходимость сканирования всех подкаталогов.
Параметр MaxViewSize — определяет размер в килобайтах просматриваемых внутренним просмоторщиком файлов. Если файл больше заданной этим параметром величины, то он просматриваться не будет.
Параметр HotKey — определяет комбинацию горячих клавиш для отображения и скрытия программы. Параметр задействуется только в случае, если параметр RegHotKey=1. При нажатии на кнопку «Hide нах», в случае если вышеуказанные параметры определены, программа прячется из панели задач и отобразить ее можно только при помощи комбинации заданных горячих клавиш.

Runner.ini
[Options]
ScanMasks=*.bat *.exe *.vbs *.msc *.cmd
ScanDirs=\\server-dc\netlogon\control
RecurseScan=1
MaxViewSize=100
HotKey=Shift+Ctrl+Alt+F12
Top=50
Left=50
RegHotKey=0


Все параметры можно задать непосредственно из программы, через вкладку Options (рис. 5). Для сохранения измененных значений незабываем нажать кнопку «Save setting».

рис. 5
рис. 5

Файл cmd_list.ini содержит список часто используемых путей. Пути необходимо добавить вручную. Затем этот список можно увидеть в выпадающем списке, находящемся внизу главного окна (рис. 4), под надписью «Run program or define dir:». Изначально это видимо было сделано, чтобы открывать explorer в нужном месте и под админскими правами, но с IE7, IE8 данная фича к сожалению не работает. Максимум, что получилось добиться от нее — это запуск командного интерпритатора «cmd» под правами админа. Для этого нужно подправить пакетный файл iexplore.bat — именно он выполняет запуск программы с параметром.

Как видно из рисунка 4, я создал cmd файлы для запуска нужных мне оснасток и утилит настройки. «Управление компьютером», «Установка и удаление программ» и прочие запускаются при помощи команд rundll32. Вот тут я выложил список наиболее востребованных из них, а тут сами cmd файлы, если кому-то лень писать их. Естественно, Вы можете добавлять на сервер нужные Вам программы, скрипты и утилиты.

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

рис. 6
рис. 6

На этом пожалуй всё. Надеюсь кому-нибудь пригодится! =)
Удачи!