В рамках обновления закрытия уязвимости CVE-2021-1675 пришлось искать способ установки msu-пакетов через ГПО
Смотрите также:
Ежедневная архивация mysql баз под windows из песочницы
Windows Server Manager: решение проблемы “WinRM Negotiate authentication error” при добавлении серве…
Основные командлеты Windows PowerShell
Включение шифрования трафика в SMB 3.0
Для массовой установки пакета .msu в домене необходимо добавить в групповую политику («Конфигурация компьютера->Политики->Конфигурация Windows->Сценарии->Автозагрузка«) следующий
скрипт
:
@echo off
ver|find "10.0.14393">NUL
if NOT errorlevel == 1 (
if "%PROCESSOR_ARCHITECTURE%"=="x86" (
wusa.exe \\PATH_TO_KB\X86-all-windows10.0-kb3176936-x86_1a65d59f938f00a666e7d2de6cd291a5e1d477ae.msu /quiet /norestart
) else (
wusa.exe \\PATH_TO_KB\AMD64-all-windows10.0-kb3176936-x64_795777f8a7f8cd1a4c96ee030848f9f888490555.msu /quiet /norestart
))
В данном примере нам нужно было установить обновление для ОС Windows 10 с версией сборки «10.0.14393«. При этом учитывается разрядность системы и выбирается соответствующая версия пакета .msu.
Не забудьте дать права доступа к файловому серверу «\\PATH_TO_KB» для группы «Domain Computers«.
- Remove From My Forums
-
Question
-
I have a hotfix for an issue in Windows 7 and need to get it out to several hundred domain computers. Can I use Group policy to get it there or will need to manufacture something??
Answers
-
-
Marked as answer by
Dale Qiao
Wednesday, June 9, 2010 2:01 AM
-
Marked as answer by
All replies
-
-
Marked as answer by
Dale Qiao
Wednesday, June 9, 2010 2:01 AM
-
Marked as answer by
-
i’ve got the same issue: looking for a way to deploy a *.msu-Hotfix to ~100 Win7-Clients….the solution stated above does NOT help.
Did you find a working solution Bracer ?
Ove
-
Not yet I Haven’t. Still looking tho.
-
-
Proposed as answer by
StBenedicts
Monday, March 5, 2012 4:26 PM
-
Proposed as answer by
-
I lol’d and agreed.
Also, better late than never… For remotely doing this, the commenter who said wusa is the way to go is correct. To do it remotely you will need to use psexec with the -s switch.
psexec \\servername -s wusa.exe
\\server\Share\Windows6.1-KBxxxxxx-v3-x86.msu /quiet /norestart-
Proposed as answer by
brgnewman
Tuesday, March 6, 2012 4:46 AM
-
Proposed as answer by
-
the best way to deploy any exe msu is PDQ software. since i discovered it i cant go back to any solution.
i’v been seraching the web for 4 days till i found it.
-
Your solution suggests the link you posted covers converting a .msu to .msi, but it does not…
-
Use it how? Where do I put this line? How do I trigger it?
Обновления для операционной системы Windows выпускаются в виде файлов с расширением MSU или CAB. Если на компьютере не работает (отключена) служба Windows Update (Центр обновления Windows), вы можете скачать и установить накопительные обновления или обновления безопасности Windows вручную. В этой статье мы покажем, как скачать и установить в Windows обновления в формате MSU и CAB файлов.
Содержание:
- Как вручную скачать MSU файлы обновлений для Windows?
- Установка обновлений из MSU файлов в Windows
- Как извлечь CAB файл из MSU обновления?
- Установка CAB файла обновлений в Windows 10/11
- Установка CAB и MSU обновления с помощью скриптов
Как вручную скачать MSU файлы обновлений для Windows?
Microsoft выпускает обновления и патчи в формате CAB файла. Именно в таком виде ваш компьютер получает обновления с серверов обновлений Microsoft или локального сервера WSUS. Для более удобного ручного распространения отдельных обновлений клиентами через каталог обновлений Microsoft, такие CAB файлы упаковываются в специальный формат MSU (Microsoft Update Standalone Package).
Вы можете скачать MSU файлы обновлений Windows (а в некоторых случаях и CAB) и других продуктов MSFT можно в каталоге обновлений Microsoft (https://www.catalog.update.microsoft.com/). Перейдите в Microsoft Update Catalog, найдите и скачайте нужное обновление. К примеру, я хочу установить обновление стека 2022-05 Servicing Stack Update for Windows 10 Version 21H2 for x64-based Systems (KB5014032). Нажмите на кнопку Download.
Переместите скачанный файл ssu-19041.1704-x64_70e350118b85fdae082ab7fde8165a947341ba1a.msu в каталог C:\temp. Переименуйте файл на более короткое имя — windows10-21h2-kb5014032.msu.
Установка обновлений из MSU файлов в Windows
Для запуска установки пакета обновления в Windows достаточно дважды щёлкнуть по скачанному MSU файлу. Если обновление применимо к данному компьютеру, откроется диалоговое окно Автономного установщика обновлений Windows (Windows Update Standalone Installer), в котором нужно подтвердить установку апдейта.
При установке MSU обновления может появится ошибка “Обновление неприменимо к этому компьютеру”. Причины этой ошибки подробно разобраны в статье по ссылке.
Также вы можете установить msu пакет обновления из командной строки с помощью утилиты wusa.exe.
Для установки обновления в «тихом» режиме (пользователю не будут показываться никакие всплывающие окна) с отложенной перезагрузкой, откройте командную строку с правами администратора и выполните команду:
wusa.exe c:\Temp\windows10-21h2-kb5014032.msu /quiet /norestart
Через некоторое время проверьте, что обновление успешно установлено:
wmic qfe list | findstr 5014032
Или найдя в журнале событий Установка (Event Viewer -> Windows Logs -> Setup) запись с Event ID 2 от источника WUSA с текстом:
Windows update "Security Update for Windows (KB5014032)" was successfully installed. (Command line: "wusa.exe c:\Temp\windows10-21h2-kb5014032.msu /quiet /norestart ")
Обновление Windows "Security Update for Windows (KB5014032)" было успешно установлено. (Командная строка: C:\Windows\system32\wusa.exe c:\Temp\windows10-21h2-kb5014032.msu /quiet /norestart)
Обратите внимание, что установка обновлений в msu формате в Windows через wusa.exe выполняется медленнее, чем при установке того же обновления в виде cab файла. Причина в выполнении дополнительного сканирования на серверах Windows Update/WSUS. См статью о медленной установке msu обновлений.
Как извлечь CAB файл из MSU обновления?
Если служба Windows Update (wuausrv) работает некорректно, вы не сможете установить обновление из MSU файла. В этом случае можно вручную распаковать пакет MSU, извлечь из него CAB файл обновления и вручную установить его в Windows.
Чтобы распаковать MSU пакет в каталог C:\Temp\kb4056887 (каталог нужно предварительно создать), выполните следующую команду:
expand -f:* “C:\Temp\windows10.0-kb4056887-x64.msu” C:\Temp\kb4056887
Microsoft (R) File Expansion Utility Version 10.0.10011.16384 Copyright (c) Microsoft Corporation. All rights reserved. Adding C:\Temp\kb4056887\WSUSSCAN.cab to Extraction Queue Adding C:\Temp\kb4056887\Windows10.0-KB4056887-x64.cab to Extraction Queue Adding C:\Temp\kb4056887\Windows10.0-KB4056887-x64-pkgProperties.txt to Extraction Queue Adding C:\Temp\kb4056887\Windows10.0-KB4056887-x64.xml to Extraction Queue Expanding Files .... Expanding Files Complete ... 4 files total.
Как вы видите в каталоге появилось 4 типа файлов:
- .xml файл (Windows10.0-KB4056887-x64.xml) — содержит метаданные пакета msu и используется программой Wusa.exe
- .cab файл (Windows10.0-KB4056887-x64.cab — один или несколько) – непосредственно архив с обновлением Windows
- *pkgProperties.txt файл (Windows10.0-KB4056887-x64-pkgProperties.txt)– содержит свойства пакета (дата выпуска, архитектура, тип пакета, ссылка на KB и т.д.)
Также вы можете открыть любой MSU файла с помощью утилиты 7-ZIP и извлечь из него CAB файл.
Установка CAB файла обновлений в Windows 10/11
Вы можете установить CAB файл обновления в Windows двумя способами.
Наиболее универсальный способ установки обновления из CAB файл – утилита DISM.exe. Команда установки может быть такой:
DISM.exe /Online /Add-Package /PackagePath:c:\Temp\kb4056887\Windows10.0-KB4056887-x64.cab
Deployment Image Servicing and Management tool Version: 10.0.10240.16384 Image Version: 10.0.10240.16384 Processing 1 of 1 - Adding package Package_for_KB4056887~31bf3856ad364e35~amd64~~10.0.1.0 [==========================100.0%==========================] The operation completed successfully.
Примечание. Обратите внимание, как быстро происходит установка пакета через DISM по сравнению со скоростью установки обновления из MSU файла.
Если нужно установить CAB пакет в тихом режиме и подавить запрос на перезагрузку компьютера после установки обновления, команда DISM будет такой:
start /wait DISM.exe /Online /Add-Package /PackagePath: c:\Temp\kb4056887\Windows10.0-KB4056887-x64.cab /Quiet /NoRestart
Команда DISM.exe /Add-Package позволяет установить и MSU обновление (поддерживается только установка в офлайн образ Windows). Также вы можете в параметре
/PackagePath
указать путь к каталогу, в котором хранятся MSU и CAB файлы обновлений. DISM рекурсивно просканирует указанные каталог и вложенные папки и установит в образ Windows все найденные CAB и MSU пакеты.
Здесь нужно отметить, что команда DISM.exe /Add-Package не проверяет зависимости и требования к окружению при добавлении CAB файла в образ Windows (в отличии от wusa.exe которая предварительно проверяет, применимо ли MSU обновление к компьютеру.
Для установки CAB файлов в образ Windows вместо команды DISM /Add-Package можно использовать PowerShell командлет
Add-WindowsPackage -Online -PackagePath "C:\win10_kb123456.cab"
В Windows 8 и Windows 7 можно установить обновление с помощью менеджера пакетов Pkgmgr. Команда:
start /w Pkgmgr /ip /m:c:"c:\Temp\kb4056887\Windows-KB123456.cab"
Примечание. В Windows 10 / Windows Server 2016 менеджер пакетов PkgMgr.exe более не поддерживается. При его запуске появляется предупреждении о необходимости использовать для управления пакетами DISM.exe.
Note: The PkgMgr.exe has been deprecated. Please update your scripts to use dism.exe to extract, install, uninstall, configure and update features and packages for Windows.
Примечание. Обратите внимание, что языковые пакеты Windows (MUI) также распространяются в формате CAB. Однако не получиться использовать для их установки команду DISM. Вместо этого, для установки новых языков в систему нужно использовать отдельную утилиту lpksetup.exe.
Вы можете добавить в контекстное меню File Explorer контекстное меню для установки CAB файлов. Для этого добавьте следующие *.reg файл в реестр:
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs] [HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs] @="Install" "HasLUAShield"="" [HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs\Command] @="cmd /k dism /online /add-package /packagepath:\"%1\""
Теперь для установки CAB файла нужно выбрать пункт Install в контекстном меню.
Установка CAB и MSU обновления с помощью скриптов
Если вам нужно установить сразу несколько CAB или MSU обновлений на компьютере, вы можете использовать BAT и PowerShell скрипты. Благодаря таким скриптам вам не придется по ставить обновления вручную по одному.
Создайте на диске каталог с обновлениями и скопируйте в него все MSU файлы, которые нужно обновить. Теперь для установки всех обновлений из указанного каталога, достаточно запустить скрипт install_msu.bat:
Set Folder="C:\updates"
for %%f in (%Folder%\*.msu) do (
wusa.exe %%f /quiet /norestart
)
По аналогии можно использовать PowerShell скрипт для установки MSU обновлений из указанной папки:
$dir = (Get-Item -Path c:\temp -Verbose).FullName
Foreach($item in (ls $dir *.msu -Name))
{
echo $item
$item = $dir + "\" + $item
wusa $item /quiet /norestart | Out-Null
}
Данная инструкция по ручной установке накопительных (если вы не помните что это такое, прочитайте статью про новую модель обновлений Windows систем) и любых других обновлений Windows применима ко всем поддерживаемым версиям ОС: Windows 11/10/8.1 и Windows Server 2022/2019/2016/2012R2.
I want to update Windows 7 computers from PowerShell 2.0 to 5.1 (installer link).
As GPO doesn’t support the msu
installer, I created a logon script which runs this msu file (wusa.exe
). But when a domain user logs in, the installation process stops asking to enter credential for administrator account…
I tried to do a shortcut of this file and runas /savecredential
but it does not work. Also I tried to put the installation policy to PC startup but nothing happened.
Finally I tried to save the file local to the DC server and local to PC but same issue again!
T-Heron
5,3957 gold badges26 silver badges52 bronze badges
asked Oct 9, 2017 at 15:20
1
That is because msi is designed to work within the trustedinstaller service so it is executed using different credentials than the user who is authenticated to the system.
In order to perform an installation in a different way you need the logged user to be included within the local computer Administrators group, in theory it is also possible to use a home-made program or a powershell code that will trigger a launch for the setup program using different credentials trought wmic / wrm. In the past, at windows 2003 server era, I also used tools like remoteexec, psexec but I would not be sure they are still appliable on recent systems.
Personally I always preferred to distribute only msi using the GPO and in case something else need to be installed act remotely using RDP or teamviewer and opening use RUNAS, for example:
1 Right Click on Windows Start icon and choose Run
2 Input “CMD” in open box and click “OK”
3 Input: runas /profile /user:[email protected] “C:\wusa.exe” and press “Enter”
4 Input the password of administrator [email protected]
5 Press “Enter”
Indeed take a look to your current antivirus remote agent / management console since some of them like the ESET ERA I am using, has a way to trigger a windows update on-demand.
answered May 31, 2018 at 14:05
A. LionA. Lion
6735 silver badges12 bronze badges