Время на прочтение5 мин
Количество просмотров35K
В данной статье мы продолжаем рассказывать про работу с Windows Server Core 2019. В прошлых постах мы рассказали как готовим клиентские виртуальные машины на примере нашего нового тарифа VDS Ultralight с Server Core за 99 рублей. Затем показали как работать с Windows Server 2019 Core и как установить на него GUI. Сегодня мы поговорим про управление с помощью Windows Admin Center.
Фото: ТАСС
Головной болью было, наверное, по соображениям безопасности, разделять роли серверов. Заводить несколько машин, чтобы физически разделить контроллер домена и файловый сервер.
Благо нам на помощь пришла виртуализация, и теперь изолированно друг от друга могут работать несколько служб, которые из соображений безопасности не могут работать на том же сервере. Виртуализация принесла массу удобства, развертывание виртуальных машин из одного шаблона экономит время специалистам, и физически, все в одной коробке с мощным железом.
Машин все меньше, а серверов все больше, даже у меня, для «просто посмотреть» образовалось два контроллера домена, файловый сервер, сервер под Java приложения и еще пачка веб серверов, поэтому давайте поговорим о том, как можно эффективно управлять серверами на Windows, не отрывая левой руки от кофе.
— С помощью Powershell!
Конечно да, но… нет. Продукт позиционируется как удобный инструмент управления гигантской инфраструктурой. Понятно, что это не совсем так, для таких случаев есть Powershell ISE и скрипты, поэтому хотелось бы рассмотреть действительно полезные юзкейсы. Если у вас есть свой опыт, которым вы вы хотели поделиться, мы можем добавить его в эту статью.
TL;DR
Windows Admin Center лучше подходит для управления стоковыми компонентами. На текущий момент только RSAT может управлять установленными ролями.
Используя WAC, можно улучшить безопасность вашей инфраструктуры, если будете использовать его как шлюз.
Сводная таблица того, он умеет и не умеет:
Управление системой
Управление ролями
Превью — установка бета версий компонентов для WAC, не входит в состав сборки. Перечислять все не нужно, потому что буквально все компоненты управляются только с помощью RSAT.
Нюансы
Powershell в Windows Admin Center не имеет своей среды сценариев аналогичной Powershell ISE.
Windows Admin Center не поддерживает Powershell ниже 5.0, на старых машинах обязательно нужно ставить новый Powershell, если хотите использовать его.
Главным минусом Windows Admin Center в микро инстансах является потребление оперативной памяти сервера. Он создает четыре сессии по 50-60 мегабайт каждая, и каждая эта сессия остается даже после закрытия Windows Admin Center.
Та же самая проблема и с Powershell через Enter-PSSession, он так же создает новую сессию, и если просто закрыть окно терминала, сессия весом и 70 мегабайт так и останется на удалённом сервере, если её не закрыть её перед выходом с помощью Exit-PSSession или Remove-Pssession.
При использовании Windows Admin Center с этим придется мириться, он отнимет около 170 мегабайт ОЗУ, RSAT таким не страдает.
(См. wsmprovhost.exe)
Упрощаем работу
Максимальное удобство управления достигается если ваша рабочая станция, на которой установлен WAC находится в домене. Он берет учетные данные пользователя, который зашел в систему, подключение к серверам осуществляется по одному щелчку мыши.
Импортировать список серверов можно с помощью txt файла, перечислив имена серверов переносом строки, как и в RSAT.
Что тоже радует, ранее, чтобы интегрировать в AD виртуальную машину на Server Core, приходилось делать это через sconfig, а это значит нужен прямой доступ к его экрану. В случае с хостингами приходилось делать все это через VNC. Теперь, при переходе на главную страницу можно нажать «Изменить идентификатор компьютера» и ввести в домен.
Кстати, чтобы ввести в домен Windows Server 2019, больше не требуется делать Sysprep, потому что Sysprep тоже нужно было завершать через VNC.
Чтобы изменить сетевые настройки теперь нужно сделать два клика. Подключаешься к серверу и меняешь.
Это выходит так же быстро, как и через WinRM, только одной рукой.
Повышаем безопасность
На текущий момент есть четыре типа развертывания. Локальный, в качестве шлюза, установка на один из продакшн серверов и в составе кластера.
*Картинка с сайта майкрософт
Установка в качестве шлюза, на отдельный сервер, наиболее безопасный и рекомендуемый вариант. Это аналог схемы с VPN, когда доступ к управлению имеется только с определенного IP адреса или участка сети.
Согласитесь, гораздо удобнее держать на одной вкладке видосы и мемасы, а на другой Windows Admin Center, нежели целиком терять подключение к ютубу из-за входа в защищенную сеть.
Как же обезопасить все свои N серверов? С помощью следующего скрипта:
## Список серверов через запятую ##
$servers = Get-Content -Path .\Servers.txt
## Список правил через перенос строки ##
$rules = Get-Content -Path .\Rules.txt
## IP адрес нашего гейта с установленным WAC ##
$gate = "1.1.1.1"
$MySecureCreds = Get-Credential
foreach ($server in $servers.Split("`n")) {
foreach ($line in $rules.Split("`n")) {
Invoke-Command -ComputerName $server -ScriptBlock {
Set-NetFirewallRule -Name $Using:line -RemoteAddress $Using:gate
} -Credential $MySecureCreds
}
}
# список правил, RULES.txt#
RemoteDesktop-UserMode-In-TCP
RemoteDesktop-UserMode-In-UDP
WINRM-HTTP-In-TCP
WINRM-HTTP-In-TCP-PUBLIC
# список ваших серверов, SERVERS.txt#
1.1.1.1, 1.1.1.2, 1.1.1.3
Этот скрипт изменит стандартные правила брандмауэра таким образом, что вы сможете использовать RDP и WinRM только с определенного IP адреса, понадобится для организации безопасного доступа к инфраструктуре.
Powershell в Windows Admin Center не имеет своей среды сценариев аналогичной Powershell ISE, можно только вызывать готовые скрипты.
Кстати, вот так выглядит RDP на Windows Server Core.
Выводы
На текущий момент Windows Admin Center не способен заменить RSAT, однако в нём уже присутствуют функции, которых нет у RSAT. Добавляются старые оснастки, которые не так удобны для управления через браузер.
Странным является приоритет разработки, наиболее активно добавляются функции интегрированные с Azure, хостингом от Майкрософт, вместо реально полезных функций.
К сожалению, пока что, управлять всеми функциями Windows Server с удобствами можно только подключившись к нему по RDP.
Не смотря на все минусы, у Windows Admin Center есть свой SDK, с помощью которого можно писать свои собственные модули и управлять своим собственным ПО через него, что однажды сделает его лучше RSAT.
В этой статье я постарался собрать в одном месте основные команды cmd и PowerShell, которые полезны при настройке и управлении Windows Server Core. Думаю, этот гайд будет полезен как новичкам, так и опытным системным администраторам, как справочник по базовым командам Server Core.
Содержание:
- Настройка Windows Server Core с помощью SCONFIG
- Основные команды PowerShell для настройки Server Core
- Установка обновлений в Server Core
- Часто используемые команды в Server Core
Напомним, что Server Core это особый режим установки Windows Server без большинства графических инструментов и оболочек. Управление таким сервером выполняется из командной строки или удаленно.
Преимущества Windows Serve Core:
- Меньшие требования к ресурсам;
- Повышенная стабильность, безопасность, требует установки меньшего количества обновлений (за счет меньшего количества кода и используемых компонентов);
- Идеально подходит для использования в качестве сервера для инфраструктурных ролей (контроллер домена 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 перед вами появляется командная строка, где нужно задать пароль локального администратора.
При входе на Server Core открывается командная строка (cmd.exe). Чтобы вместо командной строки у вас всегда открывалась консоль PowerShell.exe, нужно внести изменения в реестр. Выполните команды:
Powershell.exe
Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' -Name Shell -Value 'PowerShell.exe'
И перезагрузите сервер:
Restart-Computer -Force
Если вы случайно закрыли окно командной строки, нажмите сочетание клавиш Ctrl+Alt+Delete, запустите Task Manager -> File -> Run -> выполните
cmd.exe
(или
PowerShell.exe
).
Настройка Windows Server Core с помощью SCONFIG
Для базовой настройки Server Core можно использовать встроенный скрипт sconfig. Просто выполните команду sconfig в консоли. Перед вами появиться меню с несколькими пунктами:
С помощью меню Server Configuration можно настроить:
- Добавить компьютер в домен или рабочую группу;
- Изменить имя компьютера (hostname);
- Добавить локального администратора;
- Разрешить/запретить удаленное управления и ответы на icmp;
- Настроить параметры обновления через Windows Update;
- Установить обновления Windows;
- Включить/отключить RDP;
- Настроить параметры сетевых адаптеров (IP адрес, шлюз, DNS сервера);
- Настроить дату и время;
- Изменить параметры телеметрии;
- Выполнить logoff, перезагрузить или выключить сервер.
Все пункт в меню
sconfig
пронумерованы. Чтобы перейти в определенное меню наберите его номер и Enter.
В некоторых пунктах меню настройки sconfig есть вложенные пункты. Там также, чтобы перейти к определенной настройке, нужно сделать выбор цифры пункта меню.
Не будем подробно рассматривать все пункты настройки sconfig, т.к. там все достаточно просто и очевидно. Однако в большинстве случаев администраторы предпочитают использовать для настройки новых хостов с Server Core различные PowerShell скрипты. Это намного проще и быстрее, особенно при массовых развёртываниях.
Основные команды PowerShell для настройки Server Core
Рассмотрим основные команды PowerShell, которые можно использовать для настройки Server Core.
Узнать информацию о версии Windows Server и версии PowerShell:
Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
$PSVersionTable
Для перезагрузки Server Core нужно выполнить команду PowerShell :
Restart-Computer
Чтобы выполнить выход из консоли Server Core, наберите:
logoff
Настройка параметров сети
Теперь нужно из PowerShell нужно настроить параметры сети (по умолчанию Windows настроена на получение адреса от DHCP). Выведите список сетевых подключений:
Get-NetIPConfiguration
Теперь укажите индекс интерфейса сетевого адаптера (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
Проверьте текущие настройки:
Get-NetIPConfiguration
Если нужно сбросить 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
Настроить winhttp прокси сервер для PowerShell и системных подключений:
netsh Winhttp set proxy <servername>:<port number>
Настройка времени/даты
Вы можете настроить дату, время, часовой пояс с помощью графической утилиты
intl.cpl
или с помощью PowerShell:
Set-Date -Date "09/03/2022 09:00"
Set-TimeZone "Russia Time Zone 3
Задать имя компьютера, добавить в домен, активация
Чтобы изменить имя компьютера:
Rename-Computer -NewName win-srv01 -PassThru
Добавить сервер в домен 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):
slmgr /ipk N69G4-B89J2-4G8F4-WWYCC-J464C
slmgr /skms kms-server.winitpro.ru:1688
slmgr /ato
Разрешить удаленный доступ
Разрешить удаленный доступ к Server Core через RDP:
cscript C:\Windows\System32\Scregedit.wsf /ar 0
Разрешить удаленное управление:
Configure-SMRemoting.exe –Enable
Enable-NetFirewallRule -DisplayGroup “Windows Remote Management”
Текущие настройки:
Configure-SMRemoting.exe -Get
Разрешить Win-Rm PowerShell Remoting:
Enable-PSRemoting –force
Сервером с 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:
Get-WindowsFeature
Получить список всех установленных ролей и компонентов в Windows Server(можно быстро понять, для чего используется сервер):
Get-WindowsFeature | Where-Object {$_. installstate -eq "installed"} | ft Name,Installstate
Например, для установки службы DNS воспользуйтесь такой командой:
Install-WindowsFeature DNS -IncludeManagementTools
Список всех служб в Windows:
Get-Service
Список остановленных служб:
Get-Service | Where-Object {$_.status -eq “stopped”}
Перезапустить службу:
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
Информация о свободном месте на диске:
Get-WmiObject -Class Win32_LogicalDisk |
Select-Object -Property DeviceID, VolumeName, @{Label='FreeSpace (Gb)'; expression={($_.FreeSpace/1GB).ToString('F2')}},
@{Label='Total (Gb)'; expression={($_.Size/1GB).ToString('F2')}},
@{label='FreePercent'; expression={[Math]::Round(($_.freespace / $_.size) * 100, 2)}}|ft
Информация о времени последних 10 перезагрузок сервера:
Get-EventLog system | where-object {$_.eventid -eq 6006} | select -last 10
Список установленных программ:
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
Скачать и распаковать zip файл с внешнего сайта:
Invoke-WebRequest https://contoso/test.zip -outfile test.zip
Expand-Archive -path '.\test.zip' -DestinationPath C:\Users\Administrator\Documents\
Чтобы скопировать все файлы из каталога на удаленный компьютер по сети можно использовать 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~~~~0.0.1.0
Установка Server Core App Compatibility Feature on Demand будет использовать дополнительно около 200 Мб оперативной памяти в Server Core.
В этой статье я постарался собрать самые нужные команды, которые нужно постоянно держать под рукой при работе с Windows Server Core. Время от времени я буду обновлять статью и добавлять новые команды, которые покажутся мне нужными для повседневной работы.
Windows Server Core 2019 — это вариант операционной системы Windows Server 2019, разработанный для серверов с минимальной графической оболочкой. Он предоставляет базовую функциональность серверной ОС с уменьшенным объёмом графического интерфейса пользователя, что позволяет сократить требования к ресурсам, уменьшить поверхность для атак и упростить управление и обслуживание.
Windows Server Core 2019 идеально подходит для инфраструктур, где важно минимизировать использование ресурсов и повысить безопасность, особенно в средах, где серверы управляются централизованно и удаленно.
Основным средством управления сервером в Windows Server Core является командная строка. Но зачастую для системного администрирования и автоматизации используется инструмент, который предлагает значительно более широкий функционал и гибкость за счет использования .NET объектов и сложных сценариев. Это — PowerShell.
Управление через PowerShell
Для запуска данной командной оболочки введите:
powershell
Например, следующая команда возвращает все IP-адреса на всех интерфейсах виртуального сервера:
Get-NetIPAddress
А следующая команда используется в PowerShell для установки роли Active Directory Domain Services
. Она добавляет необходимые компоненты и службы, чтобы сервер мог функционировать как контроллер домена в среде Active Directory:
Install-WindowsFeature -Name AD-Domain-Services
Чтобы проверить текущее состояние брандмауэра для всех профилей, используйте команду:
Get-NetFirewallProfile
В свою очередь следующая команда включает брандмауэр Windows для всех указанных профилей сети (Domain, Public, Private). Это означает, что брандмауэр будет активен и будет фильтровать входящий и исходящий трафик в зависимости от настроенных правил для каждого профиля:
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
При помощи PowerShell можно установить текущий часовой пояс в настройках системы:
Set-TimeZone "Russia Time Zone 3
Также PowerShell можно использовать для изменения имени компьютера. Например, следующая команда назначает хосту новое имя windows-server
, указывает, что команда должна вернуть объект, представляющий переименованный компьютер, после чего перезагружает сервер:
Rename-Computer -NewName windows-server -PassThru -Restart
При подключении к виртуальной машине на Windows Server Core по умолчанию открывается командная строка, то есть утилита cmd
. При этом операционная система предоставляет администратору возможность запускать вместо этого командную оболочку PowerShell. Чтобы это осуществить, необходимо внести некоторые изменения в системный реестр Windows.
Для установки PowerShell в качестве интерфейса по умолчанию выполните следующую команду:
Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' -Name Shell -Value 'PowerShell.exe'
Затем перезагрузите систему:
Restart-Computer -Force
Основные настройки через sconfig
sconfig
— это консольный инструмент для базовой настройки сервера. Его можно запустить из командной строки командой:
sconfig
Интерфейс sconfig
представляет собой меню, состоящее из некоторого количества пунктов.
Данное меню предоставляет возможность:
- изменить принадлежность сервера к домену или рабочей группе;
- изменить имя хоста;
- добавить учётную запись локального администратора;
- сконфигурировать удалённое управление сервером;
- настроить параметры автоматического обновления операционной системы;
- проверить наличие и установить обновления операционной системы;
- включить и отключить удалённый рабочий стол;
- сконфигурировать сетевые настройки, такие как IP-адрес VPS, шлюза, DNS-сервера и т.д.;
- настроить на сервере дату и время;
- настроить уровень телеметрии, отправляемой в Microsoft;
- ввести лицензионный ключ и активировать копию операционной системы;
- выйти из текущей сессии пользователя;
- перезагрузить виртуальный сервер;
- выключить виртуальный сервер;
- покинуть интерфейс
sconfig
при помощи последнего пункта меню.
Для перехода между пунктами меню используйте соответствующее число, указанное в каждом пункте в качестве его номера.
Данный функционал помогает быстро и эффективно настраивать и управлять сервером в режиме Core без необходимости использования графического интерфейса.
В целом, работа в Windows Server Core может требовать некоторых навыков командной строки и PowerShell. При этом данный режим значительно повышает безопасность и производительность системы за счёт минимизации используемых компонентов.
Skip to content
How to Manage Windows Server Core
Table of Contents
- Windows Server Core Benefits
- Windows Server Core Management
- Managing Server Core with Remote PowerShell
- Sconfig
- Managing Server Core with Server Manager
- Managing Server Core with Remote Server Administration Tools (RSAT)
- Managing Server Core with Windows Admin Center
- Windows Server Core Install Considerations
The trend for both on-premises housed servers, as well as those servers in the public cloud, is leaner, is better and automation is king. This is driving servers that are “headless” or GUI-less and using configuration management tools and other automation tools to interact with and configure these server resources.
Since Windows Server 2008, Microsoft has had the Server Core version of the Windows Server operating system that could be installed rather than the full GUI enabled traditional Windows Server environment. Server Core has many advantages from a security and footprint standpoint that make it a great choice for “cattle” type servers that are part of today’s immutable infrastructure.
Protect Your Data with BDRSuite
In this post, we will take a look at:
- Benefits of Windows Server Core
- How to manage Windows Server Core
- Install considerations for using Windows Server 2019
Windows Server Core Benefits
The “pets vs cattle” debate has been won by the “cattle” and immutable infrastructure is the way of the future. For agile, fast-paced infrastructure needs both on-premises and in the cloud, servers treated as “pets” that are cared for, updated, massaged to continue working, are no longer viable.
Immutable infrastructure dictates that a server will only exist in its current form. If there is a new software update or component required, a new server will be built to take its place. This allows for a more consistent and reliable approach to infrastructure. It leads to a more predictable and stable environment with fewer issues coming from the unknowns and artifacts left over from a previous software installation on the same server.
Since Windows Server Core does not run the classic GUI frontend for Windows Server, it is a much smaller footprint and contains much less complexity than the GUI-enabled Windows Server counterparts. This lends itself very well to automation and scalability when thinking about rolling out Windows Server deployments in mass. Mass automation is only possible by having a standardized configuration. This is how public cloud infrastructure is possible and so powerful.
Server Core lends itself to this type of operational model due to its smaller footprint including reduced hard drive space, memory consumption, and increased security posture. In fact, comparing a full installation of Windows Server with the GUI installation to a Server Core installation, organizations will see roughly a 50% reduction in space requirements.
Windows Server Core installation is actually the default installation type when performing a new Windows Server 2019 installation. As you notice, if you simply “click” through the installation of Windows Server, Windows Server 2019 Standard operating system (non-GUI) is selected as default. The GUI-enabled variants are highlighted in the Windows Setup screen below.
Note the “Desktop Experience” for both Standard and Datacenter are not the defaults
Once organizations get on board with Windows Server Core, it has many tremendous benefits.
However, its slow adoption can be attributed to factors including the lack of comfort from an administrative standpoint in managing Windows Server Core installations. This can easily be overcome by administrators understanding and getting used to the available Server Core management tools.
Windows Server Core Management
Becoming accustomed to the management with Windows Server Core is key to successfully utilizing this powerful variant of Windows for immutable infrastructure, scripting, automation, etc. This has been the major deterrent among administrators who are used to managing Windows using the traditional Windows Server GUI. There are many tools and utilities that can be used to successfully manage and maintain Windows Server Core.
Let’s take a look at the following tools:
- Remote PowerShell
- Sconfig
- Server Manager
- Remote Server Administration Tools (RSAT)
- Windows Admin Center
Let’s briefly look at the capabilities of each management tool and how it can be utilized.
Managing Server Core with Remote PowerShell
PowerShell is the framework for automating Microsoft Windows Server. Basically, anything you can do in the Windows GUI, you can do with Windows PowerShell. It allows effectively automating Windows Server functions so tasks and provisioning can be performed at scale when dozens or even hundreds of servers need to be configured or provisioned.
With Windows Server 2019, upon first boot, you will be prompted to change your password of the local Administrator account. Unlike previous Windows Server Core releases, the default Sconfig application does not run (more on this utility later).
Using the Get-NetIPConfiguration cmdlet to get the current IP address information.
Using PowerShell to interact with a Windows Server 2019 Core installation
Just a quick example of having no GUI to work with and effectively renaming your Windows Server 2019 Core server with the Rename-Computer cmdlet.
The sky is the limit with PowerShell and using it for automating any of the configuration and deployment processes with Windows Server Core.
Renaming a Windows Server Core server with PowerShell
Sconfig
The Sconfig utility is the legacy utility for managing Windows Server Core installations since the very beginning with Windows Server 2008. Sconfig is still present in Windows Server 2019 Core installations, however, it is no longer launched by default which may indicate Microsoft’s thinking on the future of the utility. It is still viable as a tool for use for now.
To launch the Sconfig utility, simply type “sconfig” from the command line or PowerShell.
The Sconfig utility provides most of the common configuration needed for Server Core installations all in one place
Managing Server Core with Server Manager
Like the Sconfig utility, Server Manager is more of a legacy utility for managing servers now with the introduction of the Windows Admin Center. However, it is still a very viable solution for managing Windows Server Core installations. Simply add the Core Server via the Server Manager. With Server Manager, you can manage many aspects of the Windows Server Core installation, including installation and removal of Roles & Features. To get to the Server Manager utility, you can type servermanager.exe from a run or cmd window.
Using Server Manager to manage a Windows Server 2019 Core installation
Managing Server Core with Remote Server Administration Tools (RSAT)
The Remote Server Administration Tools or RSAT allows installing the Windows Server management tools on a client workstation that can then be used to manage both local and remote servers. RSAT is not a provisioning utility, but rather is the collection of server management consoles including Server Manager that you are used to when logging into a GUI enabled server. The RSAT suite of consoles is readily available for download from Microsoft, depending on the version of Window 10 you are running, etc.
Managing Server Core with Windows Admin Center
Windows Admin Center is the big news among managing Windows Server operating systems recently. Microsoft has engineered the new Windows Admin Center as the way forward for managing its Windows Server OS’es including Server Core.
Windows Admin Center is a web-based modern Windows Server management platform that is extensible and able to manage not only Windows Server and Server Core, but also Windows HCI solutions like Storage Spaces Direct.
The Windows Admin Center or WAC provides everything at your “fingertips” for management and administration with the ability to perform many of the common types of administration tasks right from the WAC console. You can also interact with PowerShell right from within WAC.
Due to its web interface interaction, WAC can be pulled up remotely via the Gateway Mode which is the default installation on Windows Server operating systems.
Managing a Windows Server 2019 Core installation with Windows Admin Center
Windows Server Core Install Considerations
In Windows Server 2019, the installation of Server Core needs to be determined ahead of time and administrators must make sure of either a GUI or Server Core installation. Starting with Windows Server 2016 and higher, you can no longer change between Server Core and the Desktop version of Windows Server, so there is much more finality in making that decision during the installation phase. This is certainly a consideration for installing Windows Server Core.
Additionally, becoming familiar with the management tools ahead of time is a great way for organizations to successfully utilize Windows Server core installations both on-premises and in the public cloud.
Also, can Server Core be used for anything? Not necessarily. The list of supporting roles for Server Core contains the following:
- Active Directory Certificate Services
- Active Directory Domain Services
- Active Directory Federation Services
- Active Directory Lightweight Directory Services
- Active Directory Rights Management Services
- Device Health Attestation
- DHCP Server
- DNS Server
- File Services
- Host Guardian Service
- Hyper-V
- Print and Document Services
- Remote Access
- Volume Activation Services
- Web Server (IIS)
- Windows Server Update Services
As an example, the following roles and role services are not in Windows Server Core:
- Fax
- MultiPointServerRole
- NPAS
- WDS
Role Services not in Server Core
- Print-Scan-Server
- Print-Internet
- RDS-Gateway
- RDS-RD-Server
- RDS-Web-Access
- Web-Mgmt-Console
- Web-Lgcy-Mgmt-Console
- WDS-Deployment
- WDS-Transport (before Windows Server version 1803)
Determining if the service is available and supported for use with Server Core may determine whether it is an option for a certain use case.
Concluding Thoughts
Windows Server Core is a powerful, lightweight, and capable version of Windows that is well-suited both on-premises and in the cloud.
It allows more easily implementing automated solutions at scale and achieving the goal of immutable infrastructure. Managing and maintaining Server Core installations requires familiarity with the tools used to do so.
As shown in the post, there are many utilities and tools that can be utilized to successfully manage the “headless” Server Core installation of Windows Server. It is much more important with the latest Windows Server versions to make the correct decision on Server Core vs. Desktop edition as this can no longer be changed. Additionally, not every role is included or supported in Server Core installations.
Related Posts
Beginners Guide for Microsoft Hyper-V: How to Install Microsoft Hyper-V in Windows Server Core – Part 4
How to manage Hyper-V Server Core with Sconfig
How to Install and Configure Hyper-V Core 2019
Follow our Twitter and Facebook feeds for new releases, updates, insightful posts and more.
Try BDRSuite for Free!
Schedule a live demo with one of our product experts
Start your full-featured 30-day free trial
Explore detailed pricing, editions & features
Устанавливая Server Core — сокращенную версию операционной системы Windows Server 2008, более компактную и менее уязвимую для атак, нельзя не заметить возвращения хорошо всем известной командной строки.
Устанавливая Server Core — сокращенную версию операционной системы Windows Server 2008, более компактную и менее уязвимую для атак, нельзя не заметить возвращения хорошо всем известной командной строки. Я имею в виду не оболочку PowerShell (доступную в Server 2008 R2), а старую cmd.exe. Но, смахивая пыль с руководства по DOS и воскрешая в памяти способы работы с командной строкой, необходимо позаботиться еще о нескольких важных вещах.
Во-первых, необходимо настроить компьютер Server Core: подключить его к домену и, может быть, изменить имена компьютеров, конфигурацию IP-адресов, настройки брандмауэра и Windows Update. Во-вторых, следует активизировать роли и компоненты, которые предстоит запускать с Server Core. Обратите внимание, что в состав Server Core не входит диспетчер сервера, поэтому придется использовать инструменты командной строки OCList и OCSetup. Наконец, нужно будет управлять компьютером Server Core.
Среди пяти представленных в статье методов управления Server Core — один локальный и четыре дистанционных. Лишь в одном из методов используется графическая консоль, поэтому приготовьтесь вернуться к командной строке.
1. Локальная командная строка
Самый простой способ управлять Server Core — из командной строки (cmd.exe). Администраторы, предпочитающие настраивать Server Core с помощью инструментов с графическим интерфейсом, могут загрузить программу Server Core Configurator из Web-узла www.codeplex.com/CoreConfig. Некоторые графические инструменты есть и в Server Core: Notepad, Taskmgr (диспетчер задач), Regedit (редактор реестра), timedate.cpl (настройка времени и даты) и intl.cpl (языки и региональные стандарты).
Дополнительные сведения о настройке Server Core, в том числе командах настройки, приведены в руководстве «Server Core Installation Option of Windows Server 2008 Step-By-Step Guide» компании Microsoft. Информацию об отдельных командах можно найти на справочной странице командной строки Microsoft TechNet. Наконец, видеоуроки об управлении Server Core через службы терминалов, RemoteApp, Windows Remote Shell и оснастки MMC перечислены во врезке «Видеоуроки по Server Core на ittv.net».
2. Службы терминалов
При использовании служб терминалов для управления Server Core фактически выполняется удаленное подключение с административными задачами, поэтому необходимо внести изменения в реестр, включив режим Remote Desktop for Administration. Чтобы сделать это на компьютере Server Core, введите в командной строке
Cscript c:windowssystem32scregedit.wsf/ar 0
После выполнения команды должно быть получено подтверждение, что реестр обновлен.
Если включен брандмауэр, необходимо открыть порт RDP и разрешить подключение. Порт RDP открывается командой
netsh firewall add portopening TCP 3389 RDP
После того как компьютер Server Core настроен, откройте RDP-соединение на другом компьютере. Быстрый способ это сделать — применить команду
mstsc.exe
в панели мгновенного поиска меню Start. Затем нужно ввести IP-адрес (или имя сервера, если настроена служба DNS) и учетные данные для регистрации. Откроется командная строка на удаленном рабочем столе с голубым фоном.
Преимущество подключения такого типа перед соединением RemoteApp (рассматривается ниже) заключается в том, что можно запускать другие приложения вне командной строки на удаленном рабочем столе. Завершив работу, введите команду
logoff
чтобы закрыть соединение.
3. Службы терминалов с RemoteApp
Использование RDP для подключения к целой системе может показаться избыточным, особенно если нужна лишь командная строка. Другой способ — задействовать новый компонент служб терминалов Server 2008, называемый RemoteApp. С его помощью можно организовать RDP-соединение, которое открывает только командную строку, но не весь рабочий стол. Прежде чем начать, следуйте приведенным ниже инструкциям, чтобы активизировать соединения служб терминалов.
Чтобы создать rdp-файл RemoteApp, нужно установить роль Terminal Services на сервере Server 2008, отличном от Server Core. Эту задачу можно выполнить с помощью диспетчера серверов.
После того как роль Terminal Services будет установлена, следует выбрать пункт TS RemoteApp Manager из раздела Administrative Tools, Terminal Services в меню Start. Откроется консоль RemoteApp Manager.
Затем выберите вариант подключения к другому компьютеру и укажите компьютер Server Core. В крайней справа области Actions нажмите кнопку Add RemoteApp Programs и найдите приложение cmd.exe (обычно оно находится в каталоге c$windowssystem32cmd.exe). Из списка Allow выберите Remote cmd.exe. Затем нажмите кнопку Create RDP package в области Actions.
После того как пакет будет создан, можно дважды щелкнуть на нем мышью, чтобы открыть только командную строку в сеансе служб терминалов. Кроме того, можно отправить файл cmd.rdp другим пользователям, нуждающимся в доступе к компьютеру Server Core в командной строке RemoteApp.
4. Оболочка Windows Remote Shell
Windows Remote Management (WinRM) — реализация протокола WS-Management (удобный для работы через брандмауэр протокол на основе SOAP), обеспечивающая взаимодействие между операционной системой и оборудованием различных поставщиков. Кроме того, с помощью WinRM можно подключиться к компьютеру Server Core и работать в командной строке, не создавая соединения служб терминалов. Одно из преимуществ WinRM заключается в использовании HTTP-порта 80 (или HTTPS-порта 443) для подключения. Обычно эти порты в брандмауэрах уже открыты, и организовать соединение просто. Идея метода заключается в том, чтобы создать слушателя WinRM на одной стороне (компьютер Server Core), а затем использовать инструмент WinRS для подключения к компьютеру.
Прежде чем начать, необходимо ввести компьютер Server Core в состав домена и зарегистрироваться в домене, по крайней мере один раз, с правами администратора компьютера Server Core. Обратите внимание, что для организации соединения необходимо использовать Server 2008, Windows 7, Windows Vista или Windows Server 2003 R2.
Перейдите к командной строке на компьютере Server Core, которым предстоит управлять, и введите
WinRM quickconfig
Затем в компьютере, с которого будет выполняться управление, введите нужную команду следующим образом
winrs -r:
Можно запустить любую команду (например, dir, ipconfig), но лучше всего ввести команду cmd.exe, которая полностью связывает командную строку администратора с компьютером Server Core. Затем все вводимые команды будут выполняться на компьютере Server Core, и не нужно повторно вводить команду winrs целиком.
5. Оснастки консоли MMC
Консоль управления MMC обеспечивает графический способ администрирования Server Core. Но прежде чем можно будет воспользоваться обычными консолями, необходимо выполнить некоторые действия из командной строки. Во-первых, следует настроить брандмауэр на компьютере Server Core, чтобы разрешить подключение оснасток MMC.
В командной строке введите
netsh advfirewall firewall set rule group=»remote administration» new enable=yes
Чтобы включить определенные оснастки, введите команду
netsh advfirewall firewall set rule group=»» new enable=yes
Предпочтительно разрешить все оснастки. Если же активизировать лишь необходимые оснастки, нужно знать имена групп правил, соответствующих оснасткам. Информация представлена в таблице. Чтобы использовать оснастки MMC для управления компьютером Server Core, необходимы административные права на этом компьютере.
Нужно учитывать, является ли управляемый компьютер Server Core членом домена. Если компьютер входит в состав домена, просто откройте консоль MMC, щелкните правой кнопкой мыши на дереве в левой панели, выбрав из контекстного меню Connect to another computer, и введите имя компьютера Server Core.
Если компьютер Server Core, которым нужно управлять, не принадлежит домену, необходимо воспользоваться административными учетными данными, чтобы создать соединение с компьютером Server Core из клиентского компьютера. Откройте командную строку на клиентском компьютере и введите
cmdkey/add:/user: /pass:
Затем можно управлять компьютером Server Core как любым другим компьютером в домене.
Разнообразные варианты управления
Освоив несколько подходов, администраторы могут применить знание командной строки, чтобы полностью реализовать преимущества Server Core. В Server 2008 R2 можно будет запускать и PowerShell, что, несомненно, расширит возможности управления Server Core как локально, так и дистанционно.
Дж. Питер Браззис (jpb@cliptraining.com) — инструктор, консультант и технический писатель в компании ClipTraining.com. Имеет сертификаты MCSE 2003/2000/NT, MCT и MCITP Enterprise Messaging