How to Set Up Windows Server Core (No GUI)
Windows Server Core is a minimal installation option that omits the graphical desktop experience. It uses fewer resources, has a smaller attack surface, and requires fewer updates compared to the full desktop experience. This guide covers working with Server Core on your Kazepute Breeze, from initial configuration to ongoing management.
Why Choose Server Core
- Smaller footprint: Uses significantly less disk space and RAM.
- Reduced attack surface: Fewer components means fewer potential vulnerabilities.
- Fewer updates: Less software to patch means fewer reboots.
- Better performance: No GUI overhead leaves more resources for your applications.
Initial Configuration with sconfig
After installation, Server Core boots to a command prompt. Use the sconfig utility for initial setup:
# Launch the Server Configuration tool
sconfig
The sconfig menu provides options for:
- Domain/Workgroup settings
- Computer name
- Add local administrator
- Configure Remote Management
- Windows Update settings
- Remote Desktop
- Network settings
- Date and time
Configure Network Settings
# View network adapters
Get-NetAdapter
# Set static IP
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 10.0.0.5 -PrefixLength 24 -DefaultGateway 10.0.0.1
# Set DNS servers
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 8.8.8.8, 8.8.4.4
# Verify configuration
Get-NetIPConfiguration
Set Computer Name and Join Domain
# Rename the computer
Rename-Computer -NewName "CORE-WEB01" -Restart
# Join a domain (after restart)
Add-Computer -DomainName "corp.example.com" -Credential (Get-Credential) -Restart
# Or stay in a workgroup
Add-Computer -WorkgroupName "SERVERS"
Enable Remote Management
Since Server Core has no GUI, remote management is essential:
# Enable PowerShell Remoting
Enable-PSRemoting -Force
# Enable Remote Desktop
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
# Enable WMI through the firewall
Enable-NetFirewallRule -DisplayGroup "Windows Management Instrumentation (WMI)"
# Enable Remote Event Log Management
Enable-NetFirewallRule -DisplayGroup "Remote Event Log Management"
# Enable Remote Service Management
Enable-NetFirewallRule -DisplayGroup "Remote Service Management"
Install Roles and Features
# List available roles
Get-WindowsFeature | Where-Object Available -eq $true
# Install IIS (Web Server)
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
# Install DNS
Install-WindowsFeature -Name DNS -IncludeManagementTools
# Install File Server
Install-WindowsFeature -Name FS-FileServer
# View installed features
Get-WindowsFeature | Where-Object Installed -eq $true
Managing Services
# List running services
Get-Service | Where-Object Status -eq Running | Format-Table Name, DisplayName, Status
# Start/stop/restart services
Start-Service -Name W3SVC
Stop-Service -Name W3SVC
Restart-Service -Name W3SVC
# Set service startup type
Set-Service -Name W3SVC -StartupType Automatic
Managing Updates
# Install the PSWindowsUpdate module
Install-PackageProvider -Name NuGet -Force
Install-Module PSWindowsUpdate -Force
# Check for updates
Get-WindowsUpdate
# Install all updates
Install-WindowsUpdate -AcceptAll
# Schedule automatic updates
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 3am
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-Command Install-WindowsUpdate -AcceptAll -AutoReboot"
Register-ScheduledTask -TaskName "WeeklyUpdates" -Trigger $trigger -Action $action -User "SYSTEM" -RunLevel Highest
Remote Management with RSAT
Use Remote Server Administration Tools (RSAT) from a Windows workstation with a GUI to manage Server Core:
# On a Windows 10/11 workstation, install RSAT
Add-WindowsCapability -Online -Name Rsat.ServerManager.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.Dns.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.DHCP.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
Then open Server Manager on the workstation, click Manage > Add Servers, and add your Server Core Breeze by IP or hostname.
Windows Admin Center
Windows Admin Center provides a web-based GUI for managing Server Core:
# Download and install Windows Admin Center on a management server
# Then connect to your Server Core Breeze through the web interface
# URL: https://management-server:6516
Switching Between Core and Desktop Experience
# Add the GUI (Desktop Experience) to Server Core
Install-WindowsFeature -Name Server-Gui-Mgmt-Infra, Server-Gui-Shell -Restart
# Remove the GUI to convert to Server Core
Remove-WindowsFeature -Name Server-Gui-Mgmt-Infra, Server-Gui-Shell -Restart
Note: Switching between modes requires a restart and is only available on Windows Server 2019 and earlier. Windows Server 2022 does not support switching after installation.
Best Practices
- Use Server Core for all roles that do not require a GUI (web servers, DNS, file servers, AD domain controllers).
- Manage Server Core remotely using PowerShell Remoting, RSAT, or Windows Admin Center.
- Keep a documented runbook of common commands for your Server Core Breezes.
- Automate routine tasks with PowerShell scripts and scheduled tasks.
- Enable comprehensive logging since you cannot easily browse Event Viewer locally.
- Test your disaster recovery procedures regularly, including bare-metal restores.