PDA

Показать полную графическую версию : Обновляем Windows. Два подхода к одному вопросу.


Страниц : [1] 2

VseDoFeNi
27-05-2005, 00:24
Любая ОС во время своей эксплуатации требует обслуживания, в частности периодически возникает необходимость установки патчей, ничего страшного в этом нет. Это, как ремонт в квартире или техобслуживание автомобиля. Теперь давайте рассмотрим вопрос установки обновлений более подробно.

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

Дальше можно прочитать тут (http://unacreator.elitecom.ru), статья достаточно большая.

Кому лень читать, можко сразу скачать SvCompiler:
1 По файлам обновлений создаст файл Svcpack.inf, служащий для установки обновлений во время установки Windows
2 Скопирует файлы обновлений в папку Update с короткими именами для установки из Svcpack.inf

В комплекте HotFixes Installer,предназначенный для установки недостающих обновлений на ранее установленную Windows (устанавливает обновления прописанные в Svcpack.inf):
1. Проверит, установлен ли Windows XP
2. Проверит, установлен ли SP2
3. По файлу Svcpack.inf определит в каком каталоге на CD лежат апдейты
4. Составит список установленных в системе апдейтов
5. Сравнит обновления прописанные в Svcpack.inf со списком установленных ранее и установит недостающие.

SvCompiler ( 23,7 kb ) (http://unacreator.elitecom.ru/click/fclick.php?ad=13)

и

Patcher, работающий самостоятельно:
1. Проверит, установлен ли Windows XP
2. Проверит, установлен ли SP2
3. Составит список установленных в системе апдейтов
4. По списку апдейтов, находящихся в папке Current, установит недостающие.


Patcher ( 3,85 kb ) (http://unacreator.elitecom.ru/click/fclick.php?ad=12)

Vadikan
28-05-2005, 04:56
Ну что я могу сказать, серьезные батники ты научился писать :up: :up:

На следующей установке попробую как это все пройдет. Только все эти файлы теперь тебе нужно поддерживать постоянно, т.к. с выходом новых хотфиксов ситуация может измениться.

D@nil
28-05-2005, 07:05
Нужная штука :up:

VseDoFeNi
28-05-2005, 10:04
Vadikan
Ну что я могу сказать, серьезные батники ты научился писать
Спасибо за оценку :shuffle:
Только все эти файлы теперь тебе нужно поддерживать постоянно, т.к. с выходом новых хотфиксов ситуация может измениться.
И сейчас есть что изменить, HFI скоро зафиналю, да и патчер, пожалуй, тоже.

D@nil дык пользуйтесь ;)

fanatf1
31-05-2005, 06:03
Я тоже присоединяюсь к овациям!
Отличная задумка, очень удобная.
Я вчера проверил все хотфиксы встали и работают.

AlexVP
08-06-2005, 17:59
Я бы тоже присоединился к овациям с огромным удовольствием!
Штука действительно Очень нужная!

Но.... не работает она у меня!!! может я чего не понимаю... несколько раз перечитал инструкцию по созданию диска с хотфиксами и несколько раз создавал диск в различных вариантах... эффект один - не работает!
но по порядку.

1.выкачал SvCompiler и Patcher.
2. распаковал SvCompiler в отдельную дир. со всей инфраструктурой, туда же распаковал Patcher.cmd, положил в дир. Current хотфиксы с Микрософта, в дир. Removed - отмененные хотфиксы.

3. запустил SvCompilerU.cmd и получил SvcPack.inf и дир. Update "под ногами "
4. Скопировал с готового дистра дир. I386 в нее положил Svcpack.inf, в ней создал дир. Update и положил в нее Qchain.exe
5. создал диск со труктурой для SvCompiler от корня.
6. подготовил машину - "чистый" XP eng с накаченным на него SP2.
7. запускаю с CD HFI.cmd...
выскакивают три подряд одинаковых сообщения :
Ошибка: Системе не удалось найти указанный раздел или параметр реестра

после этого сообщается что сейчас будут установлены хотфиксы...
потом
Qchain.e установлен
потом быстро
Не удается найти C:\temp\up.txt ( я и temp создавал и up.txt туда закладывал - та же песня)
ну и предлагается реботнуться....
8. пробую с Patcher-ом...
те же сообщения о не удается найти .....
потом сообщает что сейчас хотфиксы установятся
и затем
Синтаксическая ошибка в имени файла или дирректории...

Вот такая песня... Помогите пожалуйста, объясните в чем я не прав.

прочитал сообщение fanatf1 перепроверил все еще несколько раз - у меня не работает!

VseDoFeNi
08-06-2005, 19:05
AlexVP
Такая последовательность
1. Качаем SvCompiler и Patcher.
2. Распаковываем SvCompiler в отдельную дир. со всей инфраструктурой, туда же распаковал Patcher.cmd, положил в дир. Current хотфиксы с Микрософта, в дир. Removed - отмененные хотфиксы.
3. запустил SvCompilerU.cmd и получил SvcPack.inf и дир. Update "под ногами "
До этого всё правильно. Кстати, в SvCompilerU.cmd можно сразу изменить путь к дистрибутиву, там помечено где менять.

4. Теперь удаляем из i386 дистрибутива Svcpack.in_ и копируем туда полученные SvcPack.inf и дир. Update.
5. Копируем HFI.cmd в корень CD.

6. Пишем дистрибутив на болванку.

Всё должно работать.
SvCompiler и Patcher работают отдельно, а не вместе.

AlexVP
09-06-2005, 16:30
VseDoFeNi
К моему огромному сожалению не работает! :( Сделал все по приведеннной схеме, тот же эффект - выдает 3 сообщения про раздел или параметр реестра
а затем все то же, что я уже описывал!


SvCompiler и Patcher работают отдельно, а не вместе.

а что значит отдельно? И как их можно запустить вместе? На сколько я понял компилер создает структуру которую использует HFI. А патчеру нужна только папка Current (такая же, какая у компилера). так что могут они, наверное, находится на одном диске?
Патчер у меня также отказался работать, так же как я уже описывал ранее....

готов привести скриншоты работы батников, структуру созданного диска, веток регистра....
Могу на ЛС (чтобы не засорять тему)

VseDoFeNi
09-06-2005, 19:07
AlexVP
На сколько я понял компилер создает структуру которую использует HFI.
В общем да, хотя и не совсем так.
SvCompiler нужен для автоматизации работы описанной тут (http://oszone.net/display.php?id=2755).
Собственно они у меня так и ставятся вместе с виндой.
HFI действительно использует эти апдейты.

Что касается ошибк по разделам реестра, Imho на этой машине Windows XP совсем без апдейтов. В реестре значения создаются при установке патчей.

VseDoFeNi
14-06-2005, 18:13
Поправлена пара косяков в SvCompiler.cmd и SvCompilerU.cmd. У кого будут траблы возьмите исправленный по той же ссылке.

SvCompiler ( 23,7 kb ) (http://unacreator.elitecom.ru/click/fclick.php?ad=13)

Vadikan
28-06-2005, 00:31
VseDoFeNi
Так, у меня дошли руки потестить LOL На сайте в комментах слэши режет, бесполезно постить, следовательно тут обсудим :)

:: Set Path to I386 distributive Windows XP SP2
Set SvcDir=%FromDir%
::------------------------------------------------
Set TargetDir=%SvcDir%\Update
if exist %TargetDir%\Svcpack.in_ del /q %TargetDir%\Svcpack.in_
Логичнее указывать путь к дистрибутиву, а не к содержимому i386. Именно это ты и просишь сделать: Set Path to I386, но это не вяжется с остальными командами. Т.е.

Set SvcDir=E:\DistroSP2
В ней, конечно, i386. Если я так укажу, то у меня папка Update создается в корне CD.

Ну это ладно, можно оставить как есть, но тогда с svcpack.in_ путаница. Даже если я укажу Set SvcDir=E:\DistroSP2\i386, чтобы у меня папка Update была внутри i386, то батник ищет svcpack.in_ в E:\DistroSP2\i386\Update! Там файла нет и следовательно он не удаляется.

Надо так
if exist %SvcDir%\Svcpack.in_ del /q %SvcDir%\Svcpack.in_

Добавлено. Т.е. конечный вариант куска кода в начале поста такой

:: Set Path to I386 of your Windows XP SP2 installation files (include i386 in the path)
:: Example: Set SvcDir=E:\DistroSP2\i386
Set SvcDir=E:\DistroSP2\i386
::------------------------------------------------
Set TargetDir=%SvcDir%\Update
if exist %SvcDir%\Svcpack.in_ del /q %SvcDir%\Svcpack.in_

VseDoFeNi
28-06-2005, 18:27
Vadikan
:beer: ага, я его тестил в отдельной папке, да так и забыл поправить :)

Обновил SvCompiler (23.7 kb) (http://unacreator.elitecom.ru/click/fclick.php?ad=13)

Vadikan
30-06-2005, 11:55
VseDoFeNi
Протестил, все работает, все апдейты установились как надо. Я еще patcher.cmd протестю на некритических днях.. т.е. апдейтах, т.к. я их не ставил :)

v12345
23-08-2005, 08:10
1. У Vadikan в статье http://oszone.net/display.php?id=2755 упоминается необходимость поправить файл DOSNET.inf, а эти скрипты этого вроде не делают. Так нужно его трогать или нет?

2. Правильно ли я понял, что папка Removed, в которую предалагется складывать отмененные обновления в обработке не участвует. И если я предпочитаю отмененные MS-ом обновления не хранить, а просто удалять за ненадобностью, то могу это спокойно делать, а саму Removed грохнуть?

VseDoFeNi
30-08-2005, 08:55
v12345
1. Я ни разу не правил DOSNET.inf и всё прекрасно работает.
2. Правильно. Папка Removed не участвует в обработке.... пока не учавствует.

v12345
06-10-2005, 17:16
Поэкспериментировал с SvCompiler, вроде работает без видимых проблем, но по ходу решил отказаться от самой идеи засорять дистрибутив обновлениями. Поэтому решил глянуть на Patcher.cmd. Есть несколько вопросов:

1. В документации к Patcher.cmd сказано, что его "можно запускать на 13 минуте до конца установки Windows из cmdlines.txt". У меня оттуда не заработал, хотя заработал без проблем, будучи вызванным без единого изменения из GuiRunOnce. Это только у меня так? Какие могут быть причины?

2. Казалось бы SvCompiler.cmd и Patcher.cmd - это вроде как братья - основная идея обоих установить в определенный момент подряд несколько обновлений, не разделяя их перезагрузками. Но почему тогда в SvCompiler.cmd заложена добавка в конце установки QCHAIN.EXE, а в Patcher.cmd QCHAIN.EXE нет? Или можно тот же вопрос более обобщенно задать: когда надо запустить QCHAIN.EXE после установки нескольких обновлений подряд, а когда - нет?

3. Что и в каких случаях должно сохраняться в up.txt?

VseDoFeNi
06-10-2005, 19:58
идеи засорять дистрибутив обновлениями
Imho "засорения" в данном случае не присходит, они просто запускаются штатно предусмотренным образом. По большому счету, так и софт ставить можно, только не нужно.
1 Касаемо 13 минуты imho лучше все-же svcompiler юзать для этого.
2 QCHAIN.EXE это моя недоработка или переработка :) он был актуален до sp2
3 В up.txt пишутся патчи, установленные в системе, если они прописаны в реестре.

ProFFeSSoR
19-01-2006, 12:33
А чего-то похожего для Win2k нету? Или может можео что-то в батнике поменять чтобы для 2к работало?

VseDoFeNi
19-01-2006, 20:50
Или может можео что-то в батнике поменять чтобы для 2к работало?
Убрать проверку на Win XP

FOR /F "usebackq tokens=* delims==" %%i IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion`) do set CV=%%i
IF "%CV:~-3%"=="5.1" FOR /F "usebackq skip=4 tokens=4*" %%i IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CSDVersion`) do set CSDV=%%j
IF "%CSDV%"=="2" goto :patching
ECHO Your Windows XP without SP2!
ECHO Installing Hot Fixes impossible!!!
ECHO.
ECHO Press any key for exit...
pause
exit


поправить пути в реестре

FOR /F "usebackq eol=! tokens=2*" %%i IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Updates\Windows XP\SP3"`) do for /F "tokens=3* delims=\" %%l IN ("%%i") do echo %%l>>%Temp%\up.txt
FOR /F "usebackq eol=! tokens=6* delims=\" %%i IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Updates\.NETFramework"`) do if %%i==1.1 echo DOTNETFX>>%Temp%\up.txt
FOR /F "usebackq eol=! tokens=7* delims=\" %%i IN (`REG QUERY "HKLM\SOFTWARE\Microsoft\Updates\.NETFramework\1.1"`) do @call :prov "%%i"
COLOR 0A

Точнее сказать не могу из-за отсутствия w2k.

morismoss
07-03-2007, 23:34
VseDoFeNi
Простите, может такой вопрос уже звучал, но всё же. А после интеграции командой интегрейт, можно из папки svcpack удалять экешники, ведь они походу распаковались в i386, а то полученное просто не влазит на диск? И вообще, что можно удалить, после интеграции?




© OSzone.net 2001-2012