How to Configure Windows Server 2016 Server Core
Server Core is an installation option for Windows Server 2016 that removes the graphical shell — the desktop, Start menu, taskbar, and most graphical management tools — leaving only a command prompt and PowerShell. The result is a significantly reduced attack surface, lower memory consumption, fewer required updates, and a smaller disk footprint compared to the full Desktop Experience installation. Microsoft recommends Server Core as the default installation choice for most server roles, and Windows Server 2016 is the first version where this recommendation was enforced as the default option in the installer.
This guide covers initial configuration of a Server Core installation, essential management tasks from the command line, enabling and using the Server Configuration utility (Sconfig), configuring remote management, and adding and removing roles.
Initial Login and the Command Prompt
When you log into a freshly installed Server Core system, you are presented with two windows: a command prompt (cmd.exe) and a Server Configuration utility (Sconfig). The graphical desktop does not appear. All configuration and management is done through these interfaces and PowerShell.
Launch PowerShell from the command prompt:
powershell
Confirm you are running Server Core (no Desktop Experience) by checking the InstallationType registry value:
Get-ItemProperty "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion" | Select-Object InstallationType
The output will show Server Core if the Desktop Experience is not installed.
Step 1: Use Sconfig for Initial Setup
Sconfig (Server Configuration) is a text-based menu utility that handles the most common initial configuration tasks. Launch it from the command prompt:
sconfig
The menu provides numbered options for joining a domain or workgroup, renaming the computer, configuring networking, enabling Remote Desktop, configuring Windows Update settings, enabling or disabling remote management, and downloading and installing updates.
For a new server, work through these options in order: set the computer name (option 2), join the domain (option 1), configure networking (option 8), and enable remote management (option 4) before deploying the server to production.
Step 2: Configure Networking from PowerShell
If you prefer PowerShell over Sconfig for network configuration, identify the network adapters first:
Get-NetAdapter | Select-Object Name, InterfaceDescription, Status, MacAddress
Set a static IP address on the adapter named Ethernet:
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.50 -PrefixLength 24 -DefaultGateway 192.168.1.1
Set the DNS servers:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 192.168.1.10, 192.168.1.11
Rename the computer and restart:
Rename-Computer -NewName "SRV-CORE01" -Restart
Step 3: Join the Domain
Join an Active Directory domain from PowerShell:
Add-Computer -DomainName "contoso.com" -Credential CONTOSODomainAdmin -Restart
Verify domain membership after reboot:
(Get-WmiObject Win32_ComputerSystem).Domain
Step 4: Enable Remote Management
Enable PowerShell remoting so the server can be managed from another machine:
Enable-PSRemoting -Force
Enable Remote Desktop for GUI management via mstsc from a remote workstation:
Set-ItemProperty -Path "HKLM:SystemCurrentControlSetControlTerminal Server" -Name fDenyTSConnections -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Configure the Windows Firewall to allow Server Manager remote management traffic:
Configure-SMRemoting.exe -Enable
Step 5: Install Roles and Features
Install server roles using PowerShell. Install the IIS web server role:
Install-WindowsFeature Web-Server -IncludeManagementTools
Install the DNS Server role:
Install-WindowsFeature DNS -IncludeManagementTools
Install the DHCP Server role:
Install-WindowsFeature DHCP -IncludeManagementTools
View all installed roles and features:
Get-WindowsFeature | Where-Object Installed -eq $true | Select-Object Name, DisplayName
Step 6: Manage Server Core Remotely
Once PowerShell remoting is enabled, connect to the Server Core machine from another Windows Server or workstation:
Enter-PSSession -ComputerName SRV-CORE01 -Credential CONTOSODomainAdmin
From the remote session, all PowerShell commands run as if you were logged in locally. Install roles, configure services, manage files, and check logs without needing a graphical session.
Add the Server Core machine to Server Manager on a management workstation with Desktop Experience to manage it graphically through a remote MMC interface rather than locally.
Step 7: Check System Status
Confirm system health from the command line. Check disk space:
Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{N='UsedGB';E={[math]::Round($_.Used/1GB,1)}}, @{N='FreeGB';E={[math]::Round($_.Free/1GB,1)}}
Check services that are stopped but set to automatic start:
Get-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' } | Select-Object Name, DisplayName, Status
Server Core on Windows Server 2016 is the recommended deployment model for production server roles. Its reduced footprint, fewer required reboots, and smaller attack surface make it a more secure and efficient choice than the Desktop Experience installation for workloads that are managed remotely through PowerShell, Server Manager, or Windows Admin Center.