Поделиться через


Полное руководство по обслуживанию Microsoft WSUS и SUP Диспетчера конфигураций

В этой статье рассматриваются некоторые распространенные вопросы об обслуживании WSUS Configuration Manager средах.

Исходная версия продукта: Windows Servers, Windows Server Update Services, Configuration Manager
Исходный номер базы знаний: 4490644

Введение

Часто задаваемые вопросы см. в разделе "Как следует правильно выполнять это обслуживание в Configuration Manager или как часто следует выполнять это обслуживание". Нередки случаи, когда Configuration Manager не знают о том, что обслуживание WSUS должно выполняться. Большинство из нас просто настраивают серверы WSUS, так как это обязательное условие для точки обновления программного обеспечения (SUP). После настройки SUP мы закроем консоль WSUS и предположим, что она не существует. К сожалению, это может быть проблематичным для Configuration Manager клиентов и общей производительности сервера WSUS/SUP.

Понимая, что это обслуживание необходимо выполнить, вы хотите узнать, какое обслуживание необходимо выполнить и как часто это необходимо сделать. Ответ заключается в том, что необходимо выполнять ежемесячное обслуживание. Обслуживание выполняется легко и не занимает много времени для серверов WSUS, которые были хорошо обслуживаются с начала. Однако если с момента обслуживания служб WSUS прошло некоторое время, очистка может оказаться более сложной или занять много времени в первый раз. В последующие месяцы это будет гораздо проще или быстрее.

Дополнительные сведения о кратких шагах и автоматических сценариях см. в разделе "Обслуживание баз данных WSUS вручную" и "Автоматически".

Обслуживание служб WSUS при Configuration Manager версии Current Branch 1906 и более поздних версий

Если вы используете Configuration Manager Current Branch версии 1906 или более поздней, рекомендуется включить параметры обслуживания WSUS в конфигурации точки обновления программного обеспечения на сайте верхнего уровня, чтобы автоматизировать процедуры очистки после каждой синхронизации. Он будет эффективно обрабатывать все операции очистки, описанные в этой статье, за исключением резервного копирования и повторного индексирования базы данных WSUS. По-прежнему следует автоматизировать резервное копирование базы данных WSUS, а также повторное индексирование базы данных WSUS по расписанию.

Снимок экрана: параметры обслуживания WSUS в компонентах точки обновления программного обеспечения окно свойств.

Дополнительные сведения об обслуживании обновлений программного обеспечения в Configuration Manager см. в разделе "Обслуживание обновлений программного обеспечения".

Важные замечания

Примечание.

Если вы используете функции обслуживания, добавленные в Configuration Manager версии 1906, вам не нужно учитывать эти элементы, так как Configuration Manager выполняет очистку после каждой синхронизации.

  1. Перед началом процесса обслуживания ознакомьтесь со всеми сведениями и инструкциями, приведенными в этой статье.

  2. При использовании служб WSUS вместе с подчиненными серверами серверы WSUS добавляются сверху вниз, но должны быть удалены снизу вверх. При синхронизации или добавлении обновлений сначала они переходя на вышестоящий сервер WSUS, а затем реплицируются на подчиненные серверы. При выполнении очистки и удаления элементов с серверов WSUS необходимо начать с нижней части иерархии.

  3. Обслуживание WSUS можно выполнять одновременно на нескольких серверах одного уровня. При этом убедитесь, что один уровень выполнен, прежде чем перейти к следующему. Описанные ниже действия по очистке и повторному индексации должны выполняться на всех серверах WSUS независимо от того, являются ли они сервером WSUS реплики. Дополнительные сведения об определении того, является ли сервер WSUS репликой, см. в разделе "Отклонение замененных обновлений".

  4. Убедитесь, что единицы sup не синхронизируются во время обслуживания, так как это может привести к потере уже выполненных работ. Проверьте расписание синхронизации SUP и временно задайте его вручную во время этого процесса.

    Снимок экрана: параметр

  5. Если на первичном сайте или в центре администрирования имеется несколько поставщиков SUSDB, которые не совместно используют SUSDB, рассмотрите сервер WSUS, который синхронизируется с первым SUP на сайте, как находящийся на уровне ниже сайта. Например, на сайте центра администрирования есть два SUP:

    • Новый синхронизируется с Центром обновления Майкрософт. Это будет мой верхний уровень (уровень 1).
    • Сервер под именем "2012" синхронизируется с "Новый" и будет учитываться во втором уровне. Его можно очистить одновременно со всеми другими серверами уровня 2, например с одним sup на первичном сайте.

    Снимок экрана: два примера SUP.

Выполнение обслуживания WSUS

Основные шаги, необходимые для надлежащего обслуживания WSUS:

  1. Резервное копирование базы данных WSUS
  2. Создание индексов настраиваемых полей
  3. Реиндексация базы данных WSUS
  4. Отклонение замененных обновлений и запуск обслуживания
  5. Мастер очистки WSUS-сервера.

Резервное копирование базы данных WSUS

Создайте резервную копию базы данных WSUS (SUSDB) с помощью нужного метода. Для получения дополнительной информации см. Создание общего почтового ящика.

Создание индексов настраиваемых полей

Этот процесс является необязательным, но рекомендуется. Он значительно повышает производительность во время последующих операций очистки.

Если вы используете Configuration Manager Current Branch версии 1906 или более поздней, рекомендуется использовать Configuration Manager для создания индексов. Чтобы создать индексы, настройте параметр "Добавить некластеризованные индексы в базу данных WSUS " в конфигурации точки обновления программного обеспечения для наиболее верхнего сайта.

Расположение параметра

Если вы используете более раннюю версию Configuration Manager или автономные серверы WSUS, выполните следующие действия, чтобы создать пользовательские индексы в базе данных SUSDB. Для каждой базы данных SUSDB это одноразовая процедура.

  1. Убедитесь, что у вас есть резервная копия базы данных SUSDB.

  2. Используйте SQL Management Studio для подключения к базе данных SUSDB так же, как описано в разделе "Повторная индексация базы данных WSUS ".

  3. Выполните следующий скрипт для SUSDB, чтобы создать два пользовательских индекса:

    -- Create custom index in tbLocalizedPropertyForRevision
    USE [SUSDB]
    
    CREATE NONCLUSTERED INDEX [nclLocalizedPropertyID] ON [dbo].[tbLocalizedPropertyForRevision]
    (
         [LocalizedPropertyID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    
    -- Create custom index in tbRevisionSupersedesUpdate
    CREATE NONCLUSTERED INDEX [nclSupercededUpdateID] ON [dbo].[tbRevisionSupersedesUpdate]
    (
         [SupersededUpdateID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    

    Если пользовательские индексы были созданы ранее, выполнение скрипта снова приведет к ошибке, аналогичной следующей:

    Сообщение 1913, уровень 16, состояние 1, строка 1
    Не удалось выполнить операцию, так как индекс или статистика с именем nclLocalizedPropertyID уже существует в таблице dbo.tbLocalizedPropertyForRevision.

Реиндексация базы данных WSUS

Для повторной индексации базы данных WSUS (SUSDB) используйте скрипт T-SQL базы данных WSUS .

Действия по подключению к SUSDB и выполнению повторного индексирования различаются в зависимости от того, работает ли SUSDB в SQL Server или внутренняя база данных Windows (WID). Чтобы определить, где выполняется SUSDB, SQLServerName проверьте значение записи реестра на сервере WSUS, расположенном в подразделе HKEY_LOCAL_MACHINE\Software\Microsoft\Update Services\Server\Setup .

Если значение содержит только имя сервера или сервера\экземпляра, SUSDB выполняется на SQL Server. Если значение содержит строку или ##SSEE в ##WID ней, SUSDB выполняется в WID, как показано ниже.

Снимок экрана: SqlServerName-SSEE.

Снимок экрана: SqlServerName-WID.

Если SUSDB был установлен в WID

Если база данных SUSDB установлена на WID, SQL Server Management Studio Express необходимо установить локально для запуска скрипта повторной индексизации. Ниже приведен простой способ определить, какую версию SQL Server Management Studio Express установить:

  • Windows Server 2012 и более поздние версии

    • Перейдите к C:\Windows\WID\Log журналу ошибок, содержащего номер версии.

    • Как определить версию, выпуск и уровень обновления системы SQL Server и ее компонентов Это значение указывает, на каком уровне пакета обновления (SP) выполняется WID. Включите уровень sp при поиске в Центре загрузки Майкрософт SQL Server Management Studio Express.

  • Для Windows Server 2008 R2 или предыдущих версий:

    • Перейдите в C:\Windows\SYSMSI\SSEE\MSSQL.2005\MSSQL\LOG блокнот и откройте последний журнал ошибок. Вверху будет номер версии (например, 9.00.4035.00 x64). Как определить версию, выпуск и уровень обновления системы SQL Server и ее компонентов Этот номер версии указывает, какой уровень пакета обновления выполняется. Включите уровень sp при поиске в Центре загрузки Майкрософт SQL Server Management Studio Express.

После установки SQL Server Management Studio Express запустите его и введите имя сервера для подключения:

  • Если ос имеет Windows Server 2012 или более поздних версий, используйте \\.\pipe\MICROSOFT##WID\tsql\query.
  • Если ОС старше Windows Server 2012, введите \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query.

Если при попытке подключения к SUSDB с помощью SQL Server Management Studio (SSMS) возникают ошибки, аналогичные приведенным ниже, попробуйте запустить SSMS с помощью параметра запуска от имени администратора.

Снимок экрана: ошибка

Если SUSDB был установлен на SQL Server

Если база данных SUSDB была установлена в полном SQL Server, запустите SQL Server Management Studio и при появлении запроса введите имя сервера (и экземпляра при необходимости).

Совет

Кроме того, для sqlcmd запуска скрипта повторного индекса можно использовать вызываемую служебную программу. Дополнительные сведения см. в Заметках о выпуске.

Выполнение скрипта

Чтобы запустить скрипт в SQL Server Management Studio или SQL Server Management Studio Express, выберите "Создать запрос", вставьте скрипт в окно и нажмите кнопку "Выполнить". По завершении запроса в строке состояния отобразится сообщение об успешном выполнении запроса. Панель результатов будет содержать сообщения, относящиеся к перестроенным индексам.

Выполнить команду SQL.

Снимок экрана: журнал успешного выполнения.

Отклонение замененных обновлений и запуск обслуживания

Отклоните заменяемые обновления на сервере WSUS, чтобы помочь клиентам более эффективно сканировать данные. Перед отклонением обновлений убедитесь, что замененные обновления развернуты и заменяемые обновления больше не нужны. Configuration Manager включает отдельную очистку, которая позволяет истечь срок действия заменяемых обновлений на основе указанных критериев. Дополнительные сведения см. в следующих статьях:

Следующий SQL-запрос можно выполнить к базе данных SUSDB, чтобы быстро определить количество заменяемых обновлений. Если количество заменяемых обновлений превышает 1500, это может вызвать различные проблемы, связанные с обновлением программного обеспечения на стороне сервера и клиента.

-- Find the number of superseded updates
Select COUNT(UpdateID) from vwMinimalUpdate where IsSuperseded=1 and Declined=0

Если вы используете Configuration Manager Current Branch версии 1906 или более поздней, рекомендуется автоматически отклонить заменяемые обновления, включив отклонение обновлений с истекшим сроком действия в WSUS в соответствии с правилами замены в конфигурации точки обновления программного обеспечения для наиболее верхнего сайта.

Снимок экрана: отклонение обновлений с истекшим сроком действия в WSUS в соответствии с правилами замены на вкладке

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

Если вы используете автономные серверы WSUS или более раннюю версию Configuration Manager, вы можете вручную отклонить заменяемые обновления с помощью консоли WSUS. Вы также можете запустить этот сценарий PowerShell. Затем скопируйте и сохраните скрипт в видеDecline-SupersededUpdatesWithExclusionPeriod.ps1 файла скрипта.

Примечание.

Этот скрипт предоставляется как есть. Его следует полностью протестировать в лаборатории перед использованием в рабочей области. Корпорация Майкрософт не дает никаких гарантий относительно использования этого скрипта. Всегда сначала запустите скрипт с параметром -SkipDecline , чтобы получить сводку о том, сколько замененных обновлений будет отклонено.

Если Configuration Manager установлено значение Immediately expire supersed updates (см. ниже), сценарий PowerShell можно использовать для отклонения всех заменяемых обновлений. Это следует сделать на всех автономных серверах WSUS в иерархии Configuration Manager/WSUS.

Снимок экрана: параметры немедленного истечения срока действия замененных обновлений на вкладке

Вам не нужно запускать сценарий PowerShell на серверах WSUS, задаваемых в качестве реплик, таких как ВТОРИЧНЫЕ ПОСТАВЩИКИ сайтов. Чтобы определить, является ли сервер WSUS репликой, проверьте параметры источника обновления.

Снимок экрана: параметр

Если срок действия обновлений не настроен на немедленное истечении срока действия Configuration Manager, сценарий PowerShell должен выполняться с периодом исключения, который соответствует параметру Configuration Manager в течение нескольких дней с истекшим сроком действия заменяемых обновлений. В этом случае это будет 60 дней, так как свойства компонента SUP настроены на ожидание за два месяца до истечения срока действия замененных обновлений:

Снимок экрана: месяцы, по истечении которых истекает срок действия замененных обновлений.

В следующих командных строках показаны различные способы выполнения скрипта PowerShell:

Примечание.

При запуске скрипта на сервере WSUS используйте LOCALHOST вместо фактического SERVERNAME.

Decline-SupersededUpdatesWithExclusionPeriod.ps1 -UpdateServer SERVERNAME -Port 8530 –SkipDecline

Decline-SupersededUpdatesWithExclusionPeriod.ps1 -UpdateServer SERVERNAME -Port 8530 –ExclusionPeriod 60

Decline-SupersededUpdatesWithExclusionPeriod.ps1 -UpdateServer SERVERNAME -Port 8530

Decline-SupersededUpdatesWithExclusionPeriod.ps1 -UpdateServer SERVERNAME -UseSSL -Port 8531

Запуск скрипта с a -SkipDecline и -ExclusionPeriod 60 сбор сведений об обновлениях на сервере WSUS и о том, сколько обновлений можно отклонить:

Окно Windows PowerShell с запущенными SkipDecline и ExclusionPeriod 60.

Запуск скрипта с помощью -ExclusionPeriod 60, чтобы отклонить заменяемые обновления старше 60 дней:

Снимок экрана: окно Windows PowerShell с запущенным приложением ExclusionPeriod 60.

Индикаторы вывода и хода выполнения отображаются во время выполнения скрипта. Обратите внимание SupersededUpdates.csv файла, который будет содержать список всех обновлений, отклоненных скриптом:

Снимок экрана: Windows PowerShell и индикатор хода выполнения.

Примечание.

Если при попытке отклонить заменяемые обновления с помощью приведенного выше скрипта PowerShell возникают проблемы, см. раздел "Время ожидания выполнения сценария Decline-SupersededUpdatesWithExclusionPeriod.ps1 при подключении к серверу WSUS" или ошибка 401 при выполнении для устранения неполадок.

После того как замененные обновления будут отклонены, для обеспечения оптимальной производительности SUSDB следует повторно выполнить повторное индексация. Дополнительные сведения см. в разделе "Повторная индексация базы данных WSUS".

Мастер очистки WSUS-сервера.

Мастер очистки сервера WSUS предоставляет параметры для очистки следующих элементов:

  • Неиспользуемые обновления и редакции обновлений (также известные как устаревшие обновления)
  • Компьютеры, не обращайтесь к серверу
  • Ненужные файлы обновления
  • Обновления с истекшим сроком действия
  • Замененные обновления

В среде Configuration Manager компьютеры не связываются с сервером и ненужными параметрами файлов обновления, так как Configuration Manager управляет содержимым обновления программного обеспечения и устройствами, если только параметры создания всех событий отчетов WSUS или создания событий отчетов о состоянии WSUS выбраны в разделе "Параметры синхронизации обновлений программного обеспечения". Если у вас настроен один из этих параметров, рассмотрите возможность автоматизации очистки сервера WSUS для выполнения очистки этих двух вариантов.

Если вы используете Configuration Manager current branch версии 1906 или более поздней версии, включение отклонять обновления с истекшим сроком действия в WSUS в соответствии с параметром правил замены обрабатывает отклонение обновлений с истекшим сроком действия и замененных обновлений на основе правил замены, указанных в Configuration Manager. Включение параметра "Удалить устаревшие обновления" из базы данных WSUS в Configuration Manager Current Branch версии 1906 выполняет очистку неиспользуемых обновлений и исправлений обновлений (устаревших обновлений). Рекомендуется включить эти параметры в конфигурации точки обновления программного обеспечения на сайте верхнего уровня, чтобы разрешить Configuration Manager очистить базу данных WSUS.

Снимок экрана: параметр

Если ранее вы никогда не очищали устаревшие обновления из базы данных WSUS, время ожидания этой задачи может истекло. Дополнительные сведения см. в файле WsyncMgr.log и вручную запустить скрипт SQL, указанный в help! Мои службы WSUS выполняются в течение многих лет без выполнения обслуживания, и мастер очистки один раз прерывает время ожидания, что позволит последующим попыткам Configuration Manager успешно выполняться. Дополнительные сведения о очистке и обслуживании WSUS в Configuration Manager см. в документации.

Для автономных серверов WSUS или при использовании более старой версии Configuration Manager рекомендуется периодически запускать мастер очистки WSUS. Если мастер очистки сервера WSUS никогда не выполнялся и службы WSUS уже некоторое время работают в рабочей среде, время ожидания очистки может истекло. В этом случае сначала выполните повторную индексизацию на шаге 2 и шаге 3 , а затем выполните очистку, указав только неиспользуемые обновления и флажок " Исправления обновлений ".

Если вы никогда не запускали мастер очистки WSUS, для выполнения очистки с неиспользуемых обновлений и исправлений обновлений может потребоваться несколько проходов. Если время ожидания истекло, запустите его еще раз, пока не завершится, а затем запустите все остальные параметры по одному. Наконец, выполните полный проход со всеми проверенными вариантами. Если время ожидания продолжает возникать, см. SQL Server help! My WSUS has been running for years without ever having maintenance done and the cleanup wizard keeps timing out. Выполнение мастера очистки сервера или SQL может занять несколько часов или дней.

Мастер очистки сервера WSUS запускается из консоли WSUS. Он находится в разделе "Параметры", как показано ниже:

Снимок экрана: страница расположения мастера очистки сервера WSUS.

Для получения дополнительной информации см. раздел Просмотр журнала ошибок SQL Server.

Снимок экрана: начальная страница мастера очистки сервера WSUS.

После того как он сообщает о количестве удаленных элементов, очистка завершается. Если эти сведения не отображаются на сервере WSUS, можно предположить, что время ожидания очистки истекло. В этом случае вам потребуется запустить его снова или использовать альтернативу SQL.

Мастер очистки WSUS-сервера после завершения выполнения задачи.

После того как замененные обновления будут отклонены, для обеспечения оптимальной производительности SUSDB следует повторно выполнить повторное индексация. Дополнительные сведения см. в разделе "Повторная индексация базы данных WSUS ".

Устранение неполадок

вызов справки. Мои службы WSUS выполняются в течение многих лет без выполнения обслуживания, и мастер очистки продолжает использовать время ожидания

Здесь есть два разных варианта:

  1. Переустановите службы WSUS с новой базой данных. Существует ряд оповещений, связанных с этим, включая длину начальной синхронизации и полную проверку клиента в SUSDB, а также разностные проверки.

  2. Убедитесь, что у вас есть резервная копия базы данных SUSDB, а затем выполните повторную индексацию. По завершении выполните следующий сценарий в SQL Server Management Studio или SQL Server Management Studio Express. По завершении выполните все приведенные выше инструкции по выполнению обслуживания. Этот последний шаг необходим, так как хранимая spDeleteUpdate процедура удаляет только неиспользуемые обновления и редакции обновлений.

Примечание.

Перед запуском скрипта выполните действия, описанные в процедуре хранимой процедуры spDeleteUpdate , чтобы повысить производительность выполнения spDeleteUpdate.

DECLARE @var1 INT
DECLARE @msg nvarchar(100)

CREATE TABLE #results (Col1 INT)
INSERT INTO #results(Col1) EXEC spGetObsoleteUpdatesToCleanup

DECLARE WC Cursor
FOR
SELECT Col1 FROM #results

OPEN WC
FETCH NEXT FROM WC
INTO @var1
WHILE (@@FETCH_STATUS > -1)
BEGIN SET @msg = 'Deleting' + CONVERT(varchar(10), @var1)
RAISERROR(@msg,0,1) WITH NOWAIT EXEC spDeleteUpdate @localUpdateID=@var1
FETCH NEXT FROM WC INTO @var1 END

CLOSE WC
DEALLOCATE WC

DROP TABLE #results

Время ожидания Decline-SupersededUpdatesWithExclusionPeriod.ps1 при подключении к серверу WSUS или ошибка 401 при выполнении

Если при попытке использовать сценарий PowerShell для отклонения заменяемых обновлений возникают ошибки, можно запустить альтернативный сценарий SQL для SUDB.

  1. Если Configuration Manager используется вместе с WSUS, проверьте правила замены компонентов>точки обновления программного обеспечения, чтобы узнать, как быстро истекает срок действия заменяемых обновлений, например сразу или через X месяцев. Запишите путь к этому файлу.

    Снимок экрана: правила замены.

  2. Если вы еще не сделали резервное копирование базы данных SUSDB, сделайте это, прежде чем продолжить.

  3. Используйте SQL Server Management Studio для подключения к SUSDB.

  4. Выполните следующий запрос. Число 90 DECLARE @thresholdDays INT = 90 в строке, включаемой в строку, должно соответствовать правилам замены из шага 1 этой процедуры и правильному числу дней в соответствии с количеством месяцев, настроенных в правилах замены. Если срок действия истекает немедленно, значение в SQL-запросе должно @thresholdDays быть равно нулю.

    -- Decline superseded updates in SUSDB; alternative to Decline-SupersededUpdatesWithExclusionPeriod.ps1
    DECLARE @thresholdDays INT = 90 -- Specify the number of days between today and the release date for which the superseded updates must not be declined (i.e., updates older than 90 days). This should match configuration of supersedence rules in SUP component properties, if ConfigMgr is being used with WSUS.
    DECLARE @testRun BIT = 0 -- Set this to 1 to test without declining anything.
    -- There shouldn't be any need to modify anything after this line.
    
    DECLARE @uid UNIQUEIDENTIFIER
    DECLARE @title NVARCHAR(500)
    DECLARE @date DATETIME
    DECLARE @userName NVARCHAR(100) = SYSTEM_USER
    
    DECLARE @count INT = 0
    
    DECLARE DU CURSOR FOR
      SELECT MU.UpdateID, U.DefaultTitle, U.CreationDate FROM vwMinimalUpdate MU
      JOIN PUBLIC_VIEWS.vUpdate U ON MU.UpdateID = U.UpdateId
    WHERE MU.IsSuperseded = 1 AND MU.Declined = 0 AND MU.IsLatestRevision = 1
      AND MU.CreationDate < DATEADD(dd,-@thresholdDays,GETDATE())
    ORDER BY MU.CreationDate
    
    PRINT 'Declining superseded updates older than ' + CONVERT(NVARCHAR(5), @thresholdDays) + ' days.' + CHAR(10)
    
    OPEN DU
    FETCH NEXT FROM DU INTO @uid, @title, @date
    WHILE (@@FETCH_STATUS > - 1)
    BEGIN
      SET @count = @count + 1
      PRINT 'Declining update ' + CONVERT(NVARCHAR(50), @uid) + ' (Creation Date ' + CONVERT(NVARCHAR(50), @date) + ') - ' + @title + ' ...'
      IF @testRun = 0
         EXEC spDeclineUpdate @updateID = @uid, @adminName = @userName, @failIfReplica = 1
      FETCH NEXT FROM DU INTO @uid, @title, @date
    END
    
    CLOSE DU
    DEALLOCATE DU
    
    PRINT CHAR(10) + 'Attempted to decline ' + CONVERT(NVARCHAR(10), @count) + ' updates.'
    
  5. Чтобы проверить ход выполнения, просмотрите вкладку " Сообщения" в области результатов .

Что делать, если я обнаружит, что мне нужно одно из обновлений, которые я отклонил?

Если вы решили, что вам нужно одно из этих отклоненных обновлений в Configuration Manager, вы можете получить его обратно в WSUS, щелкнув обновление правой кнопкой мыши и выбрав "Утвердить". Измените утверждение на "Не утверждено", а затем повторно выполните синхронизацию SUP, чтобы вернуть обновление.

Снимок экрана: экран утверждения Обновления WSUS.

Если обновление больше не находится в WSUS, его можно импортировать из каталога Центра обновления Майкрософт, если срок его действия еще не истек или он был удален из каталога.

Выполнение импорта обновлений в WSUS.

Автоматизация обслуживания WSUS

Примечание.

При использовании Configuration Manager версии 1906 или более поздней автоматизируют процедуры очистки, включив параметры обслуживания WSUS в конфигурации точки обновления программного обеспечения сайта верхнего уровня. Эти параметры обрабатывают все операции очистки, выполняемые мастером очистки сервера WSUS. Однако по-прежнему следует автоматически выполнять резервное копирование и переиндексировать базу данных WSUS по расписанию.

Задачи обслуживания WSUS можно автоматизировать при условии, что сначала выполняются некоторые требования.

  1. Если очистка WSUS никогда не выполнялася, первые две очистки необходимо выполнить вручную. Вторая очистка вручную должна выполняться через 30 дней после первого, так как для некоторых обновлений и исправлений требуется 30 дней. Существуют конкретные причины, по которым вы не хотите автоматизировать процесс до второй очистки. Первая очистка, вероятно, будет выполняться дольше обычного. Поэтому вы не можете оценить, сколько времени обычно занимает это обслуживание. Вторая очистка — это гораздо лучший индикатор того, что является нормальным для компьютеров. Это важно, так как необходимо выяснить, сколько времени занимает каждый шаг в качестве базового плана (мне также нужно добавить комнаты длительностью около 30 минут), чтобы можно было определить время для расписания.

  2. Если у вас есть подчиненные серверы WSUS, сначала необходимо выполнить обслуживание на них, а затем — вышестоящие серверы.

  3. Чтобы запланировать повторную индексизацию SUSDB, потребуется полная версия SQL Server. внутренняя база данных Windows (WID) не имеет возможности планирования задачи обслуживания, хотя SQL Server Management Studio Express. Тем не менее, в случаях, когда используется WID, SQLCMD можно использовать планировщик задач с упомянутым ранее. Если вы переходите по этому маршруту, важно не синхронизировать серверы ИП WSUS в течение этого периода обслуживания! В этом случае нисходящие серверы, возможно, просто будут повторно выполнять синхронизацию всех обновлений, которые вы только что пытались очистить. Я запланировать эту ночь перед синхронизацией am, поэтому у меня есть время проверить ее перед запуском синхронизации.

Необходимые и полезные ссылки:

Скрипт очистки WSUS

Примечание.

При запуске скрипта на сервере WSUS используйте LOCALHOST вместо фактического SERVERNAME. Кроме того, замените PORT используемым.

[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")`
 | out-null
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("SERVERNAME",$true,PORT);
$cleanupScope = new-object Microsoft.UpdateServices.Administration.CleanupScope;
$cleanupScope.DeclineSupersededUpdates = $true
$cleanupScope.DeclineExpiredUpdates = $true
$cleanupScope.CleanupObsoleteUpdates = $true
$cleanupScope.CompressUpdates = $true
#$cleanupScope.CleanupObsoleteComputers = $true
$cleanupScope.CleanupUnneededContentFiles = $true
$cleanupManager = $wsus.GetCleanupManager();
$cleanupManager.PerformCleanup($cleanupScope);

Настройка задачи очистки WSUS в планировщике задач

Примечание.

Как упоминалось ранее, если вы используете Configuration Manager Current Branch версии 1906 или более поздней, автоматизировать процедуры очистки, включив параметры обслуживания WSUS в конфигурации точки обновления программного обеспечения сайта верхнего уровня. Для автономных серверов WSUS или более ранних версий Configuration Manager можно продолжить выполнение следующих действий.

Запись блога "Сценарий выходных выходных дней", упомянутая в предыдущем разделе, содержит основные инструкции и способы устранения неполадок для этого шага. Однако я пошаговую процедуру в следующих шагах.

  1. Откройте планировщик задач и выберите "Создать задачу". На вкладке " Общие" задайте имя задачи— пользователя, от имени которого вы хотите запустить сценарий PowerShell (большинство пользователей используют учетную запись службы). Выберите "Выполнить" независимо от того, вошел ли пользователь в систему, и при необходимости добавьте описание.

    Снимок экрана: экран создания задачи WSUS.

  2. На вкладке " Действия" добавьте новое действие и укажите программу или сценарий, которые нужно запустить. В этом случае необходимо использовать PowerShell и указать файл PS1, который мы хотим запустить. Можно использовать скрипт очистки WSUS. Этот сценарий выполняет параметры очистки, Configuration Manager current Branch версии 1906 не выполняет. Их можно раскомментировать, если вы используете автономные службы WSUS или более раннюю версию Configuration Manager. Если вы хотите создать журнал, можно изменить последнюю строку скрипта следующим образом:

    Примечание.

    При запуске скрипта на сервере WSUS используйте LOCALHOST вместо фактического SERVERNAME. Кроме того, замените PORT используемым.

    [reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
    $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("SERVERNAME",$true,PORT);
    $cleanupScope = new-object Microsoft.UpdateServices.Administration.CleanupScope;
    # $cleanupScope.DeclineSupersededUpdates = $true # Performed by CM1906
    # $cleanupScope.DeclineExpiredUpdates    = $true # Performed by CM1906
    # $cleanupScope.CleanupObsoleteUpdates   = $true # Performed by CM1906
    $cleanupScope.CompressUpdates          = $true
    $cleanupScope.CleanupObsoleteComputers = $true
    $cleanupScope.CleanupUnneededContentFiles = $true
    $cleanupManager = $wsus.GetCleanupManager();
    $cleanupManager.PerformCleanup($cleanupScope) | Out-File C:\WSUS\WsusClean.txt;
    

    При сохранении в планировщике задач появится предупреждение об ИИ или предупреждении. На это предупреждение можно не обращать внимания.

    Для начала выполнения задачи WSUS добавит строку в сценарий.

  3. На вкладке "Триггеры " задайте расписание на один раз в месяц или по любому расписанию. Опять же, необходимо убедиться, что службы WSUS не синхронизируются во время очистки и повторной индексации.

    Установка параметра

  4. Задайте любые другие условия или параметры, которые вы хотите настроить. При сохранении задачи может появиться запрос на ввод учетных данных пользователя запуска от имени.

  5. Эти действия также можно использовать для настройки Decline-SupersededUpdatesWithExclusionPeriod.ps1запуска каждые три месяца. Обычно этот сценарий выполняется перед другими шагами очистки, но только после запуска вручную и успешного завершения. Я запускаю в 12:00 в первое воскресенье каждые три месяца.

Настройка повторной индексации SUSDB для WID с помощью SQLCMD и планировщика задач

  1. Сохраните скрипт базы данных WSUS в виде SQL-файла (например, SUSDBMaint.sql).

  2. Создайте базовую задачу и присвойте ее имя:

    Экран

  3. Запланировать выполнение этой задачи примерно через 30 минут после завершения очистки. Очистка выполняется в 1:00 каждое первое воскресенье. Выполнение занимает около 30 минут, и я предоставьте ему еще 30 минут перед началом повторного индекса. Это означает, что я запланировать эту задачу на каждое первое воскресенье в 02:00, как показано ниже:

    Установите частоту для этой задачи в

  4. Выберите действие для запуска программы. В поле "Программа/скрипт " введите следующую команду. Файл, указанный после параметра -i , является путем к скрипту SQL, сохраненному на шаге 1. Файл, указанный после параметра -o , находится в расположении журнала. Приведем пример:

    "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.exe" -S \\.\pipe\Microsoft##WID\tsql\query -i C:\WSUS\SUSDBMaint.sql -o c:\WSUS\reindexout.txt

    Вид сценария в

  5. Вы получите предупреждение, аналогичное тому, которое вы получили при создании задачи очистки. Выберите "Да ", чтобы принять аргументы, а затем нажмите кнопку "Готово ", чтобы применить:

    Всплывающее окно Планировщика задач

  6. Вы можете протестировать скрипт, принудительно выполнив его и проверив журнал на ошибки. Если у вас могут быть проблемы, журнал сообщит причину. Обычно в случае сбоя учетная запись, выполняющие задачу, не имеет соответствующих разрешений или служба WID не запускается.

Настройка базовой задачи запланированного обслуживания в SQL для баз данных SUSD, отличных от WID

Примечание.

Вы должны быть системным администратором в SQL Server для создания планов обслуживания или управления ими.

  1. Запустите Microsoft SQL Server Management Studio и подключитесь к экземпляру локального сервера. Разверните раздел "Управление", щелкните правой кнопкой мыши "Планы обслуживания" и выберите "Новый план обслуживания". Назовите ваш план.

    Введите название для своего плана обслуживания WSUS.

  2. Выберите subplan1 и убедитесь, что панель элементов находится в контексте:

    Убедитесь, что ваша панель элементов соответствует содержимому.

  3. Перетащите и вставьте задачу "Задача выполнения инструкции T-SQL".

    Снимок экрана: параметр задачи «Выполнение инструкции T-SQL».

  4. Щелкните правой кнопкой мыши файл Windows.edb и выберите пункт Свойства. Скопируйте и вставьте сценарий переиндексации WSUS и нажмите "OK".

    Снимок экрана: копирование и вставка скрипта повторной индексизации WSUS.

  5. Запланировать выполнение этой задачи примерно через 30 минут после завершения очистки. Очистка выполняется в 1:00 каждое первое воскресенье. Выполнение занимает около 30 минут, и я предоставьте ему еще 30 минут перед началом повторного индекса. Это означает, что эта задача будет выполняться каждое первое воскресенье в 2:00.

    Экран

  6. При создании плана обслуживания рекомендуется также добавить в него резервную копию SUSDB. Обычно сначала выполняется резервное копирование, а затем выполняется повторная индексация. Это может добавить больше времени в расписание.

Готовое решение

При запуске в иерархии очистка WSUS должна выполняться снизу вверх. Однако при использовании скрипта для отклонения заменяемых обновлений выполнение должно выполняться сверху вниз. Отклонение заменяемых обновлений на самом деле является дополнением к обновлению, а не удалением. В этом случае вы добавляете тип утверждения.

Так как синхронизацию невозможно выполнить во время фактической очистки, рекомендуется запланировать или завершить все задачи за одну ночь. Затем проверьте их завершение, заверив журнал следующим завтра, перед следующей запланированной синхронизацией. Если что-то не удалось, обслуживание можно перепланировать на следующую ночь, как только базовая проблема будет выявлена и устранена.

Эти задачи могут выполняться быстрее или медленнее в зависимости от среды, и это должно отражать время расписания. Надеемся, что они быстрее, так как моя лабораторная среда, как правило, работает немного медленнее, чем обычная рабочая среда. Я немного агрессивно отключаю время выполнения скриптов отклонения. Если уровень 2 перекрывает уровень 3 на несколько минут, это не вызовет проблем, так как синхронизация не запланирована.

Если синхронизация не выполняется, отклонение случайно попадет на серверы WSUS реплики уровня 3 из уровня 2. Я усвою себе дополнительное время между отклонением уровня 3 и очисткой уровня 3, так как я определенно хочу убедиться, что сценарий отклонения завершается перед выполнением очистки.

Возникает распространенный вопрос: так как я не синхронизируются, почему не следует выполнять все очистки и повторное индексирование одновременно?

Ответ заключается в том, что вы, вероятно, могли бы, но я не могу. Если коллеге по всему миру нужно выполнить синхронизацию, с помощью этого расписания риск потерянных обновлений в WSUS будет свести к минимуму. И я могу запланировать его повторный запуск до завершения следующей ночь.

Время Уровень Задачи
12:00 Уровень 1— отклонение
0:15 Уровень 2— отклонение
0:30 Уровень 3— отклонение
1:00 Очистка WSUS уровня 3
02:00 Переиндексация уровня 3 Очистка WSUS уровня 2
3:00 Tier1-Cleanup Переиндексация уровня 2
4:00 Переиндексация уровня 1

Примечание.

Если вы используете Configuration Manager Current Branch версии 1906 или более поздней для обслуживания WSUS, Configuration Manager выполняет очистку после синхронизации с помощью подхода сверху вниз. В этом сценарии можно запланировать выполнение заданий резервного копирования и повторного индексирования базы данных WSUS до настроенного расписания синхронизации, не беспокоясь о других шагах, так как Configuration Manager будет обрабатывать все остальное.

Дополнительные сведения о разрозненном пространстве имен см. в следующих статьях: