|
|
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
он там, кажется, уже установлен и запущен. В любом случае, не спешите, т.к. самописки грешат большим количеством ошибок. Сейчас думаю, а если пользователь еще не вошел в систему, то для Windows это значит, что ПК заблокирован? Значит, надо добавить проверку на наличие в памяти explorer.exe... Сейчас поправлю. Еще момент: что происходит, если автообновление остановить тогда, когда идет установка обновления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 18:12:55 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
исправил... Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 18:19:04 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
авторесть ли в списке процессов подстрока .scr, то...Залкрались некоторые сомнения, что ТО выполняется. Как проверить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 19:12:42 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
я использую отладчик Process Explorer (см. рис.) и апплет свойств экрана, т.е. перехожу на закладку заставки, выбираю любую, rundll32 ее подгружает, смотрю подсвеченный список служб одного из svchost.exe, там через неск. секунд появляется Automatic Updates и виден запуск wuauclt.exe /detectnow. Потом перехожу на любую другую закладку свойств экрана, жду 15 секунд, смотрю. Этот алгоритм нормально отрабатывает, пока всплыло еще одно: SwitchDesktop, которыйсидит в проверке, не заблокирована ли рабочая станция, нельзя использовать, когда пользователь еще не вошел, просто окно логина исчезнет, придется перезагружать и за 15 секунд успеть пароль ввести. Ну, или по сети отключить свежеустановленную службу. Исправил. Если где установить успели - замените файлик, надо сначала службу остановить, потом заменить файл и запустить снова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 19:25:40 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
Ни фига не вышло, не работает. Совсем забыл, что при установке в политике автообновления в "Отключено" служба остается работать, т.е. отключать-то ее, конечно, помогает, но вот при включении она все равно не синхронизируется. Почитаю SDK (Windows Update Services Client API), завтра что-нибудь, наверное, получится, а то задолбало уже урывками апдейты ставить :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2007, 20:37:07 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
Вообще, поправьте мои мысли, а то вполне возможно, что я не туда иду. Ход рассуждений: 1. автоматическое обновление на рабочих станциях непозволительно сильно и долго грузит процессор. 2. раз шаманства не помогают, остается смириться и пытаться перенести время детекта обновлений на период, когда ПК простаивает. 3. в политиках, определяющих параметры работы wuauserv нет значений, позволяющих запустить детект во время простоя. Т.е. политика в данном случае штука лишняя и ею не пользуемся (ставим все на Not Configured) 5. в течение дня реальным индикатором праздности ПК может быть только заставка (в частности, навязанная из групповой политики) 6. параметры wuauserv сидят в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update, а политика пишет вроде как в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\AU, т.е. на всякий случай надо писать и туда, и сюда. Анализ adm-файла показал, что это: wuau.adm->delphi с нужными настройками WriteInteger('AUOptions',4); WriteInteger('NoAUShutdownOption',0); WriteInteger('NoAUAsDefaultShutdownOption',0); WriteInteger('ScheduledInstallDay',0); WriteInteger('ScheduledInstallTime',4); //0-23 WriteInteger('UseWUServer',1); WriteString('WUServer','http://server'); WriteString('WUStatusServer','http://server'); WriteInteger('RescheduleWaitTimeEnabled',1); WriteInteger('RescheduleWaitTime',30); WriteInteger('NoAutoRebootWithLoggedOnUsers',1); WriteInteger('DetectionFrequencyEnabled',1); WriteInteger('DetectionFrequency',1); WriteInteger('AutoInstallMinorUpdates',1); WriteInteger('RebootWarningTimeoutEnabled',1); WriteInteger('RebootWarningTimeout',30); WriteInteger('RebootRelaunchTimeoutEnabled',1); WriteInteger('RebootRelaunchTimeout',30); WriteInteger('ElevateNonAdmins',1); WriteString('NextDetectionTime',my_nextdetection); два самых крутых параметра помечены красным, это параметр, отвечающий за то, включено ли вообще автообновление, второй - время, когда нужно в следующий раз связаться с WSUS. Большинство этих параметров отсутствует в реестре, они идут из .pol-файла политики. 6. для того, чтобы служба wuauserv приняла новые параметры, надо ее рестартануть. 7. исходя из результатов исследования, имеет смысл реализовывать такой алгоритм создания своего процесса-службы (назовем ее диспетчером): - на старте диспетчера производится 1) запись в реестр параметров, которые ранее писались групповой политикой (как вариант их можно считывать из ini в сетевой шаре на контроллере, если разрешить к ней доступ нруппе "Domain Computers") 2) изменение типа запуска wuauserv и его остановка + в реестр пишется параметр, что автообновление отключено, AUOptions = 0 или 1 - после чего активизируется таймер, в котором проверяется, зашел ли какой-либо пользователь в систему (пока просто по наличию в памяти процесса explorer.exe). Если процесс есть, то смотрим, м.б. есть заставка или заблокирован компьютер. Если да, то надо записать в AUOptions 4 (автоскачка, автоинсталл), в NextDetectionTime (время следующей синхронизации) пишем текущие дату-время плюс, скажем, секунд 30, меняем тип запуска wuauserv, запускаем его, ждем те самые 30 секунд, затем запускаем wuauclt /detectnow. - если в разгар этого веселья юзеру понадобилось сесть за ПК, то заставка слетит, таймер это обнаружит с запозданием в секунд 15 максимум, запустится процедура: "поменять в реестре параметр AUOptions на 1 или 0, остановить службу" Внимание вопрос: а что будет, если юзер сел тогда, когда обновления ставятся? Имхо ставит обновления все же windows installer, а не wuauserv, но я не уверен... Дальше этого башка не варит, спать пошел :( - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 00:54:49 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
Ещё на заметку тебе - когда сервес запущен, не появлеятся окно логона при загрузке (только в сафемоде, когда серис не запущен) WinXP SBS2003 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 11:48:17 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
это уже исправил: rrrrrrrrrr пока всплыло еще одно: SwitchDesktop, которыйсидит в проверке, не заблокирована ли рабочая станция, нельзя использовать, когда пользователь еще не вошел, просто окно логина исчезнет, придется перезагружать и за 15 секунд успеть пароль ввести. Ну, или по сети отключить свежеустановленную службу. Исправил. Если где установить успели - замените файлик, надо сначала службу остановить, потом заменить файл и запустить снова. Пока отключите у себя вообще эту службу (вместо safe mode можно просто по сети через "Управление компютером-подключиться к удаленному ПК" поставить тип запуска в отключено и перезагрузить). имхо вам лучше на себе пока не испытавать... Сейчас набело все переделал, запустил у своих (примерно 40 машин, вроде базовая часть работает: когда пользователя нет, все обновление включается, выполняется детект. Когда пользователь возвращается, все послушно стопорится). Но это только детект, надо еще с установкой разобраться, но полдороги вроде пройдено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 11:56:36 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
А под кем машины? Плд WinServer 2003 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 14:23:03 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
Win XP Prof SP2, 1 шт. Win2003 SP1 Std. Понятно, что на терминалке это дело запускать ни в коем случае нельзя :) Пока все нормально работает, но у нас время простоя маленькое, так что пока только 6 отчетов пришли на WSUS. Но запускается-останавливается как задумано. Подозреваю, что все равно придется какие-нибудь вилы обходить на этапе установки обновлений. Детект - это же еще не все... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 15:33:45 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
А я наверно чё-то не понял... Если в SBS2003 отключили обновление - то хрен его на клиенте кто запустит. Со вчера по репортам никто не обновлялся, сервер уже и сам волноваться начинает, пишет мол никто за обновлением к нему не приходил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 16:06:51 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
А этот "помощничек" всегда такой ресурсоёмкий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 16:04:22 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
Сомневаюсь, что кому-нибудь понадобится :) Все, доделал, теперь работает как надо. 1. состав дистрибутива и установка. - _wuau.exe, интерактивный сервис, который отключает и останавливает весь функционал автоматического обновления, если на компьютере залогинен пользователь и при этом не выполняется заставка. Если на компьютере не залогинен ни один пользователь и активна заставка, а также если кто-то залогинен и также выполняется заставка, задаются параметры автоматического обновления и запускается служба автоматического обновления. - _wuau.ini, файл настроек службы _wuau.exe ("WUAUServDispatcher"). Состав файла: _wuau.ini[GENERAL] NoAUShutdownOption=0 NoAUAsDefaultShutdownOption=0 ScheduledInstallDay=0 ScheduledInstallTime=11 UseWUServer=1 WUServer=http://server WUStatusServer=http://server RescheduleWaitTimeEnabled=1 RescheduleWaitTime=30 NoAutoRebootWithLoggedOnUsers=1 DetectionFrequencyEnabled=1 DetectionFrequency=1 AutoInstallMinorUpdates=1 RebootWarningTimeoutEnabled=1 RebootWarningTimeout=30 RebootRelaunchTimeoutEnabled=1 RebootRelaunchTimeout=30 ElevateNonAdmins=0 AUOption_Enable = 4 AUOption_Disable = 0 Две последние опции показывают, в какое состояние переключать Automatic Updates при соответственно отсутствии и присутствии пользователя. Расшифровку остальных параметров можно посмотреть в %windir%\system32\GroupPolicy\adm\wuau.adm - _wuauinstall.exe, это инсталлятор, в одну папку с ним следует поместить _wuau.exe и _wuau.ini. При запуске останавливает и деинсталлирует (если она есть) службу _wuau.exe, затем удаляет %windir%\system32\_wuau.exe и %windir%\system32\_wuau.ini, затем копирует на их место те, что лежат в одной с ним папке, затем регистрирует и запускает _wuau.exe как сервис, который берет данные из файла %windir%\system32\_wuau.ini. Для установки нужно а) Not Configured по всем параметрам групповых политик, касающимся автообновления б) принудительная заставка в групповых политиках (минут 5-10 в самый раз) в) настроить файл _wuau.ini согласно своим требованиям и г) запустить файл _wuauinstall.exe, для удаления - его же, но с ключом uninstall (_wuauinstall.exe uninstall) 3. Как работает служба. - на старте служба пишет в ветки SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU параметры из своего ini-файла, а параметр AUOption устанавливает равным AUOption_Disable. - с интервалом в 15 секунд память проверяется. Если: а) найден процесс update.exe, то детект прекращается, т.к. предполагается, что пошел процесс установки заплаток и вмешиваться в работу системы нельзя. б) найден процесс .scr (или рабочая станция заблокирована) - выполняется запись в AUOptins значения параметра AUOption_Enable из конфигурационного файла и старт службы автоматического обновления после смены типа ее запуска на demand. При этом параметр NextDetectionTime ставится на 30 секунд после. в) рабочая станция не заблокирована и нет процесса .scr, тогда wuauserv ставится в disabled, параметр AUOption ставится в то, что у вас прописано в ini для AUOption_Disable, wuauserv тормозится. У меня работает на 45 машинах с пятницы, проблем нет (детект проходит, заплатки ставятся). Правда, все стало еще более плавным, чем с политиками... Бинарники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 16:16:55 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
Вроде нарыл официальное решение проблемы: http://support.microsoft.com/kb/916089/ http://support.microsoft.com/kb/927891/ со второй странички после проверки подлинности ОС можно скачать файлы: WindowsXP-KB927891-v3-x86-ENU.exe - английская ХР WindowsServer2003-KB927891-v5-x86-ENU.exe - английская 2003 WindowsXP-KB927891-v3-x86-RUS.exe - русская ХР и т.д. дело в версии библиотеки msi.dll, версия которой на клиенте зависит в т.ч. от версии установленного MS Office. С версией 3.1 этой библиотеки загрузка процессора по-прежнему достигает 100%, но при этом копьютер не виснет наглухо, а вполне себе отзывчив... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 18:40:06 |
|
||
|
svchost.exe ?????????
|
|||
|---|---|---|---|
|
#18+
MZH кстати, это уже советовал: /topic/82677&pg=2#4041913 тогда показалось, что не работает, т.к. ЦП все равно грузился по-полной. Не хватило тогда догадки попробовать что-либо параллельно сделать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 18:50:41 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=34476439&tid=1507244]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 335ms |

| 0 / 0 |
