Windows Server
Windows Server — стандарт корпоративной среды: домены, файловые серверы, терминальные станции. Он управляет не одним ПК, а сотнями машин централизованно. Здесь — расширенный разбор редакций, Active Directory, GPO, файловых служб, RDS, Hyper-V, IIS, PowerShell, PKI, обновлений, бэкапов и харденинга на примере Windows Server 2025 (актуально и для 2022/2019).
Редакции Windows Server
Актуальные версии: 2025 (новейшая, hotpatching через Azure Arc, улучшенный SMB), 2022, 2019. Основные редакции:
| Редакция | Для чего | Виртуализация |
|---|---|---|
| Essentials | Малый бизнес (<25 пользователей, <50 устройств) | Без прав на ВМ |
| Standard | Обычный сервер/гипервизор | 2 OSE (ВМ) + 1 хост |
| Datacenter | Большой парк, плотная виртуализация | Неограниченно OSE (ВМ) |
| Datacenter: Azure Edition | Только в Azure, hotpatching | Неограниченно |
Лицензирование по ядрам
С 2016 года Windows Server лицензируется по физическим ядрам:
- Лицензируются ВСЕ физические ядра сервера.
- Минимум: 16 ядер на сервер и 8 ядер на процессор.
- Standard даёт право на 2 ВМ; каждые +2 ВМ требуют повторного лицензирования всех ядер.
- Datacenter — неограниченные ВМ при лицензии всех ядер.
- Есть режим Container (в 2025 — Windows Server containers и улучшенная поддержка Kubernetes/сетевых политик).
Пример: сервер с 2×CPU по 16 ядер = 32 ядра. Минимум покрыт. Нужно 4 ВМ на Standard — покупаешь 2 набора по 16-ядер (покрывают 32 ядра дважды).
Установка и роли/компоненты
Что важно при установке
- Выбирай Desktop Experience, если нужен GUI (проще для новичков); Server Core — для минимизации.
- Задай статический IP до поднятия контроллера домена (потом менять сложно).
- Дай серьёзное имя (hostname) — оно привязывается к AD.
- Установи драйверы RAID/сети от производителя.
- Создай локального администратора с надёжным паролем (позже привяжется к LAPS).
Добавление ролей — Server Manager и PowerShell
Функционал добавляется через роли и компоненты (Server Manager → «Добавить роли и компоненты» / Remove Roles and Features), а не переустановкой.
# Установка роли через PowerShell (от админа)
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-WindowsFeature DNS -IncludeManagementTools
Install-WindowsFeature DHCP -IncludeManagementTools
Install-WindowsFeature FS-DFS-Namespace, FS-DFS-Replication, FS-Resource-Manager
Install-WindowsFeature Web-Server -IncludeManagementTools
Install-WindowsFeature Hyper-V -IncludeManagementTools -Restart
# Список установленного:
Get-WindowsFeature | Where-Object Installed
# Удалить:
Remove-WindowsFeature Web-Server
Управление Server Core удалённо
- Windows Admin Center (веб-интерфейс) — установи модуль
Install-WindowsFeature -Name RSAT-Windows-Admin-Centerили используй отдельный WAC-сервер. - RSAT на рабочей станции:
Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0. - PowerShell Remoting:
Enter-PSSession -ComputerName srv-01. - Локально на Core:
sconfig(текстовое меню настройки сети/обновлений/удалённого рабочего стола).
Active Directory — глубоко
AD — каталог (на базе LDAP + Kerberos), где хранятся пользователи, компьютеры, группы, политики. Один сервер с AD называется Domain Controller (DC).
Лес, дерево, домен
| Объект | Что это |
|---|---|
| Лес (Forest) | Высший уровень. Общая схема (schema) и конфигурация. Граница безопасности и доверия. |
| Дерево (Tree) | Один или несколько доменов с непрерывным namespace (corp.local, eu.corp.local). |
| Домен (Domain) | Граница репликации и администрирования; единица GPO на верхнем уровне. |
OU, сайты, репликация, RODC
- OU (Organizational Unit) — контейнер для делегирования прав и привязки GPO. Можно вкладывать.
- Сайты (AD Sites & Services) — привязка подсетей к физическим локациям. Управляет тем, какой DC отвечает клиентам и как идёт межсайтовая репликация.
- KCC (Knowledge Consistency Checker) — автоматически строит топологию репликации (кольца/мосты сайтов).
- SYSVOL — папка с GPO и скриптами; в современных версиях реплицируется через DFS-R (раньше был FRS, ныне устарел).
- Глобальный каталог (Global Catalog, GC) — DC, хранящий частичную реплику ВСЕХ объектов леса (для поиска и входа в мультидоменных средах).
- RODC (Read-Only DC) — контроллер только для чтения, для филиалов: пароли не хранятся (кроме выборочно кэшированных), атака не компрометирует весь лес.
FSMO-роли (операции с одним хозяином)
Чтобы избежать конфликтов репликации, 5 чувствительных операций закреплены за конкретными DC:
| Роль | Уровень | Зачем |
|---|---|---|
| Schema Master | Лес | Изменения схемы каталога |
| Domain Naming Master | Лес | Добавление/удаление доменов и лесов |
| RID Master | Домен | Выдача пулов RID для SID объектов |
| PDC Emulator | Домен | Синхронизация времени, смена паролей, совместимость с NT |
| Infrastructure Master | Домен | Ссылки на объекты из других доменов (не на GC-DC!) |
# Посмотреть владельцев FSMO:
netdom query fsmo
# Или PowerShell:
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster
Get-ADDomain | Select-Object RIDMaster, PDCEmulator, InfrastructureMaster
# Передача роли (грациозно):
Move-ADDirectoryServerOperationMasterRole -Identity dc-02 -OperationMasterRole SchemaMaster,DomainNamingMaster,RIDMaster,PDCEmulator,InfrastructureMaster
# Принудительно (если старый DC умер): -Force
Trusts (доверия)
Доверительные отношения между доменами/лесами: one-way/two-way, transitive/non-transitive, forest trust (только между лесами, с Windows 2003+), external trust (с чужим доменом/лесом). Леса не доверяют друг другу по умолчанию.
Установка контроллера домена
# 1. Установить роль
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
# 2. Поднять новый лес (первый DC)
$secure = ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force
Install-ADDSForest `
-DomainName "corp.local" `
-DomainNetbiosName "CORP" `
-SafeModeAdministratorPassword $secure `
-InstallDns:$true `
-Force:$true
# После перезагрузки сервер — DC и DNS-сервер леса.
# 3. Добавить ВТОРОЙ DC (на другом сервере):
Install-ADDSDomainController `
-DomainName "corp.local" `
-SafeModeAdministratorPassword $secure `
-InstallDns:$true -Force
# 4. Проверка здоровья:
dcdiag /v # комплексная проверка DC
repadmin /replsummary # сводка репликации
repadmin /showrepl # детали репликации
Get-ADReplicationFailure -Target *
Групповые политики (GPO)
GPO — раздача настроек сотням ПК одной командой: запрет USB, фон рабочего стола, принтеры, пароли, маппинг дисков.
Компьютер / пользователь и порядок применения (LSDOU)
- GPO бывает Computer Configuration (HKLM) и User Configuration (HKCU).
- Порядок применения (последний побеждает): Local (на самом ПК) → Site → Domain → OU (вниз по дереву OU). Ссылка на OU ближе к объекту перезаписывает доменные.
gpupdate /force— принудительное обновление на клиенте.gpresult /rилиgpresult /h report.html— что применилось и почему.- Block Inheritance — блокировать наследование от родителя. Enforced (No Override) — запретить переопределение потомками.
- Security Filtering — ограничить GPO группой/пользователем. WMI Filter — применять по условию (ОС, версия):
SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "10.0%" AND ProductType="1". - Loopback processing — заменить/добавить User-политики в зависимости от компьютера (для терминальных/RDS серверов).
- Group Policy Preferences (GPP) — тонкие настройки (диски, принтеры, задачи), есть в Customer Preferences. Пароли в GPP хранились в SYSVOL слабо зашифрованными — ныне Microsoft рекомендует не использовать GPP для паролей (MS14-025).
# Управление через консоль:
gpmc.msc # Group Policy Management
# Или PowerShell:
New-GPO -Name "Disable USB" | New-GPLink -Target "ou=Workstations,dc=corp,dc=local"
Set-GPRegistryValue -Name "Disable USB" -Key "HKCU\Software\Policies\Microsoft\Windows\RemovableStorageDevices" -ValueName "Deny_All" -Value 1 -Type DWord
DNS и DHCP на Windows
DNS
- Зоны: forward lookup (имя→IP) и reverse lookup (IP→имя, зона in-addr.arpa).
- Типы: Primary/Secondary (на DC — AD-integrated, реплицируются вместе с AD).
- Aging & Scavenging — автоудаление устаревших записей (включи на зоне и на сервере, иначе мусор копится).
- Динамическое обновление: DC регистрируют записи клиентов автоматически.
Get-DnsServerZone
Add-DnsServerPrimaryZone -Name "corp.local" -ReplicationScope "Domain"
Add-DnsServerResourceRecordA -Name "srv-01" -ZoneName "corp.local" -IPv4Address "192.0.2.10"
Add-DnsServerPrimaryZone -NetworkId "192.0.2.0/24" -ReplicationScope "Domain"
DHCP
- Scope — диапазон IP, маска, шлюз, DNS, аренда (lease).
- Reservation — привязка IP к MAC (принтеры, серверы).
- Failover — пара DHCP-серверов (Load Balance / Hot Standby) для отказоустойчивости.
- Авторизай сервер в AD (
Add-DhcpServerInDC), иначе не раздаёт.
Add-DhcpServerv4Scope -Name "LAN" -StartRange 192.0.2.50 -EndRange 192.0.2.200 -SubnetMask 255.255.255.0
Set-DhcpServerv4OptionValue -ScopeId 192.0.2.0 -Router 192.0.2.1 -DnsServer 192.0.2.10
Add-DhcpServerv4Reservation -ScopeId 192.0.2.0 -IPAddress 192.0.2.51 -ClientId "00-11-22-33-44-55" -Name "printer-1"
Add-DhcpServerv4Failover -Name "FO" -PartnerServer dhcp-02 -ScopeId 192.0.2.0 -LoadBalancePercent 50
Файловые службы
- SMB 3.x — протокол общего доступа (в 2025: SMB over QUIC, SMB compression, AES-256, подписи по умолчанию). Отключай старые версии:
Set-SmbServerConfiguration -EnableSMB1Protocol $false Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol - DFS-N (Namespace) — единое виртуальное дерево папок поверх реальных шар.
- DFS-R (Replication) — репликация папок между серверами/сайтами (ранее использовалась и для SYSVOL).
- FSRM (File Server Resource Manager) — квоты, блокировка типов файлов (расширения), отчёты, экранирование.
- Дедупликация (Data Deduplication) — экономит место на похожих файлах (бэкапы, VDI):
Enable-DedupVolume -Volume D: Set-DedupVolume -Volume D: -UsageType Default Start-DedupJob -Volume D: -Type Optimization - BranchCache — кэширование контента филиалами (WAN-оптимизация).
- Shadow Copies (VSS) — «предыдущие версии» файлов на самбе, точки восстановления:
vssadmin add shadowstorage /for=D: /on=D: /maxsize=10% vssadmin create shadow /for=D: # В GUI: свойства тома → Shadow Copies → Enable
Remote Desktop Services (RDS)
Терминальный доступ к рабочим столам и приложениям для многих пользователей.
| Роль | Назначение |
|---|---|
| RD Connection Broker | Балансирует сессии, переподключает пользователей, хранит состояние коллекций |
| RD Session Host | Собственно сервер сессий/приложений (где «крутятся» пользователи) |
| RD Web Access | Веб-портал для запуска RemoteApp/рабочих столов |
| RD Gateway | Прокси RDP через HTTPS (443) — безопасный доступ извне без проброса 3389 |
| RD Licensing | Сервер лицензий (нужны CAL-ы, иначе через 120 дней отключит) |
- Коллекции (Collections) — группы Session Host с набором RemoteApp или опубликованных рабочих столов.
- RemoteApp — публикация отдельного приложения (не целого стола).
- Установка ролей:
Install-WindowsFeature RDS-RD-Server, RDS-Connection-Broker, RDS-Web-Access, RDS-Gateway, RDS-Licensing -IncludeManagementTools -Restart # Дальше настройка через Server Manager → Remote Desktop Services → Quick Start (Standard deployment)
Hyper-V — виртуализация
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Создание ВМ и управление
New-VM -Name "vm-web-01" -MemoryStartupBytes 4GB -BootDevice VHD -NewVHDPath "D:\vms\vm-web-01.vhdx" -NewVHDSizeBytes 60GB -Generation 2 -SwitchName "ExternalSwitch"
Set-VMProcessor -VMName "vm-web-01" -Count 2
Start-VM -Name "vm-web-01"
Get-VM # список ВМ и состояние
Get-VMMemory -VMName "vm-web-01"
Чекпоинты, память, миграция
- Чекпоинты (Checkpoints):
Standard(снимок состояния + памяти, не для продакшена БД) и Production (через VSS, безопасно для приложений — используй его).Checkpoint-VM -Name "vm-web-01" -SnapshotName "before-patch" Set-VM -Name "vm-web-01" -CheckpointType Production Remove-VMCheckpoint -VMName "vm-web-01" -Name "before-patch" - Динамическая память (Dynamic Memory):
Set-VMMemory -VMName vm -DynamicMemoryEnabled $true -MinimumBytes 2GB -MaximumBytes 8GB -StartupBytes 4GB. - Live Migration — перенос работающей ВМ между хостами без простоя (нужен общий storage или SMB-шара + делегирование CredSSP/Kerberos).
Enable-VMMigration -ComputerName "hyperv-01" Move-VM -Name "vm-web-01" -DestinationHost "hyperv-02" - Вложенная виртуализация (Nested Virtualization) — ВМ внутри ВМ (для лаб Hyper-V в VM):
Set-VMProcessor -VMName "vm-nested" -ExposeVirtualizationExtensions $true - Виртуальные коммутаторы: External (в физ. сеть), Internal (хост↔ВМ), Private (только ВМ↔ВМ).
New-VMSwitch -Name "ExternalSwitch" -NetAdapterName "Ethernet" -AllowManagementOS $true
IIS — веб-сервер
Install-WindowsFeature Web-Server -IncludeManagementTools
# Управление:
Get-WebSite
New-WebSite -Name "example" -Port 80 -PhysicalPath "C:\inetpub\example" -HostHeader "example.com"
# Пулы приложений:
New-WebAppPool -Name "example-pool"
Set-ItemProperty IIS:\AppPools\example-pool -Name processModel.identityType -Value ApplicationPoolIdentity
# Bindings (SSL):
New-WebBinding -Name "example" -Protocol https -Port 443 -HostHeader "example.com" -SslFlags 1
# Сертификат веб-сайту:
$cert = Get-ChildItem Cert:\LocalMachine\My | Where Subject -like "*example.com*"
New-WebBinding -Name "example" -Protocol https -Port 443 -IPAddress "*" -SslFlags 0
# Назначить через IIS Manager или:
# (IIS:\) > get-item "IIS:\SslBindings\0.0.0.0!443" | set-item -Value $cert
PowerShell — твой друг
Графический интерфейс хорош для одного сервера. Для сотен машин — PowerShell.
Get-Service # список служб
Restart-Service Spooler # перезапуск
Get-Process # процессы
Get-EventLog -LogName System -Newest 20 # логи (старый cmdlet)
Get-WinEvent -LogName System -MaxEvents 20 # современный
# Модуль ActiveDirectory:
Import-Module ActiveDirectory
Get-ADUser -Filter * -Properties EmailAddress | Select Name, EmailAddress
New-ADUser -Name "Ivan Petrov" -GivenName "Ivan" -Surname "Petrov" -SamAccountName "ivan" -UserPrincipalName "ivan@corp.local" -AccountPassword (ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force) -Enabled $true -Path "ou=Users,dc=corp,dc=local"
Remoting (WinRM)
Enable-PSRemoting -Force # на сервере (откроет WinRM 5985/5986)
# На клиенте доверить хост (в домене не нужно):
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "srv-01,srv-02" -Concatenate -Force
Enter-PSSession -ComputerName srv-01 -Credential (Get-Credential)
Invoke-Command -ComputerName srv-01,srv-02 -ScriptBlock { Get-Service | Where Status -eq "Running" }
DSC и профили
- DSC (Desired State Configuration) — декларативное описание «как должно быть»; LCM приводит сервер к заданному состоянию. Пример:
Configuration WebServer { Node "srv-01" { WindowsFeature IIS { Name = "Web-Server"; Ensure = "Present" } File wwwroot { DestinationPath = "C:\inetpub\wwwroot"; Type = "Directory"; Ensure = "Present" } } } WebServer Start-DscConfiguration -Path .\WebServer -Wait -Verbose - Профили —
$PROFILE(скрипт при старте сессии). Посмотреть:echo $PROFILE; создать:New-Item -Path $PROFILE -Type File -Force.
Windows Admin Center
Бесплатный браузерный центр управления (порт 6516 по умолчанию). Управляет серверами, кластерами Hyper-V, кластерами HCI, компьютерами вне домена. Устанавливается как роль WindowsAdminCenter или отдельным MSI. Возможности: сертификаты, брэндмауэр, обновления, события, процессы, PowerShell-консоль в браузере, управление виртуальными коммутаторами и ВМ.
# Установить роль на сервере (если доступна):
Install-WindowsFeature -Name RSAT-Windows-Admin-Center
# Или скачать MSI с aka.ms/WACDownload и запустить на шлюзовом сервере.
PKI / Active Directory Certificate Services (AD CS)
Свой центр сертификации (CA) для выпуска внутренних сертификатов (TLS для IIS, VPN, 802.1x, EFS, смарт-карты).
# Установка роли Enterprise CA (в домене):
Install-WindowsFeature ADCS-Cert-Authority -IncludeManagementTools
Install-AdcsCertificationAuthority -CAType EnterpriseRootCA -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" -KeyLength 4096 -HashAlgorithmName SHA256 -ValidityPeriod Years -ValidityPeriodUnits 10 -Force
# После установки роли — настройка шаблонов через certsrv.msc
- Типы CA: Enterprise (интегрирован с AD, авто-выпуск по шаблонам) vs Standalone (вне домена). Root CA (корневой, обычно офлайн) и Subordinate/Issuing CA (выпускает сертификаты).
- Шаблоны сертификатов (Certificate Templates) — задают, кто и какие сертификаты может запрашивать (Web Server, Computer, User, Kerberos Authentication, code signing).
- Клиент запрашивает:
certmgr.msc→ Personal → Request New Certificate, или PowerShellGet-Certificate. - Распространи корневой сертификат CA через GPO (Computer → Policies → Windows Settings → Security → Public Key Policies → Trusted Root CAs).
Обновления
- WSUS (Windows Server Update Services) — локальный кэш обновлений, централизованное одобрение. Роль
UpdateServices. Клиенты направляются GPO (Computer → Admin Templates → Windows Components → Windows Update → Specify intranet Microsoft update service location). - Azure Update Management (через Azure Arc для гибридных серверов) — политика обслуживания, отчёты, автоматический выкат.
- Локально: настройки через
sconfig(опция 6) или GPO (AUOptions, NoAutoRebootWithLoggedOnUsers).
Install-WindowsFeature UpdateServices -IncludeManagementTools
# Первичная настройка:
& "C:\Program Files\Update Services\Tools\WsusUtil.exe" postinstall CONTENT_DIR=D:\WSUS
Бэкап и восстановление
- Windows Server Backup (WSB) — встроенная роль, резервная копия на диск/сетевую шару, можно в кратные версии (MABS).
Install-WindowsFeature Windows-Server-Backup # Полный бэкап один раз в день на диск: $wb = New-WBPolicy Add-WBVolume -Policy $wb -Volume (Get-WBVolume -VolumePath "C:") -BackupTarget (Get-WBBackupTarget -VolumePath "D:") Add-WBSystemState -Policy $wb Set-WBSchedule -Policy $wb -Schedule 02:00 Set-WBPolicy -Policy $wb -Force - VSS (Volume Shadow Copy Service) — механизм согласованных снимков (используется WSB, Shadow Copies, Hyper-V).
- System State — бэкап AD (для DC), реестра, SYSVOL, базы COM+. Восстановление DC выполняется в Directory Services Restore Mode (DSRM) (F8 при загрузке).
- Кратные версии (bare-metal) для полного восстановления на новое железо.
Харденинг Windows Server
- Windows Defender / Microsoft Defender Antivirus — встроенная защита; в продвинутом варианте Defender for Endpoint (ATP) (EDR, облачная аналитика). Включи реальный времени, регулярные проверки, AMSI.
Set-MpPreference -DisableRealtimeMonitoring $false Get-MpComputerStatus Start-MpScan -ScanType FullScan - CIS Benchmarks — эталонные конфиги безопасности (отключение SMB1, ограничение протоколов, политики паролей). Применяй через GPO или Microsoft Security Compliance Toolkit (SCT).
- LAPS (Local Administrator Password Solution) — каждому ПК свой случайный пароль локального админа, хранится в AD (атрибут ms-Mcs-AdmPwd), права на чтение делегируются. В Server 2019+ LAPS встроен.
Install-WindowsFeature LAPS # GPO: Computer → Administrative Templates → System → LAPS → Enable # Чтение пароля (с правами): Get-LapsADPassword -Identity "PC-01" -AsPlainText - BitLocker — шифрование дисков с ключом в TPM (загрузка без ввода пароля, но при изменении загрузчика блокирует). Для DC шифруй системный диск.
Install-WindowsFeature BitLocker -IncludeAllSubFeature -Restart Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly -TpmProtector Backup-BitLockerKeyProtector -MountPoint "C:" -KeyProtectorId (Get-BitLockerVolume -MountPoint "C:").KeyProtector[0].KeyProtectorId - AppLocker / WDAC (Windows Defender Application Control) — разрешительные списки запускаемых приложений (AppLocker проще, WDAC строже/на уровне ядра).
# AppLocker: создай GPO → Computer → Windows Settings → Security → Application Control Policies → AppLocker → задай правила исполняемых файлов (Publisher/Path/Hash) и включи службу AppIDSvc. - Аудит — включи Advanced Audit Policy (входы, доступ к объектам, изменения политики):
secpol.msc→ Advanced Audit Policy Configuration. Логи смотри в Event Viewer (Security log, Event ID 4624 вход, 4625 неудача, 4720 создание юзера). - Базовое: отключи ненужные службы, закрой порты через Windows Defender Firewall with Advanced Security, ограничь RDP (RD Gateway + NLA + GPO ограничения), включи Credential Guard и Exploit Protection.