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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista (http://forum.oszone.net/forumdisplay.php?f=83)
-   -   Интеграция обновлений в дистрибутив с заданной последовательностью (http://forum.oszone.net/showthread.php?t=319007)

timon45 21-09-2016 14:37 2670848

Интеграция обновлений в дистрибутив с заданной последовательностью
 
Появилась необходимость устанавливать обновления через пакетный фай (cmd) с определенной последовательностью через DISM (Windows 7). Такая необходимость возникла т.к. некоторые KB-шки при установке бьют ошибки и это уже изрядно поднадоело.
пользуюсь командой
dism /IMAGE:"%~dp0Mount" /ADD-PACKAGE /PACKAGEPATH:"%~dp0Updates\x64" /LogPath:"%~dp0Logs\Updates.log" /LogLevel:2
писать данную команду для каждого обновления не вариант. (очень долгий процесс интеграции, и не красиво все это)
можно указывать через пробел каждую обновку
dism /IMAGE:"%~dp0Mount" /PACKAGEPATH:"%~dp0Updates\x64\WUClient-SelfUpdate-ActiveX-x64.cab" /PACKAGEPATH:"%~dp0Updates\x64\Windows6.1-KB917607-x64.cab" ...
но обновлений много и все за раз не поставишь, может указать как то "рекрсивно" (или как там оно называется) т.е. создать отдельный файл со списком обновлений который будет загружаться в /ADD-PACKAGE /PACKAGEPATH:"%~dp0Updates\x64\*** и так по порядку, как это реализовать я не знаю.
Или может кто предложит иной вариант решения проблемы.

Ж.Д.А.Л.К.Е.Р. 21-09-2016 16:46 2670886

Код:

For /F "Delims=" %%I In (KB.lst) Do (dism /IMAGE:"%~dp0Mount" /PACKAGEPATH:"%~dp0Updates\x64\%%I")
Содержимое KB.lst:
Код:

WUClient-SelfUpdate-ActiveX-x64.cab
Windows6.1-KB917607-x64.cab
...


timon45 21-09-2016 21:02 2670954

Ж.Д.А.Л.К.Е.Р., это конечно да, я так тоже думал, но мне не нравится что при данном способе при обработке каждой обновки каждый раз запускается DISM на это много времени затрачивается если учесть что обновок уже ~220...240. Хотелось бы чтобы в DISM обрабатывал их за один запуск:
Цитата:

Цитата timon45
dism /IMAGE:"%~dp0Mount" /PACKAGEPATH:"%~dp0Updates\x64\WUClient-SelfUpdate-ActiveX-x64.cab" /PACKAGEPATH:"%~dp0Updates\x64\Windows6.1-KB917607-x64.cab" ... »

но пакетный файл такую длинную строку не обработает.

П.С. наверное я не в том разделе спрашиваю, может через VBS или powershell это только можно реализовать, и вызывать через мой пакетный файл, меня бы это тоже устраивало.

Ж.Д.А.Л.К.Е.Р. 21-09-2016 21:14 2670962

Укажи путь к каталогу с обновлениями, а не к каждому из них. Переименуй (добавь цифры или буквы) обновления чтоб они устанавливались в нужном тебе порядке.

Пример, в каталоге Files\NVMe пара cab-ов для поддержки NVMe.
Код:

Dism /Image:Mount /Add-Package /PackagePath:Files\NVMe

timon45 21-09-2016 21:50 2670975

Ж.Д.А.Л.К.Е.Р., не вариант, так тоже думал, и до этого была подобная схема (с года 2011), но это не очень удобно при обновлении своей сборки переименовывать каждый файл или отслеживать изменения, я как и многие доверяю этому списку с небольшими правками.скачивать их удобно, и список составить тоже.

Ж.Д.А.Л.К.Е.Р. 23-09-2016 15:11 2671435

Цитата:

Цитата timon45
с определенной последовательностью »

В чем она заключается ?

Цитата:

Цитата timon45
не очень удобно при обновлении своей сборки переименовывать каждый файл или отслеживать изменения »

Так все равно это приходится делать (обновления добавляются/заменяются/удаляются) чтоб получить список с нужной тебе последовательностью.


Время: 22:24.

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