![]() |
Удаленный запуск HTA-приложения от имени текущего пользователя
День добрый!
Имеем HTA-приложение (анкета) заполняющее несколько атрибутов в Active Directory для объекта пользователя, запустившего анкету. В AD на эти несколько аттрибутов розданы права на запись для "NT AUTHORITY\SELF" (т.е. каждый юзер может менять только собственные аттрибуты). Все отлично работает, если анкета запускается через logon-script (как и было задумано). Некоторые пользователи упорно игнорируют заполнение анкеты, не завершают сеанс месяцами, либо из-за сбоев в домене к ним не применяется групповая политика . Хочется форсировать запуск у самых упорных, т.е. как имея права администратора на рабочей станции, запустить программу от имени и в сеансе обычного пользователя. P.S. Сразу скажу что задача не столь тривиальная (psexec/runas/schtask - все хотят пароль учетной записи), как многим может показаться, т.к. пароль пользователя мне не известен и узнавать его нет смысла - пользователей более 300 душ. |
Как-то решал похожую задачу: требовалось отследить компьютеры, которые не перезагружаются больше месяца и вынудить пользователя перезагрузить компьютер, причем это должен был сделать именно пользователеь, чтобы потом не было жалоб на потерянные данные.
Выход нашел только один: 1. Написал приложение, которое в System Tray каждые 15 минут показывает облако, что нужно перезагрузить компьютер. 2. Руками (или скриптом) ставил его в планировщик на запуск один раз через 3 минуты от создания задания с режимом интерактивности (чтобы пользователь видел уведомления). 3. Как только приложение запускается, пользователь около часов видит иконку, и каждые 15 минут ему вываливается предупреждение, что компьютер нуждается в перезагрузке. 4. Как только компьютер перезагружен, задание пропадает и пользователь больше не уведомляется, что он давно не перегружал компьютер. Потом усовершенствовал программу и поставил ее как сервис, который время от времени проверяет как долго компьютер не перезагружали и, если требуется, появляется в System Tray. Но решение не прижилось, так как нужно было брать на себя отвественность за стабильность программы, дорабатывать ее и т.п., а времени на это нет - я администратор, а не программист. Итак, к чему все это рассказал. У нас в компании адресная книга тоже заполняется через HTA-приложение, которое запускается при логоне пользователя с определенными проверками (не чаще, чем раз в месяц, чтобы не нервировать пользователей). А так как нельзя запустить приложение от имени пользователя, не зная его пароля, то только и остается, что заставить его перезагрузить компьютер и применить доменные политики. Вот скрипт, как постваить программу-уведомлялку в планировщик удаленного компьютера. Но скажу сразу, что, возможно, тут что-то напутано с определение времени запуска команды. Я потом его переделывал. Если интересно, то последняя версия скрипта вот тут Выполнение команды на удаленном компьютере. Код:
set oShell = createobject("wscript.shell") |
Время: 16:32. |
Время: 16:32.
© OSzone.net 2001-