Показать полную графическую версию : Обновляем Windows. Два подхода к одному вопросу.
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)
Ну что я могу сказать, серьезные батники ты научился писать :up: :up:
На следующей установке попробую как это все пройдет. Только все эти файлы теперь тебе нужно поддерживать постоянно, т.к. с выходом новых хотфиксов ситуация может измениться.
VseDoFeNi
28-05-2005, 10:04
Vadikan
Ну что я могу сказать, серьезные батники ты научился писать
Спасибо за оценку :shuffle:
Только все эти файлы теперь тебе нужно поддерживать постоянно, т.к. с выходом новых хотфиксов ситуация может измениться.
И сейчас есть что изменить, HFI скоро зафиналю, да и патчер, пожалуй, тоже.
D@nil дык пользуйтесь ;)
Я тоже присоединяюсь к овациям!
Отличная задумка, очень удобная.
Я вчера проверил все хотфиксы встали и работают.
Я бы тоже присоединился к овациям с огромным удовольствием!
Штука действительно Очень нужная!
Но.... не работает она у меня!!! может я чего не понимаю... несколько раз перечитал инструкцию по созданию диска с хотфиксами и несколько раз создавал диск в различных вариантах... эффект один - не работает!
но по порядку.
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 работают отдельно, а не вместе.
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)
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)
VseDoFeNi
Протестил, все работает, все апдейты установились как надо. Я еще patcher.cmd протестю на некритических днях.. т.е. апдейтах, т.к. я их не ставил :)
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 не участвует в обработке.... пока не учавствует.
Поэкспериментировал с 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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.