Windows Server 2022 - practical admin handbook

Windows Server 2022 для сисадмина

Полезный справочник по администрированию: базовые PowerShell-команды, поднятие AD DS, роли FSMO, DNS, DHCP, GPO, Hyper-V, hardening, backup и мониторинг.

Admin Console
PS C:/Admin> Get-ComputerInfo | Select WindowsProductName
Windows Server 2022 Datacenter

PS C:/Admin> Get-WindowsFeature AD-Domain-Services,DNS,DHCP,Hyper-V
AD-Domain-Services Available
DNS Available
DHCP Available
Hyper-V Available

PS C:/Admin> Get-ADDomainController -Filter *
dc01.corp.local / GlobalCatalog: True

PS C:/Admin> Get-VM | Select Name,State,CPUUsage,MemoryAssigned
SRV-FS01 Running 4% 4096MB
ADдомен и учетки
GPOполитики и hardening
VMвиртуализация

Что должен уметь админ Windows Server

Не просто нажимать Next. Нужно понимать, что именно сервер делает в инфраструктуре.

01

Домен и учетки

AD DS, OU, группы, права, политики, вход на ПК и серверы.

AD DSOUGPO
02

Сеть и имена

DNS, DHCP, статические IP, зоны, реверс-зоны, резервации и диагностика.

DNSDHCPTCP/IP
03

Эксплуатация

Обновления, резервные копии, мониторинг, журналы, доступы и аудит.

BackupLogsPatch

Основные PowerShell-команды

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

Система inventory
Get-ComputerInfo
Get-WindowsEdition -Online
Get-HotFix | Sort-Object InstalledOn -Descending
Get-CimInstance Win32_OperatingSystem
Get-CimInstance Win32_LogicalDisk
Get-Volume
Get-PhysicalDisk
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Сеть network
Get-NetIPConfiguration
Get-NetAdapter
Get-NetIPAddress
Get-DnsClientServerAddress
Test-NetConnection 8.8.8.8
Test-NetConnection dc01.corp.local -Port 389
Resolve-DnsName dc01.corp.local
Get-NetTCPConnection | Sort-Object LocalPort
Службы и роли services
Get-Service | Sort-Object Status,Name
Restart-Service Spooler
Set-Service Spooler -StartupType Automatic
Get-WindowsFeature
Get-WindowsFeature | Where-Object Installed
Install-WindowsFeature -Name FS-FileServer -IncludeManagementTools
Remove-WindowsFeature -Name Web-Server
Логи и события events
Get-EventLog -LogName System -Newest 50
Get-WinEvent -LogName Security -MaxEvents 50
Get-WinEvent -FilterHashtable @{LogName='System';Level=2}
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4625}
wevtutil el
wevtutil qe System /c:20 /f:text
Совет: не работай под Domain Admin на постоянке. Для рутины - обычная учетка, для админ-действий - отдельная privileged-учетка.

AD: проверка, OU, группы, пользователи

Нормальная логика AD: сначала OU, потом группы, потом права на ресурсы. Не раздавай права напрямую каждому юзеру.

OU и группы
New-ADOrganizationalUnit -Name Users -Path "DC=corp,DC=local"
New-ADOrganizationalUnit -Name Servers -Path "DC=corp,DC=local"
New-ADOrganizationalUnit -Name Workstations -Path "DC=corp,DC=local"

New-ADGroup -Name GG-Files-Accounting-RW -GroupScope Global -GroupCategory Security
New-ADGroup -Name GG-Files-Accounting-RO -GroupScope Global -GroupCategory Security

Get-ADOrganizationalUnit -Filter *
Get-ADGroup -Filter "Name -like 'GG-*'"
Учетки и пароли
New-ADUser -Name "Ivan Petrov" -SamAccountName i.petrov -UserPrincipalName i.petrov@corp.local -Enabled $true
Set-ADAccountPassword i.petrov -Reset
Enable-ADAccount i.petrov
Add-ADGroupMember GG-Files-Accounting-RW i.petrov

Get-ADUser i.petrov -Properties MemberOf,LastLogonDate
Search-ADAccount -LockedOut
Unlock-ADAccount i.petrov
Disable-ADAccount i.petrov
Диагностика AD
dcdiag /v
repadmin /replsummary
repadmin /showrepl
nltest /dsgetdc:corp.local
nltest /dclist:corp.local
netdom query fsmo
Get-ADReplicationFailure -Target DC01
Сервер в домен
Add-Computer -DomainName corp.local -Credential CORP/admin.join -Restart
Test-ComputerSecureChannel
Test-ComputerSecureChannel -Repair -Credential CORP/admin.join
Remove-Computer -UnjoinDomainCredential CORP/admin.join -Restart

DNS и DHCP: база стабильного домена

Если DNS плохой - домен будет ломаться странно и непредсказуемо. Не игнорируй имена, зоны и реверс-записи.

DNS
Install-WindowsFeature DNS -IncludeManagementTools
Get-DnsServerZone
Add-DnsServerPrimaryZone -Name corp.local -ReplicationScope Domain
Add-DnsServerResourceRecordA -ZoneName corp.local -Name filesrv01 -IPv4Address 192.168.10.20
Resolve-DnsName filesrv01.corp.local
Clear-DnsClientCache
ipconfig /flushdns
ipconfig /registerdns
DHCP
Install-WindowsFeature DHCP -IncludeManagementTools
Add-DhcpServerInDC -DnsName dc01.corp.local -IPAddress 192.168.10.10
Add-DhcpServerv4Scope -Name Office-LAN -StartRange 192.168.10.100 -EndRange 192.168.10.200 -SubnetMask 255.255.255.0
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 -Router 192.168.10.1 -DnsServer 192.168.10.10 -DnsDomain corp.local
Get-DhcpServerv4Lease -ScopeId 192.168.10.0

Hyper-V: виртуализация без хаоса

Нормальный Hyper-V - это отдельные виртуальные коммутаторы, понятные имена VM, резервы ресурсов и backup не на тот же диск.

vSwitchVHDXCheckpointReplica
Hyper-V команды
Install-WindowsFeature Hyper-V -IncludeManagementTools -Restart

Get-VM
Get-VMSwitch
New-VMSwitch -Name External-LAN -NetAdapterName Ethernet -AllowManagementOS $true

New-VM -Name SRV-FS01 -MemoryStartupBytes 4GB -Generation 2 -NewVHDPath D:/VM/SRV-FS01/SRV-FS01.vhdx -NewVHDSizeBytes 80GB -SwitchName External-LAN
Set-VMProcessor SRV-FS01 -Count 2
Set-VMMemory SRV-FS01 -DynamicMemoryEnabled $true -MinimumBytes 2GB -StartupBytes 4GB -MaximumBytes 8GB
Start-VM SRV-FS01
Checkpoint-VM SRV-FS01 -SnapshotName Before-Update
Get-VMIntegrationService SRV-FS01

Hardening и безопасность

Сервер не должен жить с дефолтными правами, слабыми паролями и лишними портами.

Firewall и Defender
Get-NetFirewallProfile
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True
Get-NetFirewallRule | Where-Object Enabled -eq True
New-NetFirewallRule -DisplayName Allow-RDP-AdminSubnet -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 192.168.10.0/24 -Action Allow

Get-MpComputerStatus
Update-MpSignature
Start-MpScan -ScanType QuickScan
Аудит и входы
auditpol /get /category:*
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
auditpol /set /subcategory:"Account Lockout" /success:enable /failure:enable

Get-WinEvent -FilterHashtable @{LogName='Security';ID=4624} -MaxEvents 20
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4625} -MaxEvents 20
Get-LocalGroupMember Administrators
ЗонаЧто сделатьЗачем
RDPРазрешить только с admin-подсети или VPNМеньше риск brute-force и внешней атаки
Local AdminsПроверить состав группы AdministratorsУбрать лишние привилегии
SMBОтключить SMB1, проверить шарыСнизить риск lateral movement
UpdatesПатчи по графику и после backupНе ломать прод на ровном месте

Backup: правило 3-2-1

3 копии данных, 2 разных типа носителей, 1 копия вне основной площадки. Главное - регулярно проверять восстановление.

Бэкап, который ни разу не восстанавливали, - это не backup, а надежда.
Windows Server Backup
Install-WindowsFeature Windows-Server-Backup
Get-WBPolicy
Get-WBBackupSet

wbadmin start systemstatebackup -backupTarget:E: -quiet
wbadmin get versions
wbadmin get items -version:03/20/2026-22:00
wbadmin start recovery -version:03/20/2026-22:00 -itemType:File -items:C:/Data -recoveryTarget:D:/Restore -quiet

Ежедневный checklist админа

Простой режим контроля, который экономит нервы и время.

Проверить диски и свободное место

Get-Volume, журналы о нехватке места, рост VHDX и логов.

Проверить логи System, Application, Security

Ошибки Level 2, неудачные входы 4625, ошибки служб, падения драйверов.

Проверить backup job

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

Проверить AD replication и DNS

dcdiag, repadmin /replsummary, Resolve-DnsName, проверка SRV-записей домена.

Проверить обновления и антивирус

Патчи, Defender signatures, статус защиты и перезагрузки.

Файловый сервер и права доступа

Самая частая ошибка - раздавать права на папки каждому пользователю отдельно. Нужна модель через группы.

AGDLP-подход

Account - Global Group - Domain Local Group - Permission. Учетки кладем в global-группы, а права на ресурс выдаем domain local-группам.

GG-Accounting-RW - кто имеет доступ
DL-FS-Accounting-RW - какой доступ к папке
NTFS - на папку вешаем не юзера, а группу
File server и SMB share
Install-WindowsFeature FS-FileServer -IncludeManagementTools

New-Item -ItemType Directory -Path D:/Shares/Accounting
New-SmbShare -Name Accounting -Path D:/Shares/Accounting -FullAccess "CORP/DL-FS-Accounting-RW" -ReadAccess "CORP/DL-FS-Accounting-RO"

Get-SmbShare
Get-SmbShareAccess Accounting
Grant-SmbShareAccess -Name Accounting -AccountName "CORP/DL-FS-Accounting-RW" -AccessRight Full -Force
Revoke-SmbShareAccess -Name Accounting -AccountName "Everyone" -Force

icacls D:/Shares/Accounting
icacls D:/Shares/Accounting /grant "CORP/DL-FS-Accounting-RW:(OI)(CI)M"
Не давай Everyone Full Control на шары. Потом не найдешь, кто и как получил доступ.

GPO: политики, которые стоит настроить

GPO - это не место для хаоса. Каждая политика должна иметь имя, цель, OU и понятную зону влияния.

GPOЧто делаетСовет
Password PolicyДлина, сложность, срок жизни пароля, историяНе делай политику слишком жесткой, иначе люди начнут записывать пароли
Account LockoutБлокировка при подборе пароляОбычно 5-10 ошибок и 15-30 минут блокировки - но смотри по своей среде
Local AdminsКонтроль локальных админовНе держи обычных пользователей в local Administrators
Windows FirewallПравила для RDP, SMB, WinRM, WMIРазрешай порты только из нужных подсетей
Audit PolicyВходы, ошибки входа, доступ к объектамЛоги нужны не для галочки, а для расследования
GPO проверка
gpupdate /force
gpresult /r
gpresult /h C:/Temp/gpo-report.html
rsop.msc
Get-GPO -All
Get-GPResultantSetOfPolicy -ReportType Html -Path C:/Temp/rsop.html
Совет: не вешай все в Default Domain Policy. Создавай отдельные GPO: для серверов, рабочих станций, RDP, hardening, firewall, audit.

Быстрая диагностика: что смотреть первым

Когда что-то сломалось, не надо метаться. Иди по четкому маршруту.

Не входит в домен

Проверь DNS на клиенте, время, доступность DC, SRV-записи и права учетки join.

Не открывается шара

Проверь SMB-доступ, DNS-имя, share permissions, NTFS permissions, состав групп и кэш учетных данных.

Не применяется GPO

Проверь OU, Security Filtering, WMI Filter, Block Inheritance, Enforced, а потом смотри gpresult /h.

Тормозит сервер

Проверь CPU, RAM, disk queue, свободное место, антивирус, журналы System/Application и сеть.

Не работает DNS

Проверь forwarders, зоны, reverse lookup zone, регистрацию записей и команду Resolve-DnsName.

Hyper-V VM не стартует

Проверь свободную RAM, пути VHDX, checkpoints, состояние Hyper-V services и события Hyper-V-VMMS.

Команды для быстрой диагностики
ipconfig /all
ping dc01.corp.local
nslookup corp.local
nltest /dsgetdc:corp.local
dcdiag /test:dns /v
repadmin /replsummary
gpresult /r
Get-WinEvent -FilterHashtable @{LogName='System';Level=2} -MaxEvents 20
Get-Volume
Get-Service | Where-Object Status -ne Running

Советы по администрированию

Вот эти вещи кажутся мелочами, но именно они отделяют нормальную инфру от помойки.

A1

Веди журнал изменений

Пиши, кто, когда и что менял: GPO, DNS, DHCP, firewall, права, Hyper-V, backup. Без этого поиск причин - ад.

A2

Не трогай Default Policies

Default Domain Policy и Default Domain Controllers Policy не надо забивать всем подряд. Делай отдельные GPO.

A3

Не ставь все на DC

Domain Controller не должен быть файловым сервером, терминалом и экспериментальной площадкой.

A4

Проверяй backup восстановлением

Если ты не восстанавливал копию, ты не знаешь, работает она или нет.

A5

Не логинься везде Domain Admin

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

A6

Придерживайся именования

DC01, FS01, HV01, APP01 лучше, чем Server-New-2. По имени должно быть понятно, что это за узел.

Жесткое правило: любое изменение на проде делай только после backup, с понятным rollback-планом и в окно, когда простой не убьет бизнес.

Хорошая инфраструктура - это не магия, а дисциплина.

Держи домен чистым, права - минимальными, DNS - исправным, backup - проверенным, а PowerShell - под рукой.

Вернуться наверх
Дисклеймер: все материалы на этом сайте носят исключительно информационный характер. Автор не несет ответственности, если что-то пойдет не так, так как это личный справочник, который автор делает для себя. Перед любыми действиями на реальных серверах нужно сделать backup, проверить команды в тестовой среде и понимать последствия.