Understanding the Two Windows Server 2019 Servicing Channels
Microsoft offers Windows Server through two distinct servicing models: the Long-Term Servicing Channel (LTSC) and the Semi-Annual Channel (SAC). Choosing between them affects how frequently you receive new features, how long you receive security support, and what workloads are supported. Windows Server 2019 itself is an LTSC release, while the SAC releases—named by year and month (e.g., 1809, 1903, 2004)—sit alongside it. Understanding the differences is essential before deploying servers in production.
Long-Term Servicing Channel (LTSC) Characteristics
The LTSC is designed for systems requiring maximum stability and long support lifetimes. Windows Server 2019 is the LTSC release that shipped in late 2018. Key properties:
- 10 years of support: 5 years mainstream + 5 years extended
- Includes Desktop Experience (GUI) and Server Core installation options
- Receives security patches and critical fixes monthly but no new features after release
- Requires a perpetual or volume license
- Suitable for physical servers, traditional applications, and any workload needing a GUI
# Verify you are running LTSC (Windows Server 2019)
Get-ComputerInfo -Property WindowsProductName, WindowsVersion, OsBuildNumber
# Expected output for LTSC 2019:
# WindowsProductName : Windows Server 2019 Datacenter
# WindowsVersion : 10.0.17763
# OsBuildNumber : 17763
# Check the CurrentVersion in the registry
Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion' |
Select-Object ProductName, ReleaseId, CurrentBuild, UBR
Semi-Annual Channel (SAC) Characteristics
The SAC was designed for containerized and cloud-native workloads where operators want access to the latest features quickly. Key properties:
- 18 months of support per release
- Server Core only—no Desktop Experience
- Released roughly every six months
- Requires Software Assurance or an Azure subscription
- Ideal for Kubernetes nodes, container hosts, and CI/CD infrastructure
# SAC release identification example (Server 2004 build)
# WindowsProductName : Windows Server Datacenter
# OsBuildNumber : 19041
# List SAC releases and their end-of-support dates (reference only)
# Release 1809 - EOL January 2020
# Release 1903 - EOL December 2019
# Release 1909 - EOL May 2021
# Release 2004 - EOL December 2021
# Release 20H2 - EOL May 2022
# Release 21H2 - EOL August 2022 (last SAC release)
# Note: SAC was discontinued after 21H2; Microsoft moved container-optimized
# workloads to Azure Stack HCI and Windows Server 2022 LTSC.
Installing Windows Server 2019 LTSC (Server Core vs Desktop Experience)
During installation you choose between Server Core and Desktop Experience. Server Core is strongly recommended for new deployments because it has a smaller attack surface and lower memory footprint:
# After installing Server Core, initial configuration via sconfig
# Type the following at the Server Core command prompt:
sconfig
# Or use PowerShell for initial setup without the interactive menu:
# Set computer name
Rename-Computer -NewName 'CORE-SRV01' -Restart
# Set static IP
New-NetIPAddress -InterfaceAlias 'Ethernet' -IPAddress 192.168.1.50 `
-PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceAlias 'Ethernet' -ServerAddresses 192.168.1.10,192.168.1.11
# Enable Windows Remote Management for remote administration
Enable-PSRemoting -Force
Set-Item WSMan:localhostClientTrustedHosts -Value '*' -Force # dev/isolated only
# Join domain
Add-Computer -DomainName 'corp.local' -Credential (Get-Credential) -Restart
Converting Between Server Core and Desktop Experience
On Windows Server 2019 LTSC, you can add or remove the Desktop Experience without reinstalling (unlike earlier versions where this required media):
# Add Desktop Experience to a Server Core installation
# This requires the installation media or Windows Update
Install-WindowsFeature -Name Server-Gui-Shell, Server-Gui-Mgmt-Infra -Restart
# Remove Desktop Experience (convert to Server Core)
Remove-WindowsFeature -Name Server-Gui-Shell -Restart
# Alternatively, use DISM from installation media
# Mount the ISO and identify the source
DISM /Online /Get-Features /Format:Table | findstr "Server-Gui"
# Add feature from media
Install-WindowsFeature -Name Server-Gui-Shell `
-Source 'D:sourcessxs' -Restart
Configuring Windows Update Servicing Settings
Controlling update behavior differs between standalone servers and those managed by Windows Server Update Services (WSUS) or Microsoft Endpoint Configuration Manager:
# View current update settings
Get-ItemProperty 'HKLM:SOFTWAREPoliciesMicrosoftWindowsWindowsUpdateAU'
# Configure Windows Update via PowerShell (standalone server)
# Set to automatically download and install on schedule
$wuKey = 'HKLM:SOFTWAREPoliciesMicrosoftWindowsWindowsUpdateAU'
New-Item -Path $wuKey -Force | Out-Null
Set-ItemProperty $wuKey -Name 'AUOptions' -Value 4 # 4 = auto download+install
Set-ItemProperty $wuKey -Name 'ScheduledInstallDay' -Value 0 # 0 = every day
Set-ItemProperty $wuKey -Name 'ScheduledInstallTime' -Value 3 # 3:00 AM
Set-ItemProperty $wuKey -Name 'NoAutoRebootWithLoggedOnUsers' -Value 1
# Point server to internal WSUS
$wuBase = 'HKLM:SOFTWAREPoliciesMicrosoftWindowsWindowsUpdate'
Set-ItemProperty $wuBase -Name 'WUServer' -Value 'http://wsus.corp.local:8530'
Set-ItemProperty $wuBase -Name 'WUStatusServer' -Value 'http://wsus.corp.local:8530'
Set-ItemProperty "$wuBaseAU" -Name 'UseWUServer' -Value 1
# Force update check immediately
wuauclt.exe /detectnow
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
Patch Level Verification and Reporting
Track which KB articles are installed and compare against the expected patch baseline:
# List installed updates sorted by date
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 20 |
Format-Table HotFixID, Description, InstalledBy, InstalledOn
# Check if a specific KB is installed
$kb = 'KB5020953'
if (Get-HotFix -Id $kb -ErrorAction SilentlyContinue) {
Write-Output "$kb is installed"
} else {
Write-Warning "$kb is NOT installed"
}
# Get OS build number to compare with Microsoft's patch pages
[System.Environment]::OSVersion.Version
(Get-ItemProperty 'HKLM:SOFTWAREMicrosoftWindows NTCurrentVersion').UBR
# Export installed patches to CSV for compliance reporting
Get-HotFix | Select-Object PSComputerName, HotFixID, Description, InstalledOn |
Export-Csv "C:ReportsPatchStatus_$env:COMPUTERNAME_$(Get-Date -Format yyyyMMdd).csv" -NoTypeInformation
In-Place Upgrade Paths for LTSC
Windows Server 2019 supports in-place upgrades from Windows Server 2012 R2 and later LTSC releases:
# Pre-upgrade health check
# 1. Verify current OS version
winver
# 2. Check hardware compatibility
Get-WmiObject Win32_OperatingSystem | Select-Object Caption, Version, OSArchitecture
Get-WmiObject Win32_ComputerSystem | Select-Object TotalPhysicalMemory, Manufacturer, Model
# 3. Verify disk space (need at least 32 GB free on system drive)
Get-PSDrive C | Select-Object Used, Free
# 4. Export current roles for post-upgrade verification
Get-WindowsFeature | Where-Object { $_.Installed } |
Export-Csv 'C:BackupInstalledFeatures_PreUpgrade.csv' -NoTypeInformation
# 5. Backup any custom scheduled tasks
Get-ScheduledTask | Where-Object { $_.TaskPath -notlike 'Microsoft*' } |
Export-Clixml 'C:BackupScheduledTasks_PreUpgrade.xml'
# Run setup.exe from Windows Server 2019 media (interactive or unattended)
# setup.exe /auto upgrade /dynamicupdate disable /quiet /noreboot
Activation of LTSC Licenses
# Check activation status
slmgr.vbs /xpr # expiry date
slmgr.vbs /dli # license info
Get-CimInstance SoftwareLicensingProduct | Where-Object { $_.Name -like '*Windows*' } |
Select-Object Name, LicenseStatus, Description
# Activate with a KMS server
slmgr.vbs /skms kms.corp.local:1688
slmgr.vbs /ato
# Activate with MAK key
slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
slmgr.vbs /ato
Conclusion
Windows Server 2019 as an LTSC release provides the stability, long support lifespan, and GUI installation option that most enterprise workloads require. The SAC releases—now discontinued after 21H2—were appropriate for container-oriented infrastructure where rapid feature delivery outweighed stability. Administrators should assess each workload’s requirements: production databases, file servers, and domain controllers belong on LTSC; ephemeral container nodes could leverage SAC while it was available. Understanding servicing channels ensures you make deliberate, supportable deployment decisions.