Управление обновлениями Windows без WSUS: золотая середина для офиса на 30 компьютеров
Года три назад мне позвонил владелец небольшой торговой компании в панике: ночью Windows поставил обновления, утром перестал работать КриптоПро, электронная подпись не запускается, отправить отчёт в налоговую невозможно — а дедлайн сегодня. Восемнадцать компьютеров, двое бухгалтеров, всё встало. С тех пор у меня есть чёткий ответ на вопрос «зачем вообще возиться с контролем апдейтов» — именно чтобы такого больше не было.
WSUS: хороший инструмент, но не для вас
WSUS расшифровывается как Windows Server Update Services. Появился в 2005 году, когда у корпораций были сотни компьютеров и медленный интернет по цене золота. Логика понятная: вместо того чтобы каждый ПК сам качал обновления из интернета, один сервер скачивает всё централизованно, а остальные берут у него. Экономия трафика, полный контроль — красота. На бумаге.
Но у WSUS есть цена входа, о которой в статьях обычно умалчивают. Вам нужен отдельный сервер или как минимум виртуалка с Windows Server — лицензия от 30 000 рублей за Standard редакцию. Под базу данных WSUS нужно минимум 80 гигабайт на диске, а реально — 150–200, потому что каталог обновлений пухнет. Первичная синхронизация скачивает несколько гигабайт и занимает часы. Потом это нужно администрировать постоянно: одобрять обновления, чистить базу данных раз в квартал — иначе она разрастается до неприличных размеров, — следить за агентами на клиентских машинах. Если агент завис, машина перестаёт получать обновления, и вы об этом не знаете.
Для компании с 500 машинами всё это оправдано. Для офиса на 20–30 рабочих мест — нет. Я видел, как коллеги из других компаний разворачивали WSUS клиенту с 15 машинами строго по корпоративной методичке. Сервер жил полгода, потом перестал синхронизироваться — кончилось место на диске, — никто не разобрался почему, его просто отключили. А репутация «у вас настроены обновления» при этом осталась. Это называется карго-культ, а не нормальное IT-обслуживание.
Что происходит, когда обновлениями никто не управляет
Представьте обычный вторник. Второй вторник месяца. Microsoft выпускает очередной пакет обновлений — это называется Patch Tuesday, традиция идёт с 2003 года. В пакете бывает 60–80 исправлений разом: дыры в безопасности, баги системы, обновления .NET Framework, изменения в корневых сертификатах, правки в TLS-стеке, что-нибудь ещё. Всё это прилетает в один день.
Если у вас ничего не настроено, Windows сам решает, когда скачивать и когда ставить. По умолчанию — при перезагрузке. Бухгалтер выключает компьютер вечером, а утром включает и видит крутящееся колесо «Настройка обновлений — 34%». Это ещё безобидно. Хуже — когда Windows решает перезагрузиться прямо в рабочее время, потому что обновление скачалось и ждёт установки, а предупреждение уже третий раз откладывали. В середине работы с документом. За 10 минут до того, как нужно сдать декларацию.
У одного нашего клиента — юридическая фирма, 12 компьютеров, Москва — была показательная ситуация. После ночного обновления перестала открываться программа ЭДО. Точнее, формально открывалась, но не видела КриптоПро как криптопровайдер — и подписать документ было невозможно. Потеряли целый рабочий день на диагностику. Оказалось — обновление KB5028185 поменяло что-то в механизме COM-регистрации, и драйвер токена перестал распознаваться системой. Откатились через wusa, всё заработало. День потерян. Клиент нервный. Классика.
Как именно 1С и КриптоПро ломаются после Patch Tuesday
Давайте конкретно про 1С — это главная боль клиентов малого бизнеса. Бухгалтерия, управление торговлей, зарплата. 1С работает поверх .NET Framework, использует COM-объекты, обращается к криптопровайдеру через интерфейс Windows CryptoAPI. Каждое из этих звеньев может поломать очередное обновление — и чаще всего именно так и происходит.
Самые частые сценарии поломки следующие. Обновление .NET Framework меняет версию рантайма — и внешняя компонента в 1С перестаёт загружаться с ошибкой про несовместимую версию. Обновление корневых сертификатов — и HTTPS-соединение с сервером лицензий 1С разрывается с ошибкой SSL. Обновление политик TLS — и КриптоПро не может установить защищённый канал с сервером ФНС. Обновление драйверов через Windows Update — и Рутокен или JaCarta не определяется системой вообще, как будто его нет. Это не теория. Каждый из этих кейсов я видел у клиентов за последние два года, и не по одному разу.
КриптоПро особенно чувствителен к системным обновлениям. КриптоПро CSP 5.0 нормально уживается с актуальными версиями Windows 10 и 11, но если приходит крупное обновление безопасности, которое затрагивает подсистему шифрования — могут возникнуть конфликты. Особенно если у клиента стоит старая версия 4.0, которую обновить некогда уже три года подряд. Тут совет простой: держите КриптоПро актуальным, не ждите проблемы. Годовая лицензия КриптоПро CSP стоит около 1 500 рублей на рабочее место — это не те деньги, чтобы на них экономить и потом терять рабочие дни на разборы полётов.
GPO как золотая середина: настраиваем за полчаса
Если у вас есть домен Active Directory — а у большинства офисов от 10 машин он есть или должен быть — то у вас уже есть инструмент для контроля обновлений. Group Policy. Без WSUS, без дополнительного ПО, без лишних лицензий. Открываем Group Policy Management на контроллере домена, создаём новый GPO — я называю его «WU — контроль обновлений», чтобы было понятно через год, — и идём в Computer Configuration → Administrative Templates → Windows Components → Windows Update → Windows Update for Business. Именно там с версии Windows 10 1703 Microsoft добавил нормальные политики отсрочки, которые работают без WSUS.
Настраиваем два ключевых параметра. Select when Quality Updates are received — ставим отсрочку 14 дней. Это обновления безопасности и исправления багов. За 14 дней интернет успевает обсудить проблемные KB, в профессиональных сообществах появляются предупреждения вида «это обновление ломает VPN-клиент», и мы уже знаем, чего ожидать. Select when Feature Updates are received — ставим 60 дней минимум, я рекомендую 90. Feature Updates меняют саму систему глобально: переход с 22H2 на 23H2, например. Они ломают несовместимые приложения чаще всего, и торопиться тут совершенно некуда.
Дополнительно включаем Configure Automatic Updates, ставим режим «Auto download and schedule the install», время установки — 23:00 в воскресенье. Ночью, когда никто не работает. Плюс политика «Turn off auto-restart for updates during active hours» с диапазоном 8:00–20:00 — тогда Windows не перезагрузится самостоятельно в рабочее время, даже если обновление давно готово и терпеть не может. Применяем GPO к нужной OU — и он сам распространяется на все машины при следующем применении политик. Вот и всё. Полчаса работы один раз — и у вас работает централизованный контроль без единого дополнительного сервера.
PDQ Deploy и PSWindowsUpdate: когда одного GPO не хватает
GPO даёт отсрочку и расписание. Но он не даёт видимости: что именно установлено на каждой конкретной машине, какие KB числа там есть, а каких нет, где висят незакрытые дыры. Для этого нужен отдельный инструмент. PDQ Deploy и PDQ Inventory — популярная связка у небольших IT-команд. PDQ Inventory Free позволяет видеть установленные обновления на всех машинах в сети из одного окна. PDQ Deploy Free позволяет принудительно задеплоить конкретный патч или, наоборот, откатить его на выбранных компьютерах. Удобно, когда нужно экстренно поставить критическое обновление, не дожидаясь воскресного расписания.
Платная версия PDQ стоит около 500 долларов в год за оба продукта вместе. Для аутсорсера с десятью клиентами — вполне разумно, цена размазывается по всем. Для одного клиента с 30 машинами — уже вопрос целесообразности. Поэтому я чаще рекомендую бесплатную альтернативу — модуль PSWindowsUpdate для PowerShell. Ставится одной командой: Install-Module PSWindowsUpdate. Дальше всё просто: Get-WindowsUpdate — видишь доступные обновления со статусами. Install-WindowsUpdate — ставишь выбранные. Hide-WindowsUpdate -KBArticleID 'KB5028185' — скрываешь конкретный проблемный KB, чтобы он не предлагался снова до тех пор, пока ты сам его не разблокируешь.
ManageEngine Patch Manager Plus — ещё один вариант, есть бесплатный тир до 25 компьютеров. Интерфейс через браузер, можно видеть статус патчей по всем машинам в одной таблице, запускать установку по расписанию или вручную. Сам я его не рекомендую как основное решение — интерфейс перегружен, индийская разработка со своими особенностями, первичная настройка требует времени и терпения. Но как бесплатная альтернатива лучше, чем полное отсутствие контроля. Честно говоря, для большинства наших клиентов хватает GPO плюс PSWindowsUpdate и ежемесячный ручной аудит. Один раз в месяц прогоняем скрипт по всем машинам, смотрим что установилось, проверяем наличие критических KB. Занимает час.
Тест-машина и человеческий процесс: как это работает у нас
Главное правило, которое я ввёл несколько лет назад: первой обновляется не бухгалтерия. Первой обновляется тест-машина. Это не отдельный дорогой сервер, не виртуалка с Windows Server — просто один обычный компьютер в офисе, настроенный получать обновления без отсрочки, раньше всех остальных. У наших клиентов это чаще всего компьютер IT-специалиста или машина на ресепшне, где нет критичного бизнес-ПО. Создаём для неё отдельный GPO или отдельную OU, убираем отсрочку — ставим 0 дней. Машина обновляется сразу после Patch Tuesday.
На тест-машине обязательно установлены все те же приложения, что и у пользователей: 1С-клиент с подключением к рабочей базе, КриптоПро, браузер с нужными расширениями, Excel. После обновления — запускаем 1С, проверяем вход, создаём тестовый документ, проводим. Запускаем встроенный тест ЭЦП в КриптоПро — там есть кнопка «Тест», которая проверяет цепочку от контейнера до подписи. Занимает 15 минут. Если что-то не так — ищем проблемный KB до того, как он накатится на всю бухгалтерию. Это и есть ранняя система предупреждения за ноль рублей.
Расписание у нас такое. Второй вторник месяца — Patch Tuesday, Microsoft выпускает пакет. Среда–четверг — тест-машина накатывает обновления в штатном режиме. Пятница — мы проверяем тест-машину по чеклисту. Следующий понедельник — если всё хорошо, снимаем ограничение с остальных машин либо просто ждём, пока истечёт 14-дневная отсрочка в GPO. Машины обновляются в воскресенье ночью. Во вторник утром бухгалтеры приходят — всё работает. Или не работает, но мы об этом уже знаем заранее и знаем, что именно сломалось и как это починить. Простой процесс. Требует дисциплины, а не дорогих инструментов.
Когда обновление всё-таки что-то сломало: порядок действий
Бывает и так — проскочило. Тест-машина не поймала проблему, или клиент сам что-то обновил руками, или пришло внеплановое обновление безопасности — Microsoft выпускает их вне расписания при критических уязвимостях нулевого дня, и тут уже GPO с отсрочкой не успевает. Что делать? Первое и главное: не паниковать и не переустанавливать систему. Звучит банально, но именно это делают в панике первым делом — «проще снести и поставить заново». Сначала всегда диагностика.
Открываем Event Viewer: Applications and Services Logs → Microsoft → Windows → WindowsUpdateClient. Там видно, какие KB установились за последние дни с точными датами и временем. Параллельно запускаем в PowerShell: Get-WmiObject Win32_QuickFixEngineering | Sort-Object InstalledOn | Select-Object -Last 20 — получаем список последних 20 обновлений с датами установки. Определили подозрительный KB по дате совпадения с появлением проблемы — откатываем. Либо через wusa.exe /uninstall /kb:НОМЕР из командной строки администратора. Либо через «Параметры → Центр обновления Windows → Журнал обновлений → Удалить обновления». Большинство KB откатываются стандартно.
Если KB не откатывается или откат не помог — идём к точке восстановления системы. На всех обслуживаемых нами машинах включено автосоздание точек перед установкой обновлений: это один параметр GPO в разделе System Restore, включается за минуту. Если точки нет или она не помогла — это уже работа с резервной копией. Именно поэтому я всегда говорю клиентам: Veeam Agent for Windows Free — это не опция, это базовая гигиена. Бесплатная версия делает образ системы на сетевую папку или внешний диск по расписанию. Восстановление с образа — час работы вместо полудня переустановки. Один раз восстановив бухгалтерский компьютер за час, когда обновление убило профиль пользователя, ни один клиент больше не спрашивает, зачем тратить время на резервное копирование.
Частые вопросы
Нужен ли домен Active Directory, чтобы управлять обновлениями через GPO?
Для централизованного GPO — да, нужен домен. Но если машин 3–5 и домена нет, можно использовать локальный редактор групповых политик gpedit.msc на каждой машине отдельно — настройки те же самые, просто применяются к одному ПК. Для 15 и более машин без домена я рекомендую всё-таки его поднять: это упрощает жизнь не только с обновлениями, но и с правами пользователей, парольными политиками и десятком других вещей, которые иначе придётся делать руками на каждой машине.
Можно ли заблокировать конкретное обновление навсегда, если оно ломает 1С или КриптоПро?
Можно. Через PSWindowsUpdate команда Hide-WindowsUpdate -KBArticleID 'KB5028185' помечает обновление как скрытое, и оно больше не предлагается системой. Через реестр тоже есть варианты. Важный момент: не забудьте разблокировать его, когда выйдет совместимая версия 1С или КриптоПро — иначе дыра в безопасности будет висеть открытой неопределённо долго, что уже само по себе риск.
Как объяснить директору, что нужен контроль обновлений, а не просто «пусть Windows сам разберётся»?
Один вопрос всё объясняет: сколько стоит потерянный рабочий день бухгалтера перед отчётным периодом? Если из-за сломанной электронной подписи не сдали отчёт в срок — это штрафы, нервы и ускоренные звонки аудиторам. Стоимость правильной настройки GPO и процесса — пара часов работы IT-специалиста один раз. Цена одного серьёзного инцидента выше в разы. Обычно после первого же подобного случая вопросов о необходимости контроля больше не возникает.
Что делать, если обновления вообще не приходят — машины застряли на старых версиях?
Это тоже проблема, просто другая сторона той же монеты. Проверьте, что служба Windows Update работает: services.msc → wuauserv, статус должен быть Running. Запустите wuauclt /detectnow из командной строки администратора. Проверьте реестр и GPO — иногда предыдущий администратор полностью отключал обновления ключом DisableWindowsUpdateAccess или настроил несуществующий WSUS-сервер, с которого машины безуспешно пытаются получить обновления. Старая Windows с незакрытыми уязвимостями — такая же угроза для бизнеса, как и сломанное свежее обновление.
Оставьте заявку, и мы проведём бесплатный аудит текущего состояния обновлений на ваших компьютерах — без обязательств.
Бесплатная консультация →
Подпишитесь на рассылку ITfresh
Раз в неделю — практические гайды для руководителя и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.
