Windows Server для самых маленьких. Часть 1: Windows Server с нуля
Это первая статья серии «Windows Server для самых маленьких». Серия для тех, кто хочет понять, как устроен Windows Server и Active Directory изнутри: что происходит между нажатием Ctrl+Alt+Del и появлением рабочего стола, как контроллеры договариваются между собой, что лежит в каталоге и как это читать. К концу серии мы будем ходить по каталогу через LDAP, разбирать билеты Kerberos по полям и переносить роли между контроллерами.
У серии два принципа.
Первый: о каждом компоненте — не только зачем он нужен, но и как он работает. Какие объекты появляются в каталоге, какие пакеты идут по сети, что ломается и почему. Поэтому почти в каждой части будет вывод команд, журналы событий и разбор того, что в них написано.
Второй: всё делаем из PowerShell, а не мышкой. Оснастки и мастера в Windows Server есть, и иногда мы будем говорить «вот так это выглядит в UI», но основной путь — команда. Причин три. Команду можно повторить, положить в скрипт и выполнить на двадцати серверах; команду можно показать в статье точнее любого скриншота; и на Server Core, где графической оболочки нет, другого пути просто не существует.
План серии такой. Сначала основа: установка сервера, работа с дисками и сетью, устройство Active Directory. Затем домен: первый контроллер, LDAP и Kerberos изнутри, DNS, DHCP для IPv4 и IPv6, второй контроллер и репликация, контроллер только для чтения, время. Потом управление: модуль ActiveDirectory, PowerShell Remoting через WinRM, инструменты на рабочей станции, SSH с PowerShell в роли оболочки. Дальше эксплуатация: роли FSMO, диагностика, замена контроллеров, резервное копирование. Затем леса и доверие между ними, групповые политики, удостоверяющий центр, NPS с RADIUS для Wi-Fi и VPN, Linux-машины в домене и синхронизация с Entra ID. Статьи выходят по одной, и в конце каждой написано, что будет в следующей.
Протоколы, которые уже разобраны в серии «Сети для самых маленьких», заново разбирать не будем: когда дойдём до DNS или DHCP, я буду ссылаться на те статьи и напоминать суть в двух фразах.
Что понадобится
Для повторения примеров хватит одного компьютера с виртуализацией. Подойдёт Hyper-V в Windows 10/11 Pro, VMware Workstation, VirtualBox или KVM на Linux. Лабораторная сеть серии такая:
192.168.1.0/24 (сайт Office)
┌──────────────┬──────────────┬──────────────┬──────────────┐
│ │ │ │ │
dc1.corp. dc2.corp. srv1.corp. ws1.corp. роутер
example.com example.com example.com example.com 192.168.1.1
.10 .11 .20 .100
контроллер контроллер рядовой Windows 11
DNS, DHCP DNS, DHCP сервер с RSAT
Домен будет называться corp.example.com с NetBIOS-именем CORP. Имена и адреса в серии нейтральные: example.com зарезервирован под документацию и никуда не ведёт, а 192.168.1.0/24 есть у каждого дома. Позже появятся второй сайт 192.168.2.0/24, IPv6-префикс 2001:db8:1::/64 и партнёрский лес partner.example.net для разговора о доверии.
Образ Windows Server берётся с Evaluation Center Microsoft: ISO работает 180 дней без ключа, и этого хватит на всю серию. Для виртуальной машины контроллера достаточно двух виртуальных процессоров, 2 ГБ памяти и диска на 40 ГБ.
Редакции, каналы и версии
Прежде чем ставить, нужно выбрать три вещи: редакцию, вариант установки и версию.
Редакции. У Windows Server их две основные:
| Standard | Datacenter | |
|---|---|---|
| Виртуальные машины Hyper-V | две на лицензию | без ограничений |
| Storage Spaces Direct, Storage Replica без ограничений, SDN, Shielded VM | нет | есть |
| Всё остальное: AD, DNS, DHCP, файлы, IIS, RDS, кластеры | одинаково | одинаково |
Разница только в виртуализации и хранилищах. Контроллеру домена, файловому или веб-серверу от Datacenter ничего не нужно, а стоит он в несколько раз дороже. Есть ещё Essentials для организаций до 25 пользователей с особыми ограничениями и Datacenter: Azure Edition, которая существует только в Azure и Azure Stack HCI и получает некоторые функции раньше остальных.
Лицензируется Windows Server по ядрам процессора: минимум 16 ядер на сервер и по 8 на каждый физический процессор, плюс клиентские лицензии CAL на каждого пользователя или устройство, которые к серверу обращаются. В этой серии лицензирование нас больше не интересует: пробная версия работает 180 дней, а при желании превращается в полную одной командой с ключом, об этом в конце статьи.
Вариант установки. В установщике каждая редакция встречается дважды: просто «Standard» и «Standard (Desktop Experience)». Первое — Server Core: без рабочего стола, проводника и оснасток, после входа открывается окно командной строки. Второе — привычный Windows с графической оболочкой.
Server Core — рекомендуемый вариант для всего, что не требует графики на самом сервере: контроллеры домена, DNS, DHCP, файловые серверы, Hyper-V, IIS. Он занимает в несколько раз меньше места на диске и в памяти, у него меньше обновлений и меньше перезагрузок, и площадь атаки у него тоже меньше: нет браузера, нет проводника, нет половины библиотек, в которых находят уязвимости. Управляется он удалённо — из PowerShell, оснасток на рабочей станции, Windows Admin Center — и именно так мы и будем работать. Desktop Experience нужен, когда на сервере работает приложение с окнами или когда администрировать сервер будут локально, с консоли.
Важно: выбор делается при установке и потом не меняется. В Windows Server 2012 можно было добавить или убрать оболочку командой, начиная с 2016 — только переустановкой.
Версии и каналы. Основной канал — LTSC (Long-Term Servicing Channel): выпуск раз в два-три года, пять лет основной поддержки и пять расширенной:
| Версия | Выход | Конец расширенной поддержки |
|---|---|---|
| Windows Server 2016 | 2016 | январь 2027 |
| Windows Server 2019 | 2018 | январь 2029 |
| Windows Server 2022 | 2021 | октябрь 2031 |
| Windows Server 2025 | 2024 | октябрь 2034 |
Есть ещё Annual Channel для контейнеров: новая версия каждый год, поддержка 18 месяцев, только Server Core и только по подписке. Для серверов общего назначения он не нужен.
В серии используется Windows Server 2025, но почти всё, что здесь написано, работает начиная с 2016: Active Directory за эти годы менялся мало, а командлеты — ещё меньше. Где различия есть, я их отмечу.
Установка
Загружаемся с ISO. Установщик спрашивает язык и раскладку, образ (здесь выбирается редакция и вариант), принимает лицензию, предлагает тип установки — нужен Custom, не Upgrade, — и диск. Разделы на пустом диске он создаёт сам: EFI-раздел на 100 МБ, служебный MSR на 16 МБ, системный раздел на всё остальное и раздел восстановления. Трогать это не нужно, а если нужно (например, вы хотите системный раздел определённого размера), в следующей части разберём diskpart, который делает то же самое из консоли.
Два слова о платформе. Windows Server 2025 требует UEFI и поддерживает Secure Boot; TPM 2.0 не обязателен, но нужен для BitLocker и некоторых функций безопасности. В Hyper-V это виртуальная машина второго поколения с включённым Secure Boot (шаблон Microsoft Windows) и, при желании, виртуальным TPM. VirtualBox и VMware тоже умеют UEFI, но его нужно включить в настройках машины до установки.
После копирования файлов и пары перезагрузок установщик просит задать пароль встроенного администратора. Пароль нужен сложный: по умолчанию действует политика минимум семь символов и три категории из четырёх (строчные, прописные, цифры, спецсимволы). Этот пароль станет паролем восстановления служб каталогов, когда сервер превратится в контроллер, так что лучше сразу выбрать такой, какой вы потом вспомните.
Входим. На Server Core появляется чёрное окно cmd.exe, и поверх него, начиная с Windows Server 2022, автоматически запускается sconfig — текстовое меню с номерами пунктов: домен, имя, обновления, удалённое управление, сеть, дата и время. Через него можно сделать всё, что описано ниже, но мы его закроем (пункт 15) и будем делать то же самое командами: во-первых, чтобы понимать, что происходит, во-вторых, потому что команды пригодятся в скриптах, а меню — нет. На Desktop Experience вместо консоли открывается Server Manager; его тоже закрываем и открываем PowerShell через правый клик на кнопке Пуск или Win+X.
Первые минуты в PowerShell
В Windows Server встроен Windows PowerShell 5.1 — тот, что запускается командой powershell. Он никуда не делся и не денется: на нём работают все модули управления ролями. Параллельно существует PowerShell 7 (pwsh), кроссплатформенный и активно развиваемый; его ставят отдельно, и в серии мы будем пользоваться встроенным 5.1: он гарантированно есть на каждом сервере, а разница в синтаксисе для наших задач не важна. На Server Core, где нет winget, PowerShell 7 устанавливается так:
Invoke-WebRequest -Uri https://aka.ms/install-powershell.ps1 -OutFile install-powershell.ps1
.\install-powershell.ps1 -UseMSI -Quiet
Три вещи, которые нужно знать о PowerShell, прежде чем двигаться дальше.
Команды возвращают объекты, а не текст. Когда Get-Service печатает таблицу, это не строки: это объекты ServiceController со свойствами и методами, которые консоль в последний момент отформатировала в таблицу. Поэтому с результатом можно работать дальше:
PS C:\> Get-Service | Where-Object Status -eq 'Running' | Sort-Object DisplayName | Select-Object -First 3
Status Name DisplayName
------ ---- -----------
Running BFE Base Filtering Engine
Running BrokerInfrastru... Background Tasks Infrastructure Service
Running CDPSvc Connected Devices Platform Service
Что у объекта внутри, показывает Get-Member:
PS C:\> Get-Service W32Time | Get-Member -MemberType Property
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
CanPauseAndContinue Property bool CanPauseAndContinue {get;}
CanShutdown Property bool CanShutdown {get;}
CanStop Property bool CanStop {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName Property string DisplayName {get;set;}
...
StartType Property System.ServiceProcess.ServiceStartMode StartType {get;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
В таблице по умолчанию видны три свойства, а у объекта их полтора десятка. Привычка смотреть Get-Member и Format-List * экономит часы: почти всегда нужное свойство уже есть, его просто не показывают.
Команды находятся по имени. Все командлеты называются «Глагол-Существительное», глаголов ограниченный набор (Get, Set, New, Remove, Add, Install, Enable, Test, Start, Stop, …), и это позволяет угадывать:
PS C:\> Get-Command -Noun NetIPAddress
CommandType Name Version Source
----------- ---- ------- ------
Function Get-NetIPAddress 1.0.0.0 NetTCPIP
Function New-NetIPAddress 1.0.0.0 NetTCPIP
Function Remove-NetIPAddress 1.0.0.0 NetTCPIP
Function Set-NetIPAddress 1.0.0.0 NetTCPIP
PS C:\> Get-Command -Module DnsServer | Measure-Object | Select-Object Count
Count
-----
132
Справка: Get-Help New-NetIPAddress -Full или -Online (откроет документацию в браузере на рабочей станции). На чистом сервере локальной справки нет, её скачивает Update-Help.
Опасные команды умеют репетировать. Параметр -WhatIf показывает, что команда сделала бы, не делая этого; -Confirm спрашивает перед каждым действием. Когда через двадцать частей мы будем удалять контроллер из каталога, это пригодится.
Имя сервера
Установщик даёт машине случайное имя вида WIN-A1B2C3D4E5F. Меняем:
PS C:\> Rename-Computer -NewName dc1 -Restart
Имя — до 15 символов (это ограничение NetBIOS, которое никуда не делось), латиница, цифры и дефис. Перезагрузка обязательна: имя компьютера читается при старте.
Имени нужен ещё DNS-суффикс, чтобы сервер знал своё полное имя dc1.corp.example.com. У члена домена суффикс появляется автоматически при вступлении в домен, а у первого контроллера — при создании леса, так что здесь его задавать не нужно. Если зачем-то нужно задать руками у автономного сервера, это ключ реестра:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters' -Name 'NV Domain' -Value 'corp.example.com'
Сеть
После установки у адаптера адрес от DHCP, если DHCP в сети есть. Серверу, а особенно будущему контроллеру и DNS-серверу, нужен статический адрес: его будут искать по адресу все клиенты сети.
Смотрим, что есть:
PS C:\> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
Ethernet Microsoft Hyper-V Network Adapter 4 Up 00-15-5D-01-02-03 10 Gbps
PS C:\> Get-NetIPConfiguration
InterfaceAlias : Ethernet
InterfaceIndex : 4
InterfaceDescription : Microsoft Hyper-V Network Adapter
NetProfile.Name : Network
IPv4Address : 192.168.1.137
IPv6Address : 2001:db8:1::a1b2:c3d4:e5f6:1234
IPv4DefaultGateway : 192.168.1.1
IPv6DefaultGateway : fe80::1
DNSServer : 192.168.1.1
Адаптер называется Ethernet, и это имя мы будем указывать в командах. Если адаптеров несколько, их полезно переименовать по назначению: Rename-NetAdapter -Name 'Ethernet 2' -NewName 'Storage'.
Переводим IPv4 на статику. Порядок важен: сначала выключить DHCP на интерфейсе, иначе клиент DHCP продолжит переписывать настройки; потом убрать адрес и маршрут, полученные от DHCP; потом задать свои:
Set-NetIPInterface -InterfaceAlias Ethernet -AddressFamily IPv4 -Dhcp Disabled
Remove-NetIPAddress -InterfaceAlias Ethernet -AddressFamily IPv4 -Confirm:$false
Remove-NetRoute -InterfaceAlias Ethernet -AddressFamily IPv4 -DestinationPrefix 0.0.0.0/0 -Confirm:$false
New-NetIPAddress -InterfaceAlias Ethernet -IPAddress 192.168.1.10 -PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 192.168.1.1
Две ловушки. New-NetIPAddress -DefaultGateway откажется работать, если маршрут по умолчанию на этом интерфейсе уже есть, отсюда Remove-NetRoute строкой выше. И адрес DNS мы пока указываем роутер: когда сервер станет контроллером, он станет и DNS-сервером, и мы это поменяем в части про первый контроллер: там свои правила про то, куда контроллер должен смотреть за DNS.
Про IPv6 одно правило: не выключайте его. Часть служб Windows (Exchange, отказоустойчивые кластеры, часть RPC) ожидает, что IPv6 есть, хотя бы в виде link-local-адреса fe80::…. Если в сети нет IPv6-маршрутизатора, адаптер получит только link-local и будет работать поверх IPv4, никому не мешая. Если IPv6 в сети есть, адрес и шлюз придут сами по Router Advertisement, как в части 15 сетевой серии; статический IPv6-адрес задаётся тем же New-NetIPAddress с префиксом 64.
Проверяем:
PS C:\> Test-NetConnection -ComputerName www.vitaliy.org -Port 443
ComputerName : www.vitaliy.org
RemoteAddress : 203.0.113.65
RemotePort : 443
InterfaceAlias : Ethernet
SourceAddress : 192.168.1.10
TcpTestSucceeded : True
Test-NetConnection — замена ping, tracert (с -TraceRoute) и telnet host port в одной команде, и она показывает, с какого адреса и интерфейса пошло соединение, что при нескольких адаптерах важнее всего остального.
Настройки адаптера, которые мы сейчас сделали четырьмя командлетами, старые руководства делают через netsh interface ip set address. Это не устарело и иногда незаменимо, разговор об этом в следующей части.
Время
Служба времени Windows называется W32Time. У автономного сервера она по умолчанию синхронизируется с time.windows.com раз в неделю, у члена домена — с контроллером, у контроллера — с владельцем роли PDC-эмулятора, а у того — с тем, что ему укажут. Почему время в домене так важно, что ему посвящена отдельная часть: Kerberos отвергает билеты, если часы клиента и сервера расходятся больше чем на пять минут. Пока задача проще — чтобы время на сервере было правильным.
Часовой пояс:
PS C:\> Get-TimeZone
Id : Pacific Standard Time
DisplayName : (UTC-08:00) Pacific Time (US & Canada)
...
PS C:\> Set-TimeZone -Id 'W. Europe Standard Time'
Список идентификаторов: Get-TimeZone -ListAvailable. Обратите внимание, что часовой пояс не влияет на то, какое время сервер считает «сейчас»: внутри всё хранится в UTC, пояс нужен только для показа и для журналов.
Источник времени у автономного сервера. Для W32Time нет командлетов, только утилита w32tm:
PS C:\> w32tm /query /status
Leap Indicator: 0(no warning)
Stratum: 4 (secondary reference - syncd by (S)NTP)
Precision: -23 (119.209ns per tick)
Root Delay: 0.0312500s
Root Dispersion: 7.7812500s
ReferenceId: 0xC0A80101 (source IP: 192.168.1.1)
Last Successful Sync Time: 15.10.2026 10:42:17
Source: 192.168.1.1
Poll Interval: 10 (1024s)
Здесь источник пришёл по DHCP (опция 42). Чтобы задать свои серверы NTP:
w32tm /config /manualpeerlist:"0.pool.ntp.org,0x8 1.pool.ntp.org,0x8" /syncfromflags:manual /reliable:no /update
w32tm /resync
0x8 после имени — режим клиента (client mode): запрос раз в интервал опроса, а не симметричный обмен между равными. Stratum в выводе — удаление от эталонных часов: у атомных часов 0, у сервера, который берёт с них время, 1, у нас 4.
Если сервер виртуальный, есть ещё один источник: гипервизор. Hyper-V через службу интеграции подводит часы гостя к часам хоста, VMware делает то же самое через VMware Tools. Для рядового сервера это удобно, для контроллера домена — источник путаницы, который мы разберём, когда дойдём до времени в домене.
Обновления
Свежеустановленный сервер отстаёт от текущих обновлений на месяцы. На Server Core с Windows Server 2022 обновления можно поставить из sconfig (пункт 6), но мы обещали команды. Встроенного командлета для Windows Update нет; есть модуль PSWindowsUpdate из PowerShell Gallery, ставший стандартом де-факто:
Install-PackageProvider -Name NuGet -Force
Install-Module -Name PSWindowsUpdate -Force
Get-WindowsUpdate
Первая команда нужна один раз: PowerShell 5.1 не умеет работать с галереей без провайдера NuGet. Если Install-Module жалуется на TLS (это случается на Windows Server 2016), перед ним выполняется [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12.
PS C:\> Get-WindowsUpdate
ComputerName Status KB Size Title
------------ ------ -- ---- -----
DC1 -D----- KB5062553 912MB 2026-10 Cumulative Update for Microsoft server operating system version 24H2 for x64-based Systems
DC1 -D----- KB5061101 58MB 2026-10 Servicing Stack Update for Microsoft server operating system version 24H2 for x64-based Systems
PS C:\> Install-WindowsUpdate -AcceptAll -AutoReboot
Обновления Windows Server с 2016 года кумулятивные: каждое месячное содержит все предыдущие, поэтому «поставить всё» — это одно большое обновление и один стек обслуживания, и две перезагрузки в худшем случае. Что уже стоит, показывает Get-HotFix:
PS C:\> Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 3
Source Description HotFixID InstalledBy InstalledOn
------ ----------- -------- ----------- -----------
DC1 Security Update KB5062553 NT AUTHORITY\SYSTEM 15.10.2026 0:00:00
DC1 Update KB5061101 NT AUTHORITY\SYSTEM 15.10.2026 0:00:00
DC1 Update KB5058499 02.09.2026 0:00:00
Автоматические обновления на сервере — вопрос политики. По умолчанию сервер скачивает и ставит их сам, а перезагружается в «часы вне активности», что для контроллера домена в три часа ночи обычно приемлемо, а для сервера баз данных — нет. Поведение задаётся групповой политикой Windows Update, и мы к ней вернёмся в части про GPO; на отдельном сервере то же самое делается через sconfig (пункт 5) или ключи реестра в HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU.
Роли и компоненты
Всё, что умеет Windows Server, разбито на роли (Active Directory Domain Services, DNS Server, DHCP Server, Web Server, Hyper-V, …) и компоненты (features: .NET Framework, Failover Clustering, Telnet Client, инструменты управления). После установки стоит минимум, и это правильно: каждая роль — это службы, порты и обновления.
PS C:\> Get-WindowsFeature | Where-Object InstallState -eq Installed
Display Name Name Install State
------------ ---- -------------
[X] File and Storage Services FileAndStorage-Services Installed
[X] Storage Services Storage-Services Installed
[X] .NET Framework 4.8 Features NET-Framework-45-Fea... Installed
[X] .NET Framework 4.8 NET-Framework-45-Core Installed
[X] WCF Services NET-WCF-Services45 Installed
[X] TCP Port Sharing NET-WCF-TCP-PortSharing45 Installed
[X] Windows Defender Antivirus Windows-Defender Installed
[X] Windows PowerShell PowerShellRoot Installed
[X] Windows PowerShell 5.1 PowerShell Installed
[X] WoW64 Support WoW64-Support Installed
Ставится роль так (пока не выполняем, это тема следующих частей):
Install-WindowsFeature -Name AD-Domain-Services, DNS -IncludeManagementTools
-IncludeManagementTools добавляет модули PowerShell и оснастки для роли. На Server Core оснастки не поставятся (им нужна графика), а модули — да. Удаляется роль Uninstall-WindowsFeature, и некоторые компоненты (например, Desktop Experience) удалить нельзя, о чём уже говорилось.
Отдельная категория — Features on Demand: компоненты, которых нет в образе и которые скачиваются с Windows Update или берутся с отдельного ISO. Сюда входит App Compatibility FOD для Server Core — набор библиотек и утилит из Desktop Experience (Event Viewer, Performance Monitor, Disk Management, часть оснасток), которые можно добавить на Core без установки всей оболочки:
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0
Полезная вещь, когда на Core нужно открыть eventvwr или diskmgmt локально, но в серии мы постараемся без неё обходиться.
Удалённый доступ
Последнее, что делается в консоли сервера: включить то, через что к нему будут подключаться дальше.
PowerShell Remoting через WinRM на Windows Server включён с момента установки: служба WinRM слушает TCP 5985, правило файрвола для него открыто для локальной подсети. Пока сервер не в домене, подключиться к нему с рабочей станции можно только по паролю и с оговорками (TrustedHosts, об этом в части про WinRM); как только появится домен, подключение заработает по Kerberos без всяких оговорок. Проверить, что служба слушает:
PS C:\> Test-WSMan
wsmid : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor : Microsoft Corporation
ProductVersion : OS: 0.0.0 SP: 0.0 Stack: 3.0
Удалённый рабочий стол по умолчанию выключен. На Server Core он тоже работает: в сеансе RDP вы увидите ту же консоль, только через сеть. Включаем:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0
Enable-NetFirewallRule -DisplayGroup 'Remote Desktop'
Первая строка — тот самый ключ реестра, который переключает флажок в свойствах системы; вторая открывает TCP 3389 в файрволе. По умолчанию RDP требует Network Level Authentication (клиент аутентифицируется до создания сеанса), и это правильно, не выключайте.
Файрвол Windows включён, с тремя профилями — Domain, Private, Public — и правилами, привязанными к профилю. Сейчас сервер не в домене, сетевой профиль — Private или Public в зависимости от того, что сеть сообщила о себе; после вступления в домен интерфейс, видящий контроллер, перейдёт в профиль Domain, и часть правил (в том числе для управления) откроется сама. Смотреть, что открыто:
PS C:\> Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction
Name Enabled DefaultInboundAction
---- ------- --------------------
Domain True Block
Private True Block
Public True Block
PS C:\> Get-NetFirewallRule -Enabled True -Direction Inbound | Where-Object DisplayGroup -like '*Remote*' | Select-Object DisplayName, Profile
Смотрим руками
Что знает о себе только что установленный сервер:
PS C:\> Get-ComputerInfo | Select-Object CsName, OsName, OsVersion, OsBuildNumber, WindowsInstallationType, CsDomainRole, OsUptime
CsName : DC1
OsName : Microsoft Windows Server 2025 Standard Evaluation
OsVersion : 10.0.26100
OsBuildNumber : 26100
WindowsInstallationType : Server Core
CsDomainRole : StandaloneServer
OsUptime : 00:12:41.0831245
WindowsInstallationType — Server Core или Server; CsDomainRole — сейчас StandaloneServer, после вступления в домен станет MemberServer, после повышения — BackupDomainController или PrimaryDomainController (так в API до сих пор называются контроллеры: с ролью PDC-эмулятора и без).
Журналы. Графического Event Viewer на Core нет, и это не потеря: Get-WinEvent умеет больше.
PS C:\> Get-WinEvent -LogName System -MaxEvents 5 | Format-Table TimeCreated, Id, ProviderName, LevelDisplayName -AutoSize
TimeCreated Id ProviderName LevelDisplayName
----------- -- ------------ ----------------
15.10.2026 10:51:03 7040 Service Control Manager Information
15.10.2026 10:50:12 1500 Microsoft-Windows-GroupPolicy Information
15.10.2026 10:49:58 129 Microsoft-Windows-Time-Service Warning
15.10.2026 10:49:57 37 Microsoft-Windows-Time-Service Information
15.10.2026 10:49:30 6013 EventLog Information
PS C:\> Get-WinEvent -FilterHashtable @{LogName='System'; Level=2,3; StartTime=(Get-Date).AddDays(-1)} |
Group-Object ProviderName | Sort-Object Count -Descending | Select-Object Count, Name
Вторая команда — шаблон, который мы будем использовать всю серию: ошибки и предупреждения за сутки, сгруппированные по источнику. Пять минут на чтение такого вывода после каждой перезагрузки спасают от большинства сюрпризов.
Активация. У пробной версии 180 дней, остаток показывает slmgr /dlv (это VBScript, вывод в окне сообщения на Desktop Experience и в консоли на Core) или:
PS C:\> Get-CimInstance SoftwareLicensingProduct -Filter "PartialProductKey IS NOT NULL" | Select-Object Name, LicenseStatus, GracePeriodRemaining
Name LicenseStatus GracePeriodRemaining
---- ------------- --------------------
Windows(R), ServerStandardEval edition 1 258912
GracePeriodRemaining в минутах: 258 912 минут — это те самые 180 дней. Когда придёт время, пробная редакция превращается в полную без переустановки: DISM /Online /Set-Edition:ServerStandard /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula, две перезагрузки, и сервер лицензирован. Ключ активируется slmgr /ato.
У нас есть сервер с именем, адресом, правильным временем и обновлениями, и к нему можно подключиться по сети. Прежде чем делать из него контроллер домена, стоит разобраться с двумя вещами, без которых не обходится ни одна установка: дисками и сетевой подсистемой на уровне ниже командлетов.
Дальше — Часть 2: диски и сеть через diskpart и netsh. Что делают эти утилиты, чем их заменяет PowerShell (модули Storage, NetTCPIP, NetSecurity), и что по-прежнему умеют только они: от очистки диска до перенаправления портов и захвата трафика без Wireshark.
Серия «Windows Server для самых маленьких»
- Windows Server с нуля (эта статья) — редакции, Server Core, установка, первые команды PowerShell, имя, сеть, время, обновления, роли.
- Диски и сеть: diskpart, netsh и их PowerShell-замены — разметка дисков и сетевой стек через старые утилиты и модули Storage, NetTCPIP, NetSecurity, и что умеют только утилиты.
Оставить комментарий могут только зарегистрированные пользователи.
Войдите на сайт или зарегистрируйтесь, чтобы оставить комментарий.