🏠 Home / Hub

Lesson 1 — Windows Server Intro & Roles

This lesson covers the Windows Server platform: version history, editions, the Server Manager interface, core roles, and the initial configuration steps every administrator performs after a fresh installation.

1. Windows Server Versions: 2016, 2019, 2022

VersionBuildReleasedKey AdditionsSupport Ends
Windows Server 201614393Oct 2016Containers (Windows Containers), Nano Server, Shielded VMs, Storage Spaces Direct (S2D), Windows Defender ATPJan 2027
Windows Server 201917763Oct 2018Windows Admin Center, Storage Migration Service, System Insights, Linux containers on Windows, improved HCIJan 2029
Windows Server 202220348Aug 2021Secured-core server, TLS 1.3 by default, SMB AES-256 encryption, Azure Arc integration, improved DNS-over-HTTPSOct 2031
Windows Server uses a Long-Term Servicing Channel (LTSC). Each LTSC version receives 5 years of mainstream support plus 5 years of extended support. Server 2022 is the current LTSC release as of 2024.

2. Editions: Standard vs Datacenter vs Essentials

FeatureEssentialsStandardDatacenter
Max Users25 users / 50 devicesUnlimitedUnlimited
Max CPU sockets2UnlimitedUnlimited
Hyper-V VMs included0 (not licensed)2 VMs per licenseUnlimited VMs
Storage Spaces DirectNoNoYes
Shielded VMs (host)NoYes (limited)Yes (full)
Software-Defined NetworkingNoNoYes
Domain ControllerYes (1st DC only)YesYes
Target useSmall business (<25 users)Standard workloadsHighly virtualized / cloud
Essentials cannot be promoted to a domain controller if another DC already exists. It is designed as the sole DC for small environments.

3. Server Manager Overview

Server Manager is the primary GUI management tool that opens automatically after login on a full GUI installation.

Main Dashboard Areas

4. Add Roles and Features Wizard

All server roles and Windows features are installed through the same wizard:

  1. Open Server Manager → click ManageAdd Roles and Features
  2. Before you begin — Read prerequisites; click Next
  3. Installation type — Select Role-based or feature-based installation (most common). The other option is Remote Desktop Services scenario-based installation.
  4. Server selection — Choose the target server from the server pool (local or remote)
  5. Server Roles — Check the box for the role(s) you want. The wizard automatically offers to add required role services and features.
  6. Features — Additional optional features independent of specific roles (e.g., RSAT tools, Windows Server Backup)
  7. Role-specific pages — Some roles (IIS, AD DS, RDS) show extra configuration screens
  8. Confirmation — Review selections. Optionally check Restart the destination server automatically if required
  9. Click Install. Progress bar appears; most roles install in under 2 minutes.
You can also install roles from PowerShell using Install-WindowsFeature. This is faster for automation and Server Core environments.
# PowerShell equivalents for role installation
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Install-WindowsFeature -Name DNS -IncludeManagementTools
Install-WindowsFeature -Name DHCP -IncludeManagementTools
Install-WindowsFeature -Name Web-Server -IncludeAllSubFeature -IncludeManagementTools
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart

# View all available features
Get-WindowsFeature | Where-Object {$_.InstallState -eq "Available"} | Format-Table Name, DisplayName

5. Key Server Roles Reference Table

RoleFeature NameManagement ToolPurpose
Active Directory Domain ServicesAD-Domain-Servicesdsa.msc / ADUCAuthentication, authorization, directory services for domain
DNS ServerDNSdnsmgmt.mscHostname-to-IP resolution for internal and external names
DHCP ServerDHCPdhcpmgmt.mscDynamic IP address assignment to network clients
Web Server (IIS)Web-ServerinetmgrHost websites, web applications, REST APIs
File and Storage ServicesFS-FileServerServer Manager / fsmgmt.mscSMB file shares, DFS, quotas, shadow copies
Hyper-VHyper-Vvirtmgmt.mscHardware virtualization, host for VMs
Remote Desktop ServicesRDS-RD-Servertsconfig.msc / Remote Desktop ManagerMulti-user remote desktop, RemoteApp, VDI
Windows Server Update ServicesUpdateServiceswsus.mscCentrally approve and deploy Windows updates
Active Directory Certificate ServicesAD-Certificatecertsrv.mscInternal PKI / Certificate Authority
Network Policy and Access ServicesNPASnps.mscRADIUS server for VPN/Wi-Fi authentication, NAP
Print and Document ServicesPrint-Serverprintmanagement.mscShared printer management, print queues

6. Initial Configuration Checklist

Every new Windows Server deployment should go through this checklist before putting the server into production:

Step 1: Set Hostname

In Server Manager → Local Server → click the Computer Name link, or via PowerShell:

Rename-Computer -NewName "SRV-DC01" -Restart

Step 2: Configure Static IP Address

# Find the interface index
Get-NetAdapter

# Set static IP, subnet mask, gateway, and DNS
New-NetIPAddress -InterfaceIndex 5 -IPAddress 192.168.1.10 -PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceIndex 5 -ServerAddresses ("192.168.1.10","8.8.8.8")

# Verify
Get-NetIPAddress -AddressFamily IPv4 | Select-Object InterfaceAlias, IPAddress, PrefixLength

Step 3: Configure Windows Update

# Check pending updates (requires PSWindowsUpdate module or WSUS)
# Via Settings: Start → Settings → Update & Security → Windows Update
# PowerShell (requires NuGet + PSWindowsUpdate module):
Install-PackageProvider -Name NuGet -Force
Install-Module -Name PSWindowsUpdate -Force
Get-WindowsUpdate
Install-WindowsUpdate -AcceptAll -AutoReboot

Step 4: Configure Windows Firewall

# Check firewall status on all profiles
Get-NetFirewallProfile | Select-Object Name, Enabled

# Enable firewall on all profiles (should already be on)
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

Step 5: Enable Remote Desktop

# Enable RDP
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0

# Create firewall rule to allow RDP inbound
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

# Allow RDP through firewall (if rule missing)
New-NetFirewallRule -DisplayName "Allow RDP" -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow

Step 6: Set Time Zone

Set-TimeZone -Name "Eastern Standard Time"
# List all available time zones:
Get-TimeZone -ListAvailable | Where-Object {$_.Id -like "*Pacific*"}

7. Remote Desktop Connection

Once RDP is enabled, connect from any Windows machine using mstsc.exe:

# Launch Remote Desktop Connection (from Run dialog or Start)
mstsc.exe

# Connect directly to a specific server
mstsc /v:192.168.1.10

# Connect with specific resolution
mstsc /v:SRV-DC01.lab.local /w:1920 /h:1080

# Full-screen mode
mstsc /v:SRV-DC01 /f
RDP SettingLocationNotes
Enable RDPServer Manager → Local ServerSets registry key fDenyTSConnections=0
Allowed usersSystem Properties → Remote tab → Select UsersDomain Admins have access by default
Network Level Auth (NLA)System Properties → Remote tabRequires domain credentials before session starts — leave enabled
RDP PortHKLM\SYSTEM\CCS\Control\Terminal Server\WinStations\RDP-Tcp → PortNumberDefault 3389; can change for security (update firewall rule too)

8. Windows Admin Center

Windows Admin Center (WAC) is a browser-based, zero-additional-cost management tool introduced with Server 2019. It replaces many MMC snap-ins with a modern web interface.

# Install WAC silently (run on the gateway server)
# Download MSI from Microsoft, then:
msiexec /i WindowsAdminCenter.msi /qn /L*v log.txt SME_PORT=443 SSL_CERTIFICATE_OPTION=generate

# After install, access via browser:
# https://servername or https://localhost (if installed locally)

9. PowerShell Server Core

Server Core is a minimal Windows Server installation with no GUI (no Explorer, no desktop, no Server Manager GUI). Management is done entirely through PowerShell, command-line tools, or remotely via WAC/MMC.

# On Server Core — initial config with sconfig.cmd (menu-driven)
sconfig

# Or via PowerShell directly on Server Core:
# Set hostname
Rename-Computer -NewName "SRV-CORE01" -Restart

# Set IP
New-NetIPAddress -InterfaceIndex 3 -IPAddress 192.168.1.20 -PrefixLength 24 -DefaultGateway 192.168.1.1

# Enable PowerShell remoting (so you can manage it from another PC)
Enable-PSRemoting -Force

# Install a role on Server Core (same cmdlets, no GUI wizard):
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools

10. MMC (Microsoft Management Console) Snap-ins

MMC is the framework that hosts most Windows administrative tools as "snap-ins". Type any of these in the Run dialog (Win+R):

CommandToolUse For
compmgmt.mscComputer ManagementAll-in-one: Device Manager, Disk Management, Services, Users, Shares
diskmgmt.mscDisk ManagementPartition disks, format volumes, assign drive letters, extend volumes
services.mscServicesStart/stop/restart Windows services, change startup type
eventvwr.mscEvent ViewerView application, security, system, and custom logs
gpedit.mscLocal Group Policy EditorLocal policies (not domain GPO)
secpol.mscLocal Security PolicyPassword policy, account lockout, audit policy (local)
taskschd.mscTask SchedulerCreate and manage scheduled tasks
devmgmt.mscDevice ManagerHardware drivers, device status
certmgr.mscCertificate Manager (user)Personal/machine certificates
wf.mscWindows Firewall Advanced SecurityCreate inbound/outbound rules, connection security rules
dsa.mscActive Directory Users and ComputersManage AD users, groups, computers, OUs (requires AD DS role)
gpmc.mscGroup Policy Management ConsoleCreate, link, edit, and manage domain GPOs (requires GPMC feature)

11. Event Viewer

Event Viewer (eventvwr.msc) is the primary tool for reviewing what happened on a server. Understanding the log structure is essential for troubleshooting.

Windows Logs

LogContentsKey Events
ApplicationEvents from applications and services (non-OS)Database errors, application crashes, service failures
SecurityAudit events: logons, policy changes, object access4624 (logon), 4625 (failed logon), 4720 (user created)
SystemOS and driver eventsService start/stop, hardware failures, DHCP, disk errors
SetupSoftware installation eventsRole installations, Windows Update installs
Forwarded EventsEvents forwarded from other computers (WEF)Centralized log collection

Custom Views

Custom Views let you create filtered log views across multiple logs:

# PowerShell — query Event Viewer logs
# Get last 10 failed logon attempts
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 10 |
  Select-Object TimeCreated, Message | Format-List

# Get all critical and error events from System log in last 24 hours
$start = (Get-Date).AddHours(-24)
Get-WinEvent -FilterHashtable @{LogName='System'; Level=1,2; StartTime=$start} |
  Select-Object TimeCreated, LevelDisplayName, Message | Format-Table -Wrap

12. Task Scheduler

Task Scheduler (taskschd.msc) runs programs, scripts, or commands at specified times or in response to events.

Creating a Basic Task via GUI

  1. Open Task Scheduler → Action → Create Basic Task
  2. Name and description → Next
  3. Trigger: Daily / Weekly / Monthly / One time / At startup / At logon / On event
  4. Action: Start a program (specify program path and arguments)
  5. Finish → task appears in Task Scheduler Library

PowerShell Task Scheduling

# Create a scheduled task to run a backup script daily at 2 AM
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
  -Argument "-NonInteractive -WindowStyle Hidden -File C:\Scripts\backup.ps1"

$trigger = New-ScheduledTaskTrigger -Daily -At "2:00AM"

$settings = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable `
  -WakeToRun -StartWhenAvailable

$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest

Register-ScheduledTask -TaskName "Daily Backup" -Action $action `
  -Trigger $trigger -Settings $settings -Principal $principal -Description "Nightly backup job"

# Manage tasks
Get-ScheduledTask | Where-Object {$_.State -eq "Ready"} | Select-Object TaskName, LastRunTime
Start-ScheduledTask -TaskName "Daily Backup"
Disable-ScheduledTask -TaskName "Daily Backup"
Unregister-ScheduledTask -TaskName "Daily Backup" -Confirm:$false

Lesson 1 Complete

You now understand Windows Server editions, the Server Manager interface, how to install roles, perform initial configuration, and use core management tools like Event Viewer and Task Scheduler.

Next up: Active Directory Domain Services →

📌 Study Checklist