Сервер обновлений WSUS можно использовать не только для установки обновлений на продукты Microsoft (Windows, Office), но и для централизованной установки и обновления любых сторонних программ.
Обычно для установки сторонних приложений в сетях Windows используют возможности GPO по установке программ из MSI пакетов, логон скрипты, или отдельные продукты типа SCCM. Однако вы можете использовать ваш сервер обновлений WSUS для установки, обновления или удаления обновления любых сторонних приложений на компьютерах (например, 7-zip, Adobe Reader, Java, браузеров, обновления драйверов или прошивок BIOS/UEFI и т.д.).
По умолчанию WSUS не поддерживает сторонние программы, однако через открытый WSUS API можно опубликовать и распространить через WSUS любой пакет. В этой статье мы рассмотрим, как использовать open-source WSUS Package Publisher чтобы создать пакет установки (обновления) для любой программы, опубликовать его на WSUS, одобрить для установки на компьютерах домена и отследить статус распространения.
Установка и настройка WSUS Package Publisher
Преимущества WSUS Package Publisher:
- Интеграция со WSUS: использование инфраструктуры WSUS и существующих групп распространения обновлений;
- Можно создавать пакеты обновлений из MSI/MSP, EXE файлов или собственных скриптов;
- Отслеживание результатов установки/обновления программ на компьютерах.
Подразумеваем, что вы уже установили и настроили роль сервера обновлений WSUS на Windows Server, установили .NET Framework 3.5 (или выше) и создали групповые политики для нацеливания Windows клиентов на WSUS сервер.
- Скачайте архив с бинарными файлами Wsus Package Publisher с GitHub (https://github.com/DCourtel/Wsus_Package_Publisher/releases) и распакуйте его в локальный каталог на сервере WSUS;
- Запустите
Wsus Package Publisher.exe
; - Подключитесь к локальному серверу WSUS;
- При первом запуске утилита укажет, что нужно создать сертификат, который будет использоваться для подписывания обновлений. Выберите Tools -> Certificates;
- Если у вас отсутствует собственная инфраструктура PKI, утилита сгенерирует для вас самоподписанный сертификат типа Code Signing (можно создать самоподписанный сертификат с помощью PowerShell);
- Сохраните сертификат в .CER файл и установите его на компьютеры, которые будут получать обновления программ;
- Проще всего распространить сертификат на клиентов с помощью GPO. Откройте консоль управления доменными групповыми политиками, выберите вашу GPO с настройками WSUS. Перейдите в раздел Computer Configuration –> Policies –> Windows Settings –> Security Settings –> Public Key Policies –> Trusted Root Certification Authorities и импортируйте сертификат в хранилища Trusted Root Certification Authorities и Trusted Publishers;
- Затем перейдите в раздел Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Windows Update — > Manage updates offered from Windows Server Updates Service и включите параметр Allow signed content from intranet Microsoft update service location (если вы хотите устанавливать обновления и программы на компьютеры в рабочей группе, нужно включить на них параметр реестра: r
eg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /f /v AcceptTrustedPublisherCerts /t REG_DWORD /d 1
)
Создать пакет обновления программы для установки через WSUS
Теперь можно создать пакет установки (обновления) программы, который будет распространятся через WSUS. В этом примере мы будем обновлять старые версии архиватора 7-Zip на компьютерах в домене.
- Выберите меню Updates -> Create new update;
- Скачайте последнюю версию установочного MSI файла 7 zip с официального сайта и укажите путь к нему; WSUS Package Publisher можно использовать и для распространения EXE файлов. Некоторые EXE установщики можно преобразовать в MSI пакеты с помощью MSI Wrapper.
- Укажите название пакета и описание, которые будут отображаться в окне Windows Update на клиентах;
- На следующем этапе нужно указать критерии, по которым WSUS будет определять, что данное обновление (программа) уже установлено на компьютере.
В примере с 7 Zip мы будет проверять, что в ветке реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip существует параметр DisplayVersion со значением 23.01 (это самая последняя версия 7Zip на текущий момент). Это правило пакета WSUS будет выглядеть так (Add Rule -> Registry Version in SZ):<bar:RegSz Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip" Value="DisplayVersion" Comparison="EqualTo" Data="23.01"/>
Также мы создадим правило, которое проверят что на компьютере установлена 64 битная версия Windows.
<bar:Processor Architecture="9"/>
- Нажмите Next и создайте еще одно правило, которое будет определять, нужно ли устанавливать обновление на этом компьютере. В нашем случае это будет обратное правило (когда параметр реестра с указанным значением отсутствует). Можно просто включить опцию Reverse Rule в настройках правила. В рамках статьи мы немного упростили правило WSUS. Наше правило установит 7ZIP на любой компьютере, даже если он был там не установлен. В реальной среде нужно сначала проверить, что на компьютере установлен любая другая версия 7ZIP.
- Нажмите Next. WSUS package publisher создат пакет и опубликует на на WSUS.
Теперь вы можете установить пакет WSUS на клиентах. Обратите внимание, что для управления сторонними приложениями нужно использовать консоль WSUS Package Publisher, т.к. сторонние пакеты не отображаются в стандартной административной консоли WSUS.
- Выберите свой пакет в разделе Updates и выберите Approve;
- Выберите группу клиентов WSUS, на которые нужно одобрить установку программы (выберите Approve For Installation);Подробнее об одобрении обновлений на WSUS.
- Через некоторое время выполните обнаружение обновлений на клиентских компьютерах. В зависимости от настроек политики WSUS, компьютеры должны скачать и установить обновление;
- Проверьте на клиенте, что пакет с обновлением 7-ZIP скачался и установился успешно. Выполните команду
Get-WindowsUpdate
из PowerShell модуля PSWindowsUpdate.
Вы можете отслеживать статус установки/обновления программ на компьютерах клиентов в консоли. Выберите ваш пакет и перейдите на вкладку Report. Здесь видно на скольких компьютерах программы была установлена/обновлена.
Таким образом с помощью WSUS вы можете установить или обновить любые программы на компьютерах.