Windows server core настройка dns

Обновлено: 06.07.2024

date

01.04.2021

directory

PowerShell, Windows Server 2016, Windows Server 2019

comments

комментария 3

В этой статье я постарался собрать в одном месте основные команды cmd и PowerShell, которые полезны при настройке и управлении Windows Server Core. Думаю, этот гайд будет полезен как новичкам, так и опытным системным администраторам, как справочник по базовым командам Server Core.

Напомним, что Server Core это особый режим установки Windows Server без большинства графических инструментов и оболочек. Управление таким сервером выполняется из командной строки или удаленно.
  • Меньшие требования к ресурсам;
  • Повышенная стабильность, безопасность, требует установки меньшего количества обновлений (за счет меньшего количества кода и используемых компонентов);
  • Идеально подходит для использования в качестве сервера для инфраструктурных ролей (контроллер домена Active Directory, DHCP сервер, Hyper-V сервер, файловый сервер и т.д.).

Server Core лицензируется как обычный физический или виртуальный экземпляр Windows Server (в отличии от Hyper-V Server, который полностью бесплатен).

Для установки Windows Server 2016/2019 в режиме Core нужно выбрать обычную установку. Если вы выберите Windows Server (Desktop Experience), будет установлен GUI версия операционной системы (в предыдущих версиях Windows Server она называлась Server with a GUI).

установка windows server core 2019

В Windows Server 2016/2019 нельзя переключиться между GUI и Core режимом без переустановки сервера.

После установки Windows Server Core перед вами появляется командная строка, где нужно задать пароль локального администратора.

задать пароль администратора в server core

При входе на Server Core открывается командная строка (cmd.exe). Чтобы вместо командной строки у вас всегда открывалась консоль PowerShell.exe, нужно внести изменения в реестр. Выполните команды:

Powershell.exe
Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' -Name Shell -Value 'PowerShell.exe'

И перезагрузите сервер:

запускать powershell вместо командной строки

Если вы случайно закрыли окно командной строки, нажмите сочетание клавиш Ctrl+Alt+Delete, запустите Task Manager -> File -> Run -> выполните cmd.exe (или PowerShell.exe ).

Настройка Windows Server Core с помощью SCONFIG

Для базовой настройки Server Core можно использовать встроенный скрипт sconfig. Просто выполните команду sconfig в консоли. Перед вами появиться меню с несколькими пунктами:

настройка windows server core с помощью утилиты sconfig

С помощью меню Server Configuration можно настроить:

  • Добавить компьютер в домен или рабочую группу;
  • Изменить имя компьютера (hostname);
  • Добавить локального администратора;
  • Разрешить/запретить удаленное управления и ответы на icmp;
  • Настроить параметры обновления через Windows Update;
  • Установить обновления Windows;
  • Включить/отключить RDP;
  • Настроить параметры сетевых адаптеров (IP адрес, шлюз, DNS сервера);
  • Настроить дату и время;
  • Изменить параметры телеметрии;
  • Выполнить logoff, перезагрузить или выключить сервер.

Все пункт в меню sconfig пронумерованы. Чтобы перейти в определенное меню наберите его номер и Enter.

В некоторых пунктах меню настройки sconfig есть вложенные пункты. Там также, чтобы перейти к определенной настройке, нужно сделать выбор цифры пункта меню.

настройка базовых параметров server core из sconfig

Не будем подробно рассматривать все пункты настройки sconfig, т.к. там все достаточно просто и очевидно. Однако в большинстве случаев администраторы предпочитают использовать для настройки новых хостов с Server Core различные PowerShell скрипты. Это намного проще и быстрее, особенно при массовых развёртываниях.

Основные команды PowerShell для настройки Server Core

Рассмотрим основные команды PowerShell, которые можно использовать для настройки Server Core.

Узнать информацию о версии Windows Server и версии PowerShell:

Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
$PSVersionTable

powershell узнать версию windows server

Для перезагрузки Server Core нужно выполнить команду PowerShell :

Чтобы выполнить выход из консоли Server Core, наберите:

Настройка параметров сети

Теперь нужно из PowerShell нужно настроить параметры сети (по умолчанию Windows настроена на получение адреса от DHCP). Выведите список сетевых подключений:

Теперь укажите индекс интерфейса сетевого адаптера (InterfaceIndex), который нужно изменить и задайте новый IP адрес:

New-NetIPaddress -InterfaceIndex 4 -IPAddress 192.168.13.100 -PrefixLength 24 -DefaultGateway 192.168.13.1
Set-DNSClientServerAddress –InterfaceIndex 4 -ServerAddresses 192.168.13.11,192.168.13. 111

задать ip адрес в windows server core с помощью powershell

Проверьте текущие настройки:

Если нужно сбросить IP адрес и вернуться к получению адреса от DHCP, выполните:

Set-DnsClientServerAddress –InterfaceIndex 4 –ResetServerAddresses
Set-NetIPInterface –InterfaceIndex 4 -Dhcp Enabled

Включить/отключить сетевой адаптер:

Disable-NetAdapter -Name “Ethernet0”
Enable-NetAdapter -Name “Ethernet 0”

Включить, отключить, проверить статус поддержки IPv6 для сетевого адаптера:

Disable-NetAdapterBinding -Name "Ethernet0" -ComponentID ms_tcpip6
Enable-NetAdapterBinding -Name "Ethernet0" -ComponentID ms_tcpip6
Get-NetAdapterBinding -ComponentID ms_tcpip6

Настройка времени/даты

Вы можете настроить дату, время, часовой пояс с помощью графической утилиты intl.cpl или с помощью PowerShell:

Set-Date -Date "09/03/2022 09:00"
Set-TimeZone "Russia Time Zone 3

Задать имя компьютера, добавить в домен, активация

Чтобы изменить имя компьютера:

Rename-Computer -NewName win-srv01 -PassThru

Rename-Computer задать имя через powershell

Добавить сервер в домен Active Directory:

Add-Computer -DomainName "corp.winitpro.ru " -Restart

Если нужно добавить дополнительных пользователей в администраторы, можно настроить групповую политику или добавить вручную:

Add-LocalGroupMember -Group "Administrators" -Member "corp\anovikov"

Для активации Windows Server нужно указать ваш ключ:

slmgr.vbs –ipk <productkey>
slmgr.vbs –ato

Или можно активировать хост на KMS сервере (например, для Windows Server 2019):

Разрешить удаленный доступ

Разрешить удаленный доступ к Server Core через RDP:

cscript C:\Windows\System32\Scregedit.wsf /ar 0

Разрешить удаленное управление:

Configure-SMRemoting.exe –Enable
Enable-NetFirewallRule -DisplayGroup “Windows Remote Management”

Сервером с Windows Server можно управлять удаленно c другого сервера (с помощью ServerManager.exe), через браузер с помощью Windows Admin Center (WAC), с любой рабочей станции с помощью инструментов администрирования RSAT, подключаться к нему по RDP, PowerShell Remoting или SSH (в современных версиях Windows есть встроенный SSH сервер).

Настройка Windows Firewall

Информация о настройке Windows Firewall есть в статье по ссылке. Здесь оставлю несколько базовых команд.

Включить Windows Defender Firewall для всех профилей:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
Изменить тип сети с Public на Private:

Get-NetConnectionProfile | Set-NetConnectionProfile -NetworkCategory Private

Полностью отключить Windows Firewall (не рекомендуется):

Get-NetFirewallProfile | Set-NetFirewallProfile -enabled false

Разрешить подключение через инструменты удаленного управления:

Enable-NetFireWallRule -DisplayName “Windows Management Instrumentation (DCOM-In)”
Enable-NetFireWallRule -DisplayGroup “Remote Event Log Management”
Enable-NetFireWallRule -DisplayGroup “Remote Service Management”
Enable-NetFireWallRule -DisplayGroup “Remote Volume Management”
Enable-NetFireWallRule -DisplayGroup “Remote Scheduled Tasks Management”
Enable-NetFireWallRule -DisplayGroup “Windows Firewall Remote Management”
Enable-NetFirewallRule -DisplayGroup "Remote Administration"

Установка обновлений в Server Core

Для управления параметрами обновлений предпочтительно использовать групповые политики Windows Update, но можно задать параметры и вручную.

Отключить автоматическое обновление:
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 1
Автоматически скачивать доступные обновления:
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate\AU -Name AUOptions -Value 3
Получить список установленных обновлений:
Get-Hotfix
Или
wmic qfe list
Для ручной установки обновлений Windows можно использовать утилиту wusa:
Wusa update_name.msu /quiet

Также для установки и управления обновлениями из командной строки удобно использовать PowerShell модуль PSWindowsUpdate.

Управление ролями, службами и процессами Windows

Для получения списка всех доступных ролей в Windows Server Core выполните команду PowerShell:

список всех ролей в windows server core Get-WindowsFeature

Получить список всех установленных ролей и компонентов в Windows Server(можно быстро понять, для чего используется сервер):

Get-WindowsFeature | Where-Object | ft Name,Installstate

Например, для установки службы DNS воспользуйтесь такой командой:

Install-WindowsFeature DNS -IncludeManagementTools

Список всех служб в Windows:

Список остановленных служб:

Restart-Service -Name spooler

Для управление процессами можно использовать стандартный диспетчер задач (taskmgr.exe) или PowerShell модуль Processes:

Get-Process cmd, proc1* | Select-Object ProcessName, StartTime, MainWindowTitle, Path, Company|ft

Часто используемые команды в Server Core

Ну и наконец, приведу список различных полезных мне команд, которые я периодически использую в Server Core.

Информация о статусе и здоровье физических дисков (используется стандартный модуль управления дисками Storage):

Get-PhysicalDisk | Sort Size | FT FriendlyName, Size, MediaType, SpindleSpeed, HealthStatus, OperationalStatus -AutoSize

информация о дисках и свободном месте в windows server core

Информация о времени последних 10 перезагрузок сервера:

Get-EventLog system | where-object | select -last 10

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

Чтобы скопировать все файлы из каталога на удаленный компьютер по сети можно использовать Copy-Item:

$session = New-PSSession -ComputerName remotsnode1
Copy-Item -Path "C:\Logs\*" -ToSession $session -Destination "C:\Logs\" -Recurse -Force

Для установки драйвера можно использовать стандартную утилиту:

Pnputil –i –a c:\distr\hpdp.inf

Также Microsoft предлагает специальный пакет Server Core App Compatibility Feature on Demand (FOD), который позволяет установить в Windows Server 2019 некоторые графические инструменты и консоли (MMC, Eventvwr, Hyper-V Manager, PerfMon, Resmon, Explorer.exe, Device Manager, Powershell ISE). Этот FOD доступен для загрузки в виде ISO при наличии активной подписки. Установка выполняется командой:

Add-WindowsCapability -Online -Name ServerCore.AppCompatibility

Установка Server Core App Compatibility Feature on Demand будет использовать дополнительно около 200 Мб оперативной памяти в Server Core.

запуск explorer.exe в windows server core с помощью Server Core App Compatibility Feature on Demand (FOD),

В этой статье я постарался собрать самые нужные команды, которые нужно постоянно держать под рукой при работе с Windows Server Core. Время от времени я буду обновлять статью и добавлять новые команды, которые покажутся мне нужными для повседневной работы.

На сервере должно быть установлено только минимально необходимое ПО, и с появлением в Windows Server 2008 варианта установки Server Core, это стало действительно так. В самом деле, на сервер Active Directory нет никакой необходимости устанавливать полный комплект ПО, который никогда использоваться не будет, например "Проводник" и "Internet Explorer". К тому же, поскольку этого ПО на сервере не будет, ненужно будет устанавливать на него обновления и лишний раз перезагружать сервер. Поэтому я задался идеей сделать максимально простую, безопасную и минималистичную инфраструктуру, рулить которой можно оснастками RSAT ( Remote Server Administration Tools ) с машины администратора.

И так, приступим и установим Windows Server 2012 R2 в режиме Server Core.

Предварительная подготовка

После установки и ввода пароля адсинистратора сервер приветствует нас окошком cmd. Настроить сервер нам поможет утилита "sconfig". Просто наберитие в окне cmd "sconfig":


В первую очередь зададим имя хоста.
Выберем пункт 2.
Затем настроим на сервере статический IP-адрес, выбрав пункт 8, и ID сетевого интерфейса.
Теперь сервер необходимо перезагрузить, выбрав пункт 13.

Я использую следующие параметры:
ServerAD - имя сервера AD;
doomgate.local - имя домена;
DG - сокращённое имя домена;
10.120.36.0 - адрес сети;
10.120.36.1 - адрес шлюза;
10.120.36.10 - адрес контроллера домена и DNS;
255.255.255.0 - маска подсети.

Установка службы Active Directory и DNS в Server Core

[DCInstall]
ReplicaOrNewDomain=Domain
NewDomain=Forest
NewDomainDNSName=doomgate.local
DomainNetbiosName=DG
InstallDNS=Yes
ConfirmGC=Yes
CreateDNSDelegation=No
DatabasePath="C:\Windows\NTDS"
LogPath="C:\Windows\NTDS"
SYSVOLPath="C:\Windows\SYSVOL"
SafeModeAdminPassword=(пароль)
RebootOnCompletion=Yes

ReplicaOrNewDomain - означает, что мы создаём новый домен;
NewDomain - создаём домен в новом лесу;
NewDomainDNSName - указываем DNS-имя домена;
DomainNetbiosName - указываем краткое имя домена;
InstallDNS - будем устанавливать службу DNS на этом контроллере домена;
ConfirmGC - этот сервер будет являться сервером глобального каталога;
CreateDNSDelegation - не делегировать этот DNS сервер;
DatabasePath - путь к БД;
LogPath - путь к логам;
SYSVOLPath - папка SYSVOL;
SafeModeAdminPassword - пароль для восстановления AD;
RebootOnCompletion - перезагрузить сервер после окончания установки.
Параметров на самом деле может быть и больше, опционально можно установить уровень функционирования домена и леса, я лишь привёл минимально необходимые параметры для установки нового домена в новом лесу.

Теперь остаётся дождаться окончания инсталляции службы AD, сервер перезагрузится автоматически.

Удалённое управление в Server Core

Важная особенность, поскольку мы собираемся управлять нашим сервером через оснастки RSAT, необходимо после инсталляции Active Directory, включить на сервере удалённое управление.

Запускаем снова "sconfig", и выбираем пункт 4, Enable remote management, можно так же включить ответ на ping, если хотите, чтобы сервер отвечал на пинги.

Пункт 7, включает удалённый рабочий стол (rdp), можно так же его включить.

Установка и конфигурирование DHCP в Server Core

Вообще говоря размещать службу DHCP на контроллере домена считается не безопасно, но в тестовой среде или при отсутствии мощностей вполне возможно.

И так, для начала необходимо установить саму роль DHCP сервера, для этого воспользуемся оснасткой "DISM".

C:\Windows\System32\> Dism /online /enable-feature /featurename:DHCPServer
После установки роли, добавим DHCP сервер в автозапуск:
C:\Windows\System32\> netsh dhcp add server ServerAD 10.120.36.10
Создадим область, в которой мы будем раздавать адреса:
C:\Windows\System32\> netsh dhcp server \\ServerAD add scope 10.120.36.0 255.255.255.0 MyNetwork
Теперь создадим в этой области диапазон адресов для раздачи. Будем выдавать адреса с 10.120.36.1 по 10.120.36.254:
C:\Windows\System32\> netsh dhcp server \\ServerAD scope 10.120.36.0 add iprange 10.120.36.1 10.120.36.254
Исключим из этого диапазона все адреса с 10.120.36.1 по 10.120.36.50, в этот диапазон можно посадить сервера с фиксированными IP, сетевые принтеры или клиентов, которым будем выдавать адреса на основе их mac-адресов:
C:\Windows\System32\> netsh dhcp server \\ServerAD scope 10.120.36.0 add excluderange 10.120.36.1 10.120.36.50
C:\Windows\System32\> netsh dhcp server \\ServerAD scope 10.120.36.0 set optionvalue 003 IPADDRESS 10.120.36.1
C:\Windows\System32\> netsh dhcp server \\ServerAD scope 10.120.36.0 set optionvalue 006 IPADDRESS 10.120.36.10
C:\Windows\System32\> netsh dhcp server \\ServerAD scope 10.120.36.0 set optionvalue 015 string doomgate.local
C:\Windows\System32\> netsh dhcp server \\ServerAD scope 10.120.36.0 set state 1

Теперь можно выставлять на клиентских машинах DHCP в настройках сетевых интерфейсов, они должны получать IP, адрес шлюза и имя домена по DHCP и можно начинать включать компьютеры в домен.

Оснастки Remote Server Administration Tools

Установив их нужно активировать необходимы компоненты, для этого идём в "Программы и компоненты" и "Включение и отключение компонентов Windows", и ставим следующие компоненты:


После перезагрузки в папке "Администрирование" у нас появились нужные нам оснастки:


Теперь лезть на сервер каждый раз нет никакой необходимости, разве, что только для установки обновлений. Всё прекрасно рулится с машины администратора.

Сегодня я хотел бы познакомить читателя с Windows Server Core 2008 R2.

Как показывают мои личные наблюдения, многие администраторы его боятся. Причина проста: в головах прочно засело Windows=GUI, а вот GUI-то в нем как раз и нет. Как следствие все воспринимают Server Core как «не такой» Windows. Он действительно не такой, но ничего страшного в нем нет. Более того, в нем есть свои плюсы и прелести. Из очевидных — экономия ресурсов. Из не очевидных — отсутствие возможности тыкать во все места дисциплинирует и заставляет разбираться в том что хочешь сделать.


Меньшая требовательность к ресурсам позволяет эффективнее распределять оные при виртуализации серверов.
Поясню:
Есть, положим, сервер (не важно физический или виртуальный). На нем Windows Server 2008R2, AD (не основной контроллер), WSUS. Чтобы это хоть как-то ворочалось минимум нужно 2GB памяти. Вместо него можно сделать две виртуалки с Server Core, на одной AD, на второй WSUS. При этом обе эти виртуалки будут жить с полугигом памяти и прекрасно себя чувствовать. При этом лишаемся мы только GUI, которым я, например, и так не пользуюсь практически, по крайней мере с консоли сервера.

Теперь расскажу с чего начинать и как делать:
Рассказывать и показывать процесс установки не вижу смысла. Там все просто и банально. Накосячить просто негде.
Первый успешный логин являет нашему взгляду вот такую радостную картину.


Первым делом запускаем sconfig.

Настраиваем сеть, вводим в домен, разрешаем RDP, в общем делаем все что нужно.

Следующий этап: Установка PowerShell. Установки ролей и компонентов делается с помощью команды DISM. С ее помощью также можно посмотреть список доступных компонентов и ролей (DISM /online /Get-Features).
DISM /online /Enable-Feature /FeatureName:NetFx2-ServerCore /FeatureName:NetFx2-ServerCore-WOW64 /FeatureName:NetFx3-ServerCore /FeatureName:NetFx3-ServerCore-WOW64 /FeatureName:MicrosoftWindowsPowerShell /FeatureName:ServerManager-PSH-Cmdlets
Эта команда поставит нам .NET2, .NET3, сам PowerShell, и наборы управляющий командлетов.
Если есть желание, можно поставить файловый менеджер, например, FAR:
PS C:\Dist>msiexec /package Far20.x64.msi
PS C:\Dist> cd Env:
PS Env:\> $cur = get-item -Path Path
PS Env:\> $cur.Value+=";C:\Program Files\Far2"
PS Env:\> Set-Item -Path Path -Value $cur.Value

Теперь у нас есть платформа. Все дальнейшие настройки и аналитику можно уже получать с помощью MMC оснасток со своего ПК или другого сервера.


Контроллер домена:
Тут все еще проще.
DISM /online /Enable-Feature /FeatureName: DNS-Server-Core-Role - ставим DNS.
dcpromo /replicaornewdomain:replica /replicadomaindnsname:domain.name /safemodeadminpassword:<AD_recovery_password> /autoconfigdns:yes
- ставим AD.
Ролью DNS и AD можно управлять оснастками со своего рабочего ПК точно так же как это обычно делается с консоли сервера. Вот, например, запущенный удаленно диспетчер сервера.

То есть весь процесс установки и настройки Server Core ничуть не сложнее, чем настройка обычного сервера. Однако информации по нему гораздо меньше и вообще он как-то не заслужено обделен вниманием.

Если по-простому, то DNS (Domain Name System) — это система или база доменных имён, которая сопоставляет названия доменов с IP-адресами компьютеров, соответствующих этим доменам.

В системах Windows выполнив эту команду в cmd

Получим ответ от сервера DNS Google


Запоминать ведь проще имена (DC01, EX01 или NS01-MSK), чем запоминать ip адреса компьютеров, а если они еще находятся в разных сетях!

Перейдем к установке и настройке DNS

В Windows Server 2016 все настраивается через так называемые роли. В этом примере нам нужна роль DNS Server.

Открываем Server Manager и нажимаем «Добавить роль»

Server Manager Windows 2016

Нажимаем «Далее» и на следующем шаге выбираем наш сервер. Затем отмечаем роль «DNS Server», соглашаемся с добавлением необходимых компонентов.

Снова «Далее» и «Установить».

После установки нужно запустить оснастку DNS. Это можно сделать разными способами:

  1. Открыть «Компоненты администрирования» и запустить DNS.
  2. Нажать «Выполнить» Win+R и там ввести dnsmgmt.msc
  3. В «Выполнить» открыть mmc и в ней добавить «Оснастку DNS»

В открывшейся оснастке нужно создать Primary Zone

Windows Server 2016 DNS Primary Zone


Далее можно создать новый файл зоны или использовать существующий, скопированный с другого DNS сервера.


Следующим шагом мастер установки предлагает выбрать тип обновления записей зоны. Первый тип «Только безопасное динамическое обновление записей» доступно только при наличии Active Directory. Про AD я напишу отдельную статью.


Далее, еще раз «Далее», проверяем все что выбрали и производим установку.

Создастся зона прямого просмотра (Forward Lookup Zones) в ней содержится информация о сопоставлении имени узла к ip адресу. Таким же образом можно создать зону обратного просмотра (Reverse Lookup Zones) она будет содержать обратную информацию, т.е. какому ip адресу сопоставлено имя узла (пк).

На клиенте и сервере прописан основной DNS суффикс.


После перезагрузки системы, произойдет попытка регистрации в DNS сервере. Выше я писал, что на клиенте Windows 10 в настройках прописан DNS.


Если все выполнено правильно, в оснастке DNS в зонах Forward и Reverse увидим сопоставления имени к ip адресу и наоборот.

DNS Zones
DNS Zones

Для проверки можно использовать команды ping cl1 и ping -a 192.168.0.3

В моей тестовой среде выключен Брандмауер, в реальной среде такого делать не рекомендуется!
Должны возвращаться правильные данные.

ping -a

Команды nslookup cl1 и nslookup -a 192.168.0.3 должны возвращать правильные данные.

Они прописываются в «Свойствах сервера DNS». Также пропишите в настройках сети «Шлюз по умолчанию» и на нем должно быть разрешающее правило для службы DNS и до серверов DNS провайдера, которые вы укажете.

Читайте также: