Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Обновляем Windows. Два подхода к одному вопросу. (http://forum.oszone.net/showthread.php?t=49787)

VseDoFeNi 27-05-2005 00:24 327718

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

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

Дальше можно прочитать тут, статья достаточно большая.

Кому лень читать, можко сразу скачать 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 )

и

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


Patcher ( 3,85 kb )

Vadikan 28-05-2005 04:56 328081

Ну что я могу сказать, серьезные батники ты научился писать :up: :up:

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

D@nil 28-05-2005 07:05 328084

Нужная штука :up:

VseDoFeNi 28-05-2005 10:04 328095

Vadikan
Цитата:

Ну что я могу сказать, серьезные батники ты научился писать
Спасибо за оценку :shuffle:
Цитата:

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

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

fanatf1 31-05-2005 06:03 328794

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

AlexVP 08-06-2005 17:59 331124

Я бы тоже присоединился к овациям с огромным удовольствием!
Штука действительно Очень нужная!

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

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 331150

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 331452

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


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

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

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

VseDoFeNi 09-06-2005 19:07 331509

AlexVP
Цитата:

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

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

VseDoFeNi 14-06-2005 18:13 332755

Поправлена пара косяков в SvCompiler.cmd и SvCompilerU.cmd. У кого будут траблы возьмите исправленный по той же ссылке.

SvCompiler ( 23,7 kb )

Vadikan 28-06-2005 00:31 336507

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 336704

Vadikan
:beer: ага, я его тестил в отдельной папке, да так и забыл поправить :)

Обновил SvCompiler (23.7 kb)

Vadikan 30-06-2005 11:55 337186

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

v12345 23-08-2005 08:10 349992

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

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

VseDoFeNi 30-08-2005 08:55 351882

v12345
1. Я ни разу не правил DOSNET.inf и всё прекрасно работает.
2. Правильно. Папка Removed не участвует в обработке.... пока не учавствует.

v12345 06-10-2005 17:16 362098

Поэкспериментировал с 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 362144

Цитата:

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

ProFFeSSoR 19-01-2006 12:33 394560

А чего-то похожего для Win2k нету? Или может можео что-то в батнике поменять чтобы для 2к работало?

VseDoFeNi 19-01-2006 20:50 394787

Цитата:

Или может можео что-то в батнике поменять чтобы для 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 559062

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

boss911 08-03-2007 00:44 559083

morismoss
Цитата:

ведь они походу распаковались в i386, а то полученное просто не влазит на диск?
UpdatePack-XPSP2-Rus я думаю вам поможет!

zuckij 08-03-2007 02:39 559122

Цитата:

можно из папки svcpack удалять экешники, ведь они походу распаковались в i386, а то полученное просто не влазит на диск? И вообще, что можно удалить, после интеграции
Может я чего-то не догнал, удалять не надо это просто создался Svcpack (потипу SP) который и установит из Svcpack.inf эти самые .exe и вызовет на Т-13.

VseDoFeNi 08-03-2007 12:38 559194

morismoss, zuckij не использую интеграцию хотфиксов в принципе.

zuckij 08-03-2007 12:54 559197

VseDoFeNi
Цитата:

не использую интеграцию хотфиксов в принципе
Ну я про-то самое и сказал, а недогнал вопрос morismoss, а объяснил примерный принцип действия, я что-то типа SP3 с помощью твой утилиты делаю. Имена 8.3 автомат, ключи также готовое переделал в батник упаковал SFX и в путь.

VseDoFeNi 08-03-2007 21:16 559332

zuckij, скоро сюрпризик будет ;)

zuckij 09-03-2007 01:14 559384

VseDoFeNi , а какой если ни секрет скоро сюрпризик будет

VseDoFeNi 09-03-2007 10:59 559489

zuckij, может к понедельнику :)

morismoss 09-03-2007 15:36 559599

Господа, может я чего не понимаю и может вы меня не так поняли, но опишу подробнее:
UpdatePack-XPSP2-Rus версия 7.2.15 пользоваться не хочу, так как меня не совсем устраивает начинка данного пака, поэтому хотелось всё сделать стандартными методами командной /integrate, ведь в майкрософте так обновляли дистрибутивы винды или после выпуска sp2 диски перестали штамповать? Но всё же. При выполнении команды /integrate просиходит копирование файлов в нашу папку i386 , значит новые и обновлённые файлы уже закидываются в установочный дистр, правильно? Но потом обновления ещё копируются в формате 8.3 в svcpack и на T13 происходит распаковывание и обновление винды. Вот и вопрос, для чего тогда копируются новые и обновлённые файлы в i386, если всё равно потом происходит обновление из папки svcpack? Вопрос именно в этом, почему? Получается, что в i386 накидывается файлов размером 125 метров виде уже распакованных файлов и в папку svcpack 85 метров в виде тех же апдейтов. Кто же ответит, почему так происходит?


Время: 16:16.

Время: 16:16.
© OSzone.net 2001-