Пакеты обновлений для Windows могут быть установлены службой автоматически.
Центр обновления Windows и в ручном режиме через Автономный установщик Центра обновления Windows (WUSA) — автономный установщик обновлений из файлов MSU. Помимо WUSA, вы также можете обновить ОС с помощью Обслуживание образов развертывания и управление ими (DISM) — система для обслуживания и управления образами развертывания.
С помощью DISM вы можете устанавливать обновления не только из файлов MSU, но и из CAB-файлов.
Чтобы получить cab-файл пакета обновления, необходимо скачать с сайта Microsoft необходимый msu-файл и распаковать его, запустив с ключом /извлекать .
Замечено, что установка пакетов обновлений в виде cab-файлов с помощью DISM происходит быстрее, чем установка пакетов обновлений из файлов msu с помощью WUSA. Для работы с обновлениями Windows я выбираю DISM, поэтому для него предоставлено следующее описание.
Многие системные администраторы создают свои «коллекции» пакетов обновлений, выполняя их установку в определенной последовательности из пакетного файла.
Но иногда при обслуживании незнакомых компьютеров вы не знаете точно, какие обновления установлены, а какие нет. Если запустить установку всех обновлений из длинного списка, то даже если в образе ОС есть какие-то обновления, система DISM все равно установит их «поверх».
Чтобы не тратить время, в моем скрипте используется «функция», проверяющая установленный пакет обновлений на наличие его в ОС.
В коде скрипта, например, устанавливаются обновления КБ3177467 (обновление стека обслуживания) и КБ3125574 (Удобное накопительное обновление).
Разрядность ОС также определяется автоматически, но это не имеет отношения к теме вопроса.
Скрипт:
Файлы и папки: Файлы пакета обновлений сюда не прикрепляю, так как указанные в скрипте взяты за образец.@echo off set arch=x64 if "%PROCESSOR_ARCHITECTURE%" == "x86" if not defined PROCESSOR_ARCHITEW6432 set arch=x86 echo The most important updates after SP1 (Convenience rollup) %arch% echo ------------------------------------------------------------------------------- echo Get packages list. Please wait. dism /English /Online /Get-Packages > "%TEMP%\packages.txt" echo Servicing stack update: KB3177467 call :exist .
\%arch%\Windows6.1-KB3177467-%arch%.
cab ||^ dism /Online /Add-Package /PackagePath:.
\%arch%\Windows6.1-KB3177467-%arch%.
cab /Quiet /NoRestart echo Convenience rollup update: KB3125574 call :exist .
\%arch%\Windows6.1-KB3125574-v4-%arch%.
cab ||^ dism /Online /Add-Package /PackagePath:.
\%arch%\Windows6.1-KB3125574-v4-%arch%.
cab /Quiet /NoRestart echo ------------------------------------------------------------------------------- pause :exist dism /English /Online /Get-PackageInfo /PackagePath:%1 | find "Package Identity" |^ findstr /g:/ %TEMP%\packages.txt > nul && exit /b exit /b 1
Папки должны создаваться по месту расположения скрипта х64 И х86 в который нужно поместить необходимые пакеты обновлений.
Сам файл сценария можно сохранить в кодировке АНСИ если вы не используете кириллицу для отображения информационных сообщений.
А если вы хотите видеть русский текст, то вам нужно сохранить cmd файл в кодировке OEM 866 .
Описание работы: Перед началом установки DISM спросит ( /Get-Пакеты ]) ОС имеет список уже установленных пакетов обновлений и сохраняет его в текстовом файле во временной папке %TEMP%\packages.txt .
В дальнейшем перед началом установки каждого пакета обновлений производится вызов «функции» :существовать передавая в качестве аргумента путь к пакету, который будет установлен для тестирования.
«Функция» :существовать выдержки ( /Get-PackageInfo ) из проверяемого пакета — служебная информация, в которой находится строка «Идентификация пакета» .
Ээта строка «по конвейеру» передается следующей команде поиска, которая ищет эту строку в сохраненном файле %TEMP%\packages.txt .
По результатам поиска возможны два варианта:
- Если обновление не обнаружено установленным в системе, то "функция" :существовать выходит с кодом %ОШИБКА% 1 , и в этом случае происходит установка ( /Добавить пакет ) пакет системы DISM. После установки обновления (в случае успеха) - сброс %ОШИБКА% и может быть использован для запуска «функции» в следующий раз :существовать ;
- Если обновление обнаружено установленным в системе, то «функция» :существовать выходит с кодом %ОШИБКА% 0 , и в этом случае пакет обновлений не устанавливается, и скрипт переходит к обработке следующего элемента в списке.
Необходимость перезагрузки %ОШИБКА% Нет.
Статус имеющихся пакетов можно просмотреть, открыв файл %TEMP%\packages.txt , созданный во время работы скрипта.
Если нет «ошибочных» состояний, то и проблем быть не должно: то, что не установлено, будет установлено, а то, что уже установлено, будет пропущено.
Использование этого скрипта для обновления ОС при отсутствующих пакетах экономит массу времени! Теги: #Windows #Системное администрирование #cmd #обновления
-
Переход С Recaptcha На Hcaptcha В Cloudflare
19 Oct, 24 -
Дорогая, Я Уменьшил Наше Радио!
19 Oct, 24 -
«Бегун» Подключил Внешние Системы Статистики
19 Oct, 24 -
Мини-Ноутбук
19 Oct, 24 -
Официальный Релиз Os2008 Для N800.
19 Oct, 24