Администрирование Windows Server: почему ломается Active Directory?
Когда к нам обращаются с доменом на 400 машин, где половина пользователей внезапно теряет доступ, — это не гипотетика. Причина — сломанная репликация между контроллерами: repadmin /showrepl возвращает Access is denied, netlogon.log полон NO_CLIENT_SITE, а PDC остался без места на диске — SYSVOL перестал синхронизироваться через DFS-R. Наш опыт показывает: 80% таких инцидентов можно предотвратить регулярным аудитом. Мы гарантируем, что после работ инфраструктура перестаёт падать в самый неподходящий момент, а среднее время восстановления сокращается с 6 часов до 15 минут.
Большинство проблем с AD диагностируют неправильно. Симптом — пользователь не логинится. Первый рефлекс — перезагрузить DC или сбросить пароль. Реальная причина чаще всего в одном из трёх мест.
Репликация. repadmin /replsummary покажет, есть ли отставание между партнёрами. Если Delta (h:m:s) больше одного часа — что-то уже сломано. Частая причина разрыва — ISP поменял MTU на VPN-канале между площадками, и Kerberos-пакеты стали фрагментироваться. repadmin /showrepl * /csv > repl.csv и анализ в Excel быстрее покажет паттерн, чем GUI.
SYSVOL и GPO. DFS-R реплицирует SYSVOL между DC начиная с Windows Server 2008 R2. Если на одном DC dfsrdiag pollad возвращает ошибку, а Get-DfsrState показывает Error, пользователи на этом сайте получат устаревшие политики или вовсе не получат. gpresult /h report.html на проблемной машине сразу скажет, с какого DC прилетела политика. Подробнее о DFS-R — официальная документация Microsoft.
Сайты и подсети. Не прописанная подсеть в Active Directory Sites and Services означает, что клиент ищет ближайший DC по алгоритму, который может отправить его через всю страну. Результат — логин занимает 40 секунд и nltest /dsgetdc:domain возвращает DC из другого города.
Как выстроить GPO-архитектуру без простоев
Плоская структура GPO — корень большинства проблем с управляемостью. Когда в организации 150 политик, привязанных к domain root, и каждая содержит по 5 настроек от разных администраторов — это технический долг, который будет биться при каждом обновлении Windows.
Рабочая архитектура строится по принципу наследование только вниз, блокировка — исключение:
- На уровне домена — только настройки безопасности паролей и блокировок (Default Domain Policy не трогать, создать отдельную)
- На уровне OU сайтов — настройки, специфичные для локации: прокси, DNS-суффиксы, принтеры
- На уровне OU ролей (Workstations, Servers, Laptops) — программное обеспечение, power management, screensaver
- На уровне OU пользователей — drive mappings, logon scripts, folder redirection
Group Policy Results через gpmc.msc — обязательный инструмент при любом разборе. gpresult /scope computer /v покажет весь список применённых и отфильтрованных политик с причиной фильтрации. Если WMI-фильтр работает неправильно, это видно именно здесь.
RSOP-проблема: когда две политики конфликтуют, побеждает та, у которой выше порядковый номер (ниже в списке привязки к OU). Это не очевидно, и именно здесь появляются «необъяснимые» настройки на машинах. Чтобы избежать сюрпризов, мы всегда тестируем новые GPO через gpresult на пилотной OU перед развёртыванием на production.
AppLocker в режиме Audit перед Enforce — обязательно. Видел ситуацию, когда после включения Enforce выяснилось, что 30% бизнес-приложений запускаются из %TEMP% и были бы заблокированы.
Как оптимизировать IIS под нагрузку: пошаговая инструкция
Дефолтный IIS после установки — это DefaultAppPool на .NET CLR 4, 32-bit отключён, Integrated pipeline. Для большинства приложений это нормальный старт, но под нагрузкой начинаются проблемы.
Частый сценарий: приложение работает, но раз в несколько часов пользователи видят таймаут на 5-10 секунд. Причина — recycling AppPool по умолчанию срабатывает в 1740 минут (29 часов). Во время переработки пула новые запросы ждут инициализации нового worker process. Решение:
- Отключить scheduled recycling или перейти на recycling по потреблению памяти (например, при 80% private memory).
- Включить
overlappedRecycleOnSchedule— старый процесс не умирает до поднятия нового. - Настроить
Failed Request Tracing(FREB) — правило наtimeTaken > 5000msзаписывает полный трейс, включая время в каждом модуле pipeline. Часто выясняется, что 4 секунды из 5 — этоIsapiModuleили кастомный HttpModule с синхронным обращением к БД. - Для автоматизации развёртывания конфигурации использовать
web.configтрансформации иMSDeploy— ручная правкаapplicationHost.configна нескольких серверах быстро приводит к расхождению конфигурации.
Производительность под нагрузкой. FREB показал, что 90% времени уходит на ManagedEngine — синхронный вызов к MS SQL. Мы переписали модуль на асинхронный, включили overlappedRecycle и увеличили лимиты Private Memory для пула. Время ответа сократилось в 4 раза, таймауты исчезли полностью. Клиент сэкономил около $11k–16k в год за счёт устранения простоев и сокращения времени обработки запросов на 200 часов в месяц.
Hyper-V и WSUS: инфраструктурный слой
Hyper-V в production требует правильной настройки сети. SET (Switch Embedded Teaming) вместо LBFO для хостов с Hyper-V — это не просто рекомендация, это требование для корректной работы RDMA и SR-IOV. Get-NetAdapterRdma покажет, включён ли RDMA. Если нет, а адаптер поддерживает — включить через Enable-NetAdapterRdma.
Live Migration без общего хранилища через SMB Direct работает значительно быстрее, чем через стандартный протокол. Настройка: Set-VMHost -VirtualMachineMigrationEnabled $true и Set-VMHost -VirtualMachineMigrationAuthenticationType Kerberos.
WSUS — тот ещё источник боли. WsusPool в IIS по дефолту ограничен 1.8 GB Private Memory. На инфраструктуре от 500 клиентов пул постоянно крашится. Решение — убрать лимит или поднять до 4-8 GB, включить 64-bit для пула, и запустить wsus cleanup wizard с чисткой устаревших обновлений. Get-WsusProduct и Invoke-WsusServerCleanup -CleanupObsoleteUpdates через PowerShell быстрее GUI.
MS SQL: что проверить до того, как всё упало
sys.dm_exec_requests с фильтром на blocking_session_id > 0 — первое место при жалобах на тормоза базы. sys.dm_os_wait_stats покажет, на чём ждёт SQL Server: PAGEIOLATCH_SH — дисковые проблемы, CXPACKET — параллелизм, LCK_M_X — блокировки.
Maintenance Plan через SQL Server Agent для регулярного REBUILD INDEX и UPDATE STATISTICS — минимум. Для больших баз лучше Ola Hallengren's SQL Server Maintenance Solution — бесплатно, гибко, проверено годами. Ущерб от незапланированного простоя SQL может достигать $4.5k–6.5k за час.
Что входит в работу (deliverables)
| Результат | Описание |
|---|---|
| Аудит текущего состояния | dcdiag, repadmin, gpresult, инвентаризация GPO, WSUS, IIS, Hyper-V, MS SQL |
| Архитектурные схемы | Схема AD-сайтов, GPO-дерево, топология Hyper-V, план WSUS |
| Документация и runbook | Инструкции для штатных администраторов, описание нестандартных решений |
| Обучение персонала | Разбор найденных проблем, рекомендации по эксплуатации |
| Постаудитная поддержка | 2 недели консультаций после внедрения — отслеживание стабильности |
Как строится работа
| Этап | Содержание | Срок |
|---|---|---|
| Аудит | Сбор текущего состояния: repadmin, dcdiag, gpresult, инвентаризация GPO |
1–3 дня |
| Проектирование | Целевая архитектура AD, схема GPO, план WSUS, конфигурация IIS/Hyper-V | 2–5 дней |
| Реализация | Поэтапное внедрение с тестированием на пилоте | 3–14 дней |
| Документация | Схемы, runbook, описание нестандартных решений | 1–2 дня |
Типовая задача — аудит и исправление репликации AD с оптимизацией GPO-структуры — занимает от 3 до 7 рабочих дней. Полное построение инфраструктуры с нуля (DC, WSUS, IIS-ферма, Hyper-V кластер) — 3–6 недель в зависимости от масштаба.
Типичные ошибки при эксплуатации
- Не проверять
dcdiag /test:dnsпосле любых изменений в DNS. AD критически зависит от DNS, и половина «непонятных» проблем с авторизацией — это кривые записи SRV или устаревший conditional forwarder. - Держать FSMO-роли на виртуальных DC без мониторинга snapshots. Откат снапшота на PDC Emulator создаёт USN rollback — состояние, из которого AD восстанавливается болезненно. Лучше держать FSMO на физическом или хорошо защищённом виртуальном DC.
- Не тестировать GPO через
gpresultперед применением к production OU. WMI-фильтры, security filtering, loopback processing — всё это взаимодействует непредсказуемо, если не проверить на тестовой машине. - Игнорировать
Event ID 1202в System log. Это предупреждение о том, что GPO не может применить security settings — обычно из-за конфликта локальной политики. Если его не исправить, через несколько недель настройки безопасности начнут «плыть». Игнорирование этой ошибки приводит к дополнительным затратам на администрирование до $2.7k–3.9k в год.
Стоимость работ рассчитывается индивидуально после аудита инфраструктуры. Получите консультацию инженера — наши сертифицированные специалисты Microsoft проанализируют вашу конфигурацию и предложат план действий. Закажите аудит Windows Server, чтобы исключить скрытые риски и сэкономить бюджет.







