В этой статье я постарался собрать в одном месте основные команды, которые будут полезны для настройки и управления Windows Server Core. Думаю, этот гайд будет полезен как новичкам, так и опытным системным администраторам, как справочник по базовым командам Server Core.
Преимущества Windows Server Core:
- Меньшие требования к ресурсам (после установки занимает около 9 Гб места на диске);
- Повышенная стабильность, безопасность, требует установки меньшего количества обновлений (за счет меньшего количества кода и используемых компонентов);
- Идеально подходит для использования в качестве сервера для инфраструктурных ролей (контроллер домена Active Directory, DHCP сервер, DNS, Hyper-V сервер, файловый сервер, веб сервер IIS и т.д.).
Server Core требует отдельной лицензии как обычный физический или виртуальный экземпляр Windows Server (в отличии от Hyper-V Server, который полностью бесплатен).
Для установки Windows Server 2025/2022/2019/2016 в режиме Core нужно выбрать обычную установку. Если вы выберите Windows Server (Desktop Experience), будет установлен GUI версия операционной системы (в предыдущих версиях Windows Server она называлась Server with a GUI).
После установки Windows Server Core перед вами появляется командная строка, где нужно задать пароль локального администратора.
Настройка Windows Server Core с помощью SCONFIG
При входе на консоль хоста с Windows Server Core автоматически запускается встроенный скрипт sconfig (Server Configuration tool). Если нет, можете запустить его вручную, выполнив команду sconfig в консоли.
Set-SConfig -AutoLaunch $false
Утилита sconfig позволяет выполнить базовую настройку сервера из псевдографического текстового меню. Меню содержит следующие пункты:
- 1: Domain/workgroup – изменить имя рабочей группы/добавить хост в домен
- 2: Computer name – изменить имя компьютера (hostname)
- 3: Add local administrators — добавить учетные записи локальных администраторов
- 4: Remote management — разрешить/запретить удаленное управление и ответы на icmp ping в файерволе
- 5: Update settings — настроить параметры обновления через Windows Update
- 6: Install updates – установка обновлений
- 7: Remote Desktop — Включить/отключить RDP
- 8: Network settings — настроить параметры сетевых адаптеров (IP адрес, шлюз, DNS сервера).
- 9: Date and time — настроить дату, время, часовой пояс
- 10: Diagnostic data settings – настройки телеметрии
- 11: Windows activation – активация Windows
- 12: Log off user — завершить сеанс пользователя
- 13: Restart server
- 14: Shutdown server
- 15: Exit to command line (PowerShell)
Все пункты в меню
sconfig
пронумерованы. Чтобы перейти в определенное меню наберите его номер и Enter. В некоторых пунктах меню настройки sconfig есть вложенные пункты. Там также, чтобы перейти к определенной настройке, нужно сделать выбор цифры пункта меню.
Не будем подробно рассматривать все пункты настройки sconfig, т.к. там все достаточно просто и очевидно. Однако в большинстве случаев администраторы предпочитают использовать для настройки новых хостов с Server Core различные PowerShell команды (или скрипты). Это намного проще и быстрее, особенно при массовых развёртываниях.
В Windows Server 2019/2016 при входе на 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
cmd.exe
(или
PowerShell.exe
).Основные команды PowerShell для настройки Server Core
Рассмотрим основные команды PowerShell, которые можно использовать для настройки Server Core.
Вывести системную информацию о сервере можно с помощью командлета:
Get-ComputerInfo (аналог systeminfo.exe)
Узнать информацию о версии Windows Server и версии PowerShell:
Get-ComputerInfo | select WindowsProductName, WindowsVersion, OsHardwareAbstractionLayer
$PSVersionTable
Для перезагрузки Server Core нужно выполнить команду PowerShell :
Restart-Computer
Чтобы выполнить выход из консоли Server Core, наберите:
logoff
Если вы установили Server Core в виртуальную машину, нужно установить специальные утилиты и драйверы для улучшенного взаимодействия гостевой Windows с гипервизоров:
- VMware Tools для виртуальных машин VMware
- Драйверы VirtIO для Windows в Proxmox
- Hyper-V Integration Services в Hyper-V
Например, в случае VMware достаточно смонтировать ISO образ с VMTools и запустить установку служб интеграции из командной строки:
D:\setup64.exe
Либо для тихой установки VMtools:
Start-Process D:\setup64.exe -Wait -ArgumentList "/s","/v","/qn","REBOOT=R" -WindowStyle Hidden
Настройка параметров сети
Теперь нужно из 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
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>
Настройка времени/даты
Вы можете настроить дату, время, часовой пояс с помощью графической утилиты
timedate.cpl
или с помощью PowerShell:
Set-Date -Date "09/03/2025 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 2025):
slmgr /ipk TVRH6-WHNXV-R9WG3-9XRFY-MY832
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
Теперь чтобы удаленно подключиться к этому серверу с другого компьютера через PowerShell Remoting (WinRM), сначала на клиенте нужно добавить имя или IP адрес хоста Server Core в TrustedHosts:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "192.168.158.177"
После этого можно установить удаленную интерактивную сессию с сервером с помощью Enter-PSSession:
Enter-PSSession -ComputerName "192.168.158.177" -Credential (Get-Credential)
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, но можно задать параметры и вручную.
Вывести текущие настройки Windows Update:
cscript $Env:SystemRoot\system32\scregedit.wsf /AU /v
В данном случае обновления скачиваются, но не устанавливаются автоматически.
Включить автоматическую установку обновлений:
cscript $Env:SystemRoot\system32\scregedit.wsf /AU 4
Отключить автоматическое обновление Windows:
cscript $Env:SystemRoot\system32\scregedit.wsf /AU 1
Получить список (историю) установленных обновлений:
Get-Hotfix
Или
wmic qfe list
Для ручной установки обновлений Windows можно использовать утилиту wusa:
Wusa update_name.msu /quiet
Удаление установленного обновления:
wusa /uninstall /kb:5048667
Также для установки и управления обновлениями из командной строки удобно использовать 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
Создать новую задачу в планировщике можно с помощью командлета New-ScheduledTaskAction.
Вывести список активных заданий:
Get-ScheduledTask -TaskPath | ? state -ne Disabled
Часто используемые команды в 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-WinEvent -FilterHashtable @{logname='System';id=1074}|ft TimeCreated,Id,Message | 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 некоторые графические инструменты и консоли (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.
Для добавлений принтера нужно установить роль Print-Services:
Install-WindowsFeature Print-Services
После этого можно подключить принтер:
printui.exe /il
Чтобы отправить файл на печать:
Get-Content C:\sampletest.txt | Out-Printer
Вывести информацию об использовании файла подкачки:
Get-CimInstance Win32_PageFileUsage | Select-Object Name, AllocatedBaseSize, CurrentUsage, PeakUsage
В этой статье я постарался собрать самые нужные команды, которые нужно постоянно держать под рукой при работе с Windows Server Core. Время от времени я буду обновлять статью и добавлять новые команды, которые покажутся мне нужными для повседневной работы.
Спасибо , В закладки
Здравствуйте! Что нужно установить на windows server core 2019(библиотеки и пр.), чтобы решалась задача Video encoding. Т.е., чтобы не устанавливать полный FOD и не отъедать 200 мБ.
Аппаратное декодирование/кодирование видео не поддерживалось. Поможет ли тут установка Fod — не знаю, просто не было интереса в этой темею. А что за задачи, софт?
Приветствую! Сталкивались ли с установкой PowerShute на Core 2016/2019?
Устанавливал в свое время на Hyper-V Server. Насколько я помню, там был инсталятор, которые ставиттся в тихом режиме из командной строки с параметрами. Файл ответов можно подготовить на другом компьютере с GUI:
_https://www.apc.com/tr/tr/faqs/FA159703/
После установки там появляется веб сервис на нестандартном порту. Откройте доступ к нему в Windows Firewall и можно управлять парашутом через браузер
Прежде чам включать правило фаервола:
Enable-NetFireWallRule -DisplayName “Windows Management Instrumentation (DCOM-In)”
надо его сперва создать.
Точнее так, на моём WS2016 фаервол для подключения утилит RSAT открылся такой командой:
Enable-NetFirewallRule
а если писать
Enable-NetFirewallRule -DisplayGroup “Windows Remote Management”
то говорит:
Не найдены объекты MSFT_NetFirewallRule со свойством «DisplayGroup», равным «Windows Remote Management». Проверьте значение свойства и попробуйте еще раз.
Здравствуйте! Статья замечательная.
Подскажите, при помощи каких команд включается звук в Windows Server Core 2022.
После этого на машине больше не будет работать автозагрузка из реестра, если какие-то параметры были прописаны в Windows\CurrentVersion\Run. У меня проблема была, что не запускался vmtoolsd.exe с параметрами -n vmusr (вмваре тулс), из-за чего не работал совместный буфер. Если кому-то понадобится вернуть все, как было, то значение Shell по умолчанию explorer.exe
Подскажите где можно offline Server Core App Compatibility Feature on Demand (FOD) добыть ?
Далее шаги по установке очень подробно описаны , их имея offline образ ))) можно было бы добавить в статью. За статью — спасибо — всё что нужно собрано в одном месте .
Mount the FOD ISO
Use New-PSDrive from PowerShell, net use from Command Prompt, or some other method, to connect to the location of the FOD ISO. For example, in an elevated PowerShell session run the following command:
PowerShell
$credential = Get-Credential
New-PSDrive -Name FODShare -PSProvider FileSystem -Root «\\server\share» -Credential $credential
Copy the FOD ISO to a local folder of your choosing (the copy operation may take some time). Edit the following variables with your folder location and ISO filename, and run the following commands, for example:
PowerShell
$isoFolder = «C:\SetupFiles\WindowsServer\ISOs»
$fodIsoFilename = «FOD_ISO_filename.iso»
New-Item -ItemType Directory -Path $isoFolder
Copy-Item -Path «FODShare:\$fodIsoFilename» -Destination $isoFolder -Verbose
Mount the FOD ISO by using the following command:
PowerShell
$fodIso = Mount-DiskImage -ImagePath «$isoFolder\$fodIsoFilename»
Run the following command to get the drive letter that the FOD ISO has been mounted to:
PowerShell
$fodDriveLetter = ($fodIso | Get-Volume).DriveLetter
Run the following command (depending on the operating system version):
For Windows Server 2022:
PowerShell
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0 -Source ${fodDriveLetter}:\LanguagesAndOptionalFeatures\ -LimitAccess
For previous versions of Windows Server:
PowerShell
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0 -Source ${fodDriveLetter}:\ -LimitAccess
After the progress bar completes, restart the operating system
Можно скачать ISO при наличии копроративной подписки VLSC или Visual Studio.
If you have a volume license, you can download the Windows Server Languages and Optional Features ISO image file from the same portal where the operating system ISO image file is obtained: Volume Licensing Service Center.
The Windows Server Languages and Optional Features ISO image file is also available on the Microsoft Evaluation Center or on the Visual Studio portal for subscribers.
_https://learn.microsoft.com/en-us/windows-server/get-started/server-core-app-compatibility-feature-on-demand
Ну либо торренты с проверкой образа по хэшу. 🙂
Осталось найти торрент 🙂 кто бы выложил.
Но в 2019 и 2022 , всё скачалось вчера
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0
https://root3.minerswin.de/ISO/