Windows Server и PowerShell: практическое администрирование
Windows Server остается основой корпоративной инфраструктуры в большинстве российских компаний. Но стандартных средств GUI часто недостаточно — нужны PowerShell-скрипты, тонкая настройка политик и умение диагностировать проблемы на уровне логов и событий. Этот раздел собран из моего опыта администрирования серверов Windows в средах от 10 до 500 машин.
Здесь вы найдете готовые решения для ежедневных задач: от проверки открытых портов и управления Execution Policy до устранения уязвимостей в AD CS и активации RDS-лицензий. Все скрипты и команды проверены на Windows Server 2012/2016/2019/2022 и работают в production-среде.
Статьи и руководства по Windows Server
- Проверка открытого TCP-порта через PowerShell (Test-NetConnection) — использование Test-NetConnection, альтернативные методы для старых версий PowerShell и автоматизация проверки доступности сервисов.
- Настройка Execution Policy в PowerShell — уровни безопасности (Restricted, RemoteSigned, Unrestricted), обход ограничений для скриптов, применение через групповые политики домена.
- Получение SeDebugPrivilege — назначение привилегий отладки для служб и пользователей, работа с Local Security Policy и решение проблем с запуском мониторинговых агентов.
- Уязвимость ESC8: NTLM Relay to AD CS HTTP Endpoints — диагностика уязвимости, применение обновлений KB, временные меры защиты через отключение NTLM-аутентификации для веб-служб CA.
- FAQ по применению GPO: почему не применяется групповая политика — диагностика проблем с применением политик, gpresult, отладочный журнал GPSVC и типичные ошибки.
- LAPS: управление паролями локальных администраторов — установка и настройка Microsoft LAPS для автоматической ротации паролей локальных администраторов в домене.
- Как включить TLS 1.2 на Windows Server 2008 R2 — активация современных протоколов шифрования для совместимости с актуальными сервисами.
- Отключение NTLM-аутентификации в домене Windows — переход на Kerberos для повышения безопасности и защиты от NTLM-relay атак.
- Проверка здоровья контроллеров домена Active Directory и репликации — диагностика dcdiag, repadmin, проверка DNS и целостности базы AD.
- Передача (захват) ролей FSMO на другой контроллер домена — пошаговая инструкция по переносу ролей при плановом выводе DC или аварийной ситуации.
- Основные командлеты Windows PowerShell — шпаргалка по самым востребованным командам для администрирования.
- Восстанавливаем доверие в домене — решение проблемы «Отказано в доступе» при нарушении доверительных отношений между рабочей станцией и контроллером домена.
- Обновление и установка административных шаблонов (ADMX) — добавление новых политик для управления актуальными версиями Windows и приложениями.
- Отключение протоколов NetBIOS и LLMNR через GPO — защита от отравления имени и повышения безопасности сети.
- Группа «Защищенные пользователи» (Protected Users) в Active Directory — усиление безопасности привилегированных учетных записей.
- Server Manager: решение проблемы WinRM Negotiate Authentication Error — диагностика и устранение ошибки при добавлении серверов в пул управления.
- Включение шифрования трафика в SMB 3.0 — защита файловых ресурсов при передаче по незащищенным сетям.
Часто задаваемые вопросы
Как разрешить запуск PowerShell-скриптов на сервере?
Откройте PowerShell от имени администратора и выполните: Set-ExecutionPolicy RemoteSigned -Scope LocalMachine. Для домена используйте групповую политику: Computer Configuration → Administrative Templates → Windows Components → Windows PowerShell. Подробная инструкция с разбором всех уровней политики в статье Настройка Execution Policy.
Что такое уязвимость ESC8 и чем она опасна?
ESC8 — критическая уязвимость в AD CS, позволяющая злоумышленнику получить сертификаты с повышенными привилегиями через NTLM-relay атаку на HTTP-эндпоинты веб-служб сертификации. Закрывается установкой обновлений KB и отключением NTLM-аутентификации. Полная диагностика и меры защиты в статье Уязвимость ESC8.
Как проверить, открыт ли порт на удаленном сервере без сторонних утилит?
Используйте PowerShell: Test-NetConnection -ComputerName server.domain.local -Port 3389. Команда покажет TcpTestSucceeded: True если порт открыт. Для старых версий PowerShell (до 4.0) используйте TCP-клиент. Все варианты с примерами в статье Проверка TCP-порта через PowerShell.
Почему групповая политика не применяется на клиенте?
Проверьте: 1)gpresult /r — какие политики применены; 2)gpresult /h report.html — детальный отчет; 3) отладочный журнал GPSVC; 4) корректность DNS и связь с контроллером домена. Типичные причины и решения в статье FAQ по применению GPO.
Как назначить SeDebugPrivilege пользователю или службе?
Откройте secpol.msc → Local Policies → User Rights Assignment → Debug programs. Добавьте нужного пользователя или группу. Для службы укажите учетную запись в свойствах службы (services.msc) и перезапустите её. SeDebugPrivilege требуется для мониторинговых агентов (Zabbix, PRTG) и некоторых утилит диагностики. Инструкция в статье Получение SeDebugPrivilege.
Дополнительные материалы
Если вы работаете с терминальными серверами, обратите внимание на раздел Terminal Services и RDS. Для администрирования виртуальной инфраструктуры изучите раздел VMware ESXi и vSphere. Вопросы безопасности серверов пересекаются с материалами по защите Linux-серверов (Fail2ban, файрволы).
