Установка и настройка контроллера домена на Windows Server 2012R2 с помощью PowerShell

По долгу своей службы иногда приходится устанавливать и настраивать сервера на базе Windows Server 2012 R2 в небольших организациях, где как правило не более 50 рабочих ПК, а основная роль сервера на базе Windows Server 2012 R2 — это AD, FS, DHCP, DNS. Именно поэтому в большинстве случаев я провожу типовую первоначальную настройку сервера с помощью PowerShell, а не GUI, т.к. с PowerShell — это в разы быстрее.

Ниже в статье я опишу как с помощью PowerShell без GUI:
1. Настроить часовой пояс и параметры сети для нового сервера.
2. Включить RDP, установить имя сервера.
3. Развернуть контроллер домена Active Directory.
4. Настроить службы DNS и DHCP.

Исходные данные:
ОС: Windows Server 2012 R2
Подсеть нашей организации: 192.168.100.0/24
IP-адрес первого контроллера домена: 192.168.100.2
IP-адрес шлюза в Интернет: 192.168.100.1
Имя первого контроллера домена: DC1
Имя домена: corp.myorg.ru
Netbios имя домена: DC
FQDN первого контроллера домена: DC1.corp.myorg.ru
DHCP-сервер, диапазон выдаваемых адресов: 192.168.100.10 — 192.168.100.254
Пароль Администратор: P@ssw0rd

Итак приступим:

1. Устанавливаем Windows Server 2012R2 с графическим интерфейсом.

2. Настраиваем часовой пояс на Ekaterinburg Standard Time:

%windir%\system32\tzutil.exe /s "Ekaterinburg Standard Time"

2. После установки первым делом меняем IP-адрес на сетевой карте, можно через GUI, а можно из командной строки cmd так:

2.1 Смотрим имя интерфейса:

netsh interface ip show config

или

ipconfig

2.2 Меняем IP-адрес:

netsh interface ipv4 set address name=Ethernet source=static address=192.168.100.2/24 gateway=192.168.100.1 store=persistent
netsh dns set dnsservers name=Ethernet source=static address=127.0.0.1
netsh interface ip delete arpcache

здесь указаны:
name=Ethernet — имя сетевого интерфейса на сервере, его мы узнали в пункте 2.1
192.168.100.2 — IP-адрес нашего сервера
255.255.255.0 — маска подсети нашего сервера
192.168.100.1 — шлюз по-умолчанию в сети, у меня 192.168.100.1 это linux сервер с прозрачным прокси squid, у вас это может быть отдельный роутер

ВНИМАНИЕ! В процессе установки IP-адреса DNS сервера у нас будет выдано предупреждение:
Заданный DNS-сервер работает некорректно или не существует.
Это вполне логично, ведь мы задали в качестве DNS адрес 127.0.0.1, а самого DNS-сервера там еще нет, но он появиться после развертывания Active Directory.

2.3 Если Вы не планируете использовать в своей сети IPv6, то я настоятельно рекомендую его отключить.
В отличие от других протоколов, IPv6 нельзя отключить просто убрав галку в свойствах сетевого интерфейса.
Если поступить таким образом, то можно получить определенные проблемы с приложениями, которые используют loopback и интерфейсное туннелирование. Правильным способом отключения протокола IPv6 является его деактивация через системный реестр или с помощью MicrosoftEasyFix.

Мы скачаем MicrosoftEasyFix с сайта Microsoft
Качаем файл «Отключение IPv6» (MicrosoftEasyFix20160.mini.diagcab) и запускаем на сервере.

Для любителей сделать все вручную через реестр, для отключения IPv6 в раздел реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters
создаем параметр DWORD (32-бита) с именем DisabledComponents и значением FF в шестнадцатеричной
системе (255 в десятичной) и перезагружаем сервер shutdown /r /t 00
или
Запускаем PowerShell от имени Администратора и вводим:

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\services\TCPIP6\Parameters' -name "DisabledComponents" -Value 255;
Restart-Computer -Force

2.3 Включаем RDP, т.к. по умолчанию он выключен на сервере.
Запускаем PowerShell от имени Администратора и вводим:

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -Value 0;
Enable-NetFirewallRule -DisplayGroup "Дистанционное управление рабочим столом";
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1;

3. Задаем имя нашего будущего контроллера домена.
Запускаем PowerShell от имени Администратора и вводим:

Rename-Computer -NewName DC1 -Restart -Force

4. Развертываем Active Directory.
Традиционно для автоматической установки контроллера домена средствами командной строки использовалась команда Dcpromo, но в WindowsServer 2012 она признана устаревшей и рекомендуется использовать PowerShell, что мы и сделаем.

Как бы это выглядело через dcpromo:

Dcpromo /unattend /InstallDNS:Yes /dnsOnNetwork:No /ReplicaOrNewDomain:Domain /NewDomain:Forest /NewDomainDNSName:corp.myorg.ru /DomainNetBiosName:DC /DatabasePath:"C:\Windows\NTDS" /LogPath:"C:\Windows\NTDS" /SysvolPath:"C:\Windows\SYSVOL" /safeModeAdminPassword:P@ssw0rd /ForestLevel:4 /DomainLevel:4 /RebootOnCompletion:Yes

Но нас интересует PowerShell, поэтому открываем консоль PowerShell от имени Администратор и выполняем:

4.1 Для установки роли доменных служб введем команду:

Import-Module ServerManager
Add-WindowsFeature –Name AD-Domain-Services –IncludeAllSubFeature –IncludeManagementTools

Параметр –IncludeAllSubFeature задает установку всех зависимых служб и компонентов вместе с родительской ролью, службой роли или компонентом, заданным параметром -Name
Параметр –IncludeManagementTools задает установку средств администрирования и управления.

На заметку: Средства Администрирования можно установить и отдельно командой:

Add-WindowsFeature –Name RSAT-ADDS,RSAT-ADDS-Tools,RSAT-AD-AdminCenter

4.2 Для создания нового домена в новом лесу введите команду:

Import-Module ADDSDeployment
Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath "C:\Windows\NTDS" -DomainMode "Win2012" -DomainName "corp.myorg.ru" -DomainNetbiosName "DC" -ForestMode "Win2012" -InstallDns:$true -LogPath "C:\Windows\NTDS" -NoRebootOnCompletion:$false -SysvolPath "C:\Windows\SYSVOL" -Force:$true -SafeModeAdministratorPassword (convertto-securestring "P@ssw0rd" -asplaintext -force)

После установки сервер будет автоматически перезагружен.

В модуле ADDSDeployment есть еще несколько полезных командлетов, перечислю их:
Add-ADDSReadOnlyDomainControllerAccount — Установка контроллера только для чтения
Install-ADDSDomain — Установить первый контроллер домена в дочернем или дереве домена
Install-ADDSDomainController — Установить дополнительный контроллер домена
Install-ADDSForest — Установить первый контроллер в новом лесу
Test-ADDSDomainControllerInstallation Verify — необходимые условия для установки дополнительного контроллера домена (проверка)
Test-ADDSDomainControllerUninstallation — удаление сервиса AD c сервера (проверка)
Test-ADDSDomainInstallation — Проверка необходимых условий для установки первого контроллера домена в дочернем или дереве домена.
Test-ADDSForestInstallation Установка первого контроллера в новом лесу (проверка)
Test-ADDSReadOnlyDomainControllerAccountCreation — Проверка необходимых условий для установки контроллера только для чтения
Uninstall-ADDSDomainController — Удаление контроллера домена с сервера

5. Приступить к дальнейшей настройке сервера, и первое, что нам нужно сделать — это создать обратную зону (reverse lookup zone) для нашей подсети 192.168.100.0/24 и добавить в неё PTR запись dc1.corp.myorg.ru с IP-адресом 192.168.100.2

Тут возможно 2 подхода: создать обратную зону из оболочки cmd с помощью dnscmd или на PowerShell.

5.1 Вариант с cmd

Запускаем командную строку cmd от имени Администратора и вводим:

dnscmd DC1 /zoneadd 100.168.192.in-addr.arpa /DSprimary
dnscmd DC1 /config 100.168.192.in-addr.arpa /allowupdate 1
dnscmd DC1 /recordadd 100.168.192.in-addr.arpa 2 PTR dc1.corp.myorg.ru

5.2 Вариант с PowerShell

Запускаем PowerShell от имени Администратора и вводим:

Add-DnsServerPrimaryZone -DynamicUpdate NonsecureAndSecure -NetworkId '192.168.100.0/24' -ReplicationScope Domain
Add-DnsServerResourceRecordPtr -Name "2" -ZoneName "100.168.192.in-addr.arpa" -AgeRecord -PtrDomainName "$env:COMPUTERNAME.corp.myorg.ru"

Теперь если мы сделаем: nslookup 192.168.100.2 то у нас произойдет нормальное обратное преобразование.

6. Теперь нам необходимо установить и настроить DHCP-сервер:

Запускаем PowerShell от имени Администратора и вводим:

Import-Module ServerManager
Add-WindowsFeature –Name DHCP –IncludeManagementTools

Добавим на сервер группы Пользователи DHCP и Администраторы DHCP:

Add-DHCPServerSecurityGroup -ComputerName $env:COMPUTERNAME
Restart-Service dhcpserver

Авторизируем наш новый DHCP сервера в домене Active Directory:

Add-DhcpServerInDC -DnsName $env:COMPUTERNAME -IPAddress 192.168.100.2

Зарегистрируем сервер DHCP для обновления зон в DNS:

$User  = "$env:USERDOMAIN\$env:USERNAME"
$PWord = ConvertTo-SecureString -String "P@ssw0rd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
Set-DHCPServerDnsCredential -ComputerName $env:COMPUTERNAME -Credential $Credential

Теперь выведем список авторизованных DHCP серверов в Active Directory:

Get-DhcpServerInDC

Добавляем область и диапазон выдаваемых адресов для неё:

Add-DHCPServerv4Scope -Name Office -StartRange 192.168.100.10 -EndRange 192.168.100.254 -SubnetMask 255.255.255.0 -State Active

Устанавливаем параметры DHCP-сервера:

Set-DHCPServerv4OptionValue -ComputerName $env:COMPUTERNAME -DnsServer 192.168.100.2 -DnsDomain corp.myorg.ru -Router 192.168.100.1

Посмотрим результат конфигурации:

Get-DHCPServerv4OptionValue -ComputerName $env:COMPUTERNAME | Format-List

Установим параметры для области 192.168.100.0:

Set-DHCPServerv4OptionValue -ComputerName $env:COMPUTERNAME -ScopeId 192.168.100.0 -DnsServer 192.168.100.2 -DnsDomain corp.myorg.ru -Router 192.168.100.1

На заметку: Если после конфигурации DHCP выходит сообщение, что конфигурация не настроена, то выполняем:

Set-ItemProperty -Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 -Name ConfigurationState -Value 2

Теперь можно перезагрузить сервер:

Restart-Computer -Force

На этом настройка сервера завершена, после перезагрузки у нас будет работоспособный домен Active Directory со службами DNS и DHCP.