Сервер обновлений 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 HKLMSOFTWAREPoliciesMicrosoftWindowsWindowsUpdate /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 мы будет проверять, что в ветке реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionUninstall7-Zip существует параметр DisplayVersion со значением 23.01 (это самая последняя версия 7Zip на текущий момент). Это правило пакета WSUS будет выглядеть так (Add Rule -> Registry Version in SZ):<bar:RegSz Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall7-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 вы можете установить или обновить любые программы на компьютерах.