Что нового

Поиск универсального средства запуска скриптов при выключении.

yosemity

Новичок
Сообщения
9
Репутация
0
Задача в том, чтобы иметь универсальное средство запуска скриптов при выключении кампа вне зависимости от редакции ОС. В проф+ версиях выручают групповые политики, а как быть с хоум непонятно. Интересует XP/Vista/7.

Идеальной была бы возможность встроить свои сценарии во время завершения работы windows, на тот же этап, при котором в штатной ситуации устанавливаются обновления, т.е. когда выводится сообщение типа "установка обновлений 1 из 3, не выключайте компьютер."

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

Нарыл только это http://en.kioskea.net/faq/3358-execute-a-script-a-startup-and-shutdown
Автор, как я понял утверждает, что это работает for all editions, но в хомяке ничего не происходит и в логах пусто.

Есть идеи? Пока на ум приходит только подмена userinit.exe. затупил я, userinit конечно же не подходит, оно стартует после логона.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
yosemity
погугли, я помню находил как-то вариант как переделать home в pro с помощью нескольких твиков реестра и, возможно, установкой некоторых небольших утилит.
 
Автор
Y

yosemity

Новичок
Сообщения
9
Репутация
0
Kaster
Это неприемлемо, т.к. нарушает условия лицензионного соглашения. Во-вторых мне требуется средство не для одного компьютера.
 

VladUs

Скриптер
Сообщения
621
Репутация
180
yosemity
Посмотрите вот эту тему http://autoit-script.ru/index.php?topic=4304.msg31112#msg31112
Суть сводится к следующему. Скрипт работает и ожидает завершение работы windows.
Как только получен сигнал (сообщение) о завершении работы от Windows, скрипт высылает обратное сообщение (False) операционной системе, тем самым завершение работы приостанавливается. Далее запускается Ваш код, после выполнения которого, скрипт сам иницинирует завершение работы.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
yosemity
то есть в компании стоят XP Home? ;D
 
Автор
Y

yosemity

Новичок
Сообщения
9
Репутация
0
VladUs
спасибо за ответ, но я уже читал про такой вариант на англ форуме, он не устраивает ввиду того, что АвтоИТ пытается прервать завершение работы, а требуется чтобы система сама вызывала определенный сценарий и дожидалась завершения. Да и при таком варианте, у пользователя как я понимаю останется висеть раб стол (хотя сеанс можно и закрыть)

Сейчас пробую метод RunOnce при загрузке компьютера, вроде бы винХР хоум дожидается окончания выполнения скрипта

Kaster
В некоторых случаях да. Почему вы удивляетесь?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
yosemity [?]
Почему вы удивляетесь?
удивляюсь, потому что это не совсем обычно. не говорю, что невероятно, но удивления вызвать может.
 
Автор
Y

yosemity

Новичок
Сообщения
9
Репутация
0
Я пишу некий скрипт и мне важно чтобы он одинаково хорошо работал на любой современной винде.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
yosemity
как насчет вечного скрипта, который при получении WM_QUIT (а именно его шлет система всем запущенным приложениям) делает определенные, нужные тебе, действия. ну или можно повесить все на OnAtutoItExitRegister. если действий не много (с точки зрения выполнения скрипта, а именно меньше 25 сек, кажется) то должно сработать.
 
Автор
Y

yosemity

Новичок
Сообщения
9
Репутация
0
Kaster
Действий не то чтобы много, но они могут занимать продолжительное время, до нескольких минут.
Вообще, если честно, мне очень не нравится схема с резидентным процессом. Хочется использовать нативные средства, пусть не совсем очевидные и документированные, я уже писал, что вклиниться в этап установки обновлений было бы шикарно.

P.S. RunOnce дожидается окончания выполнения сценариев, но запускается после логона и если требуются права админа, то не работает под непривилегированным юзером. Фейл, ищу дальше.
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
А через реестр это настроить нельзя?
Сделать на про-версии, отследить при этом что изменялось и импортировать эти изменения куда надо.
 
Автор
Y

yosemity

Новичок
Сообщения
9
Репутация
0
Не понял, что "это" нужно настроить?

Отследить работу групповых политик? Так оно и так известно, только не работает на хоум версии.

Отследить работу установки обновлений при завершении работы системы? Оно работает и на хоум, можно следить и там, но вот только как? ProcessMonitor`ом от Русиновича я устал отлавливать нужные фильтры и смотреть сотни строк операций. Пока результата нет.

Мне просто интересно, не может быть, чтобы этим вопросом не задавались до меня.

Я пишу скрипт, который ставит приложения в тихом режиме и мне важно, чтобы в этот момент пользователь гарантированно не мог запустить обновляемый софт. Можно конечно при запуске лочить мышь и клаву, но во-первых это можно обойти, а во-вторых, это кривой метод.
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Делал, что-то подобное. Ночью комп запускается в 3:00.. в 3:10 запускается скрипт... по выполнении выключает комп.
 
Автор
Y

yosemity

Новичок
Сообщения
9
Репутация
0
zlo-kazan
В рамках одной сетки настроить без проблем, а когда вообще нет физического доступа или кампов много, то вариант не катит.
 
Автор
Y

yosemity

Новичок
Сообщения
9
Репутация
0
Уважаемые, есть ли у вас идеи по вопросу? Хотя бы намеки, я готов копнуть в указанную сторону.

В двух словах, что я пишу - это приложение, которое в автоматическом режиме ставит пользовательские приложения.

на данный момент состоит из двух компонентов:

1) Агент, который работает как служба и сверяется с указанным в конфиге сервером по http/ftp на предмет новой или обновленной версии приложения. Приложения хранятся на сервере в виде SFX-архивов 7z. В случае обнаружения новой версии качает ее в фоне и делает об этом соответствующие записи в реестр. Агент может работать автономно, в том числе есть версия под линух. Агент может складывать обновления в нужное место, соответственно любая вложенность/агентов-серверов. Требуется http/ftp сервер.

2) Клиент при запуске смотрит в реестр на предмет доступных и установленных приложений (в то, что написал Агент, а не по факту что есть в системе, пока так, для тестов). При обнаружении новой версии отслеживает зависимости, запущенные приложения, условия запуска (при загрузке компа, входе в систему, выключении, требования админских прав и пр.). Отслеживает выполнение и всякая прочая хрень.

Агент и Клиент умеет вести подробные логи с настраиваемой степенью подробности в файл, eventlog, MsgBox, tip в трей и по e-mail.

На данный момент главная проблема - отсутствие возможности запуска клиента без всякой возможности действий пользователя. Я говорю про хоум эдишн. Эта штука должна быть универсальна.

Гуев тут нет, только логи и их отсылка. В дальнейшем планирую клиент-серверный вариант с гуями на сервере и ну если очень попрет, то и на клиенте.

В первую и пока единственную очередь ориентация на корп сектор. Админам моя штука пригодится.

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

Исходники своего быдлокода пока не выкладываю. Дорасту до "альфы", сначала.

Есть интерес в моей работе?
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Интерес конечно есть... =)
Завтра/после завтра попрубую поставить виртуалку с хом версией и пошаманить... :scratch:
 
Автор
Y

yosemity

Новичок
Сообщения
9
Репутация
0
zlo-kazan
Сразу скажу, что у меня ничего не вышло с прикручиванием групповых политик хомяку. Да, оснастка gpedit.msc работает, адм шаблоны в ней отображаются, но они ни коим образом не влияют на реестр. Кстати, прямое прописывание в реестр стартап скриптов тоже ни на что не влияет, тупо не работает.

Может у вас получится.

Есть вариант запускать установку приложений от "Local Service" как работает Агент, но тогда, к примеру, Опера встает намертво с двумя процесами "opera.exe", спасает только таймаут. Что интересно при запуске через групповые политики отрабатывает на ура, хотя тоже от SYSTEM стартует.

Мне надоело писать, а вам надоело читать.

zlo-kazan, давайте я вышлю вам код.
____
PS. Как я писал, у каждого устанавливаемого приложения есть условия на запущенные блокирующие процессы, но ничего не останавливает юзера запустить ту же оперу в процессе установки. Можно подменять .exe приложения с фразой "Вот именно в данный момент происходит обновление $sApplication, осталось 3нс.", но в этот момент сама инсталляшка может попытатьтся написать файл.

Идеи кончились.
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
В 90% случаев пишут. Прикрутить политики невозможно.
В остальных 10% пишут примеры, как прикрутить. Говорят пашет не везде и не всегда и вообще очень редко.

В win XP Pro все гуд... 3 минуты (включая написание самого тестового скрипта и чтение мануала, как прикрутить скрипт) и уже выполняет скрипт, как надо...
В win XP Home все печально... копирование библиотек... их регистрация... прописывание и просто копирование реестра ни к чему не приводит...

Единственная мысль сделать картинку (скриншот выключающейся винды) размером с рабочий стол накрыть им его... заблокировать инпут... добавить какой-нибудь поргрессбар... надпись - установка обновлений "НЕ ОТКЛЮЧАЙТЕ ПИТАНИЕ КОМПЬЮТЕРА"...

Если не знаешь с чем имеешь дело, то даже не подумаешь разблокироваться и открыть, что-нибудь... :smile:
 
Верх