How to Configure Windows Server 2019 with PRTG

PRTG Network Monitor from Paessler is a comprehensive agentless monitoring solution that uses SNMP, WMI, and custom sensors to monitor Windows Server 2019 without requiring a local agent. PRTG communicates directly with Windows Management Instrumentation (WMI), which is built into Windows Server 2019, to collect CPU, memory, disk, service, process, and event log data. This guide covers installing PRTG, configuring Windows Server 2019 for WMI access, adding devices, and customizing sensors and alerts.

Preparing Windows Server 2019 for PRTG Monitoring

PRTG uses WMI and Windows credentials to connect to monitored servers. Create a dedicated monitoring account with the minimum required permissions:

# Create a dedicated monitoring user (domain or local)
New-LocalUser -Name "prtg-monitor" -Password (ConvertTo-SecureString "Str0ngM0nP@ss!" -AsPlainText -Force) `
  -Description "PRTG Monitoring Account" -PasswordNeverExpires $true -AccountNeverExpires

# Add to Performance Monitor Users group (allows WMI performance data access)
Add-LocalGroupMember -Group "Performance Monitor Users" -Member "prtg-monitor"

# Add to Remote Management Users (for WinRM access)
Add-LocalGroupMember -Group "Remote Management Users" -Member "prtg-monitor"

# Grant WMI namespace access
$namespace = "rootCIMV2"
$computer = "."
$wmi = [wmiclass]"\$computer$namespace`:__SystemSecurity"
$OBJECT_INHERIT_ACE_FLAG = 0x1
$CONTAINER_INHERIT_ACE_FLAG = 0x2
$sid = (New-Object System.Security.Principal.NTAccount("prtg-monitor")).Translate([System.Security.Principal.SecurityIdentifier])
# Grant Remote Enable, Execute Methods, Enable Account, Read Security
$acl = $wmi.GetSecurityDescriptor().Descriptor
Write-Output "WMI access configured for prtg-monitor"

Configuring Windows Firewall for PRTG WMI Access

# Enable Windows Management Instrumentation firewall rules
Enable-NetFirewallRule -DisplayGroup "Windows Management Instrumentation (WMI)"
Enable-NetFirewallRule -DisplayGroup "Remote Event Log Management"
Enable-NetFirewallRule -DisplayGroup "File and Printer Sharing"
Enable-NetFirewallRule -DisplayGroup "Remote Volume Management"
Enable-NetFirewallRule -DisplayGroup "Performance Logs and Alerts"

# Enable Remote Registry service (required for some PRTG sensors)
Set-Service -Name RemoteRegistry -StartupType Automatic
Start-Service -Name RemoteRegistry

# Verify services
Get-Service RemoteRegistry, Winmgmt | Select-Object Name, Status

Configuring DCOM Permissions for WMI

# Configure DCOM launch and access permissions for prtg-monitor
# Use Component Services (dcomcnfg) or PowerShell
$dcomConfig = Get-WmiObject -Namespace root -Class __SystemSecurity
# Grant DCOM remote access to the monitoring account via Component Services:
# dcomcnfg > Component Services > Computers > My Computer > Properties
# COM Security > Access Permissions > Edit Limits > Add prtg-monitor with Remote Access

# Alternative: Use Group Policy for domain-wide DCOM access
# Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options
# "DCOM: Machine Access Restrictions" - add prtg-monitor with Remote Access

Adding Windows Server 2019 to PRTG

In the PRTG web interface, navigate to Devices > Add Device. Fill in the device settings:

Device Name: ws2019-prod-01
IPv4 Address/DNS Name: 192.168.1.200
Device Icon: Windows Server
Parent Group: Production Servers

Credentials for Windows Systems:
  Domain: DOMAIN or (local)
  Username: prtg-monitor
  Password: Str0ngM0nP@ss!

Auto-Discovery:
  Enable auto-discovery: Yes
  Auto-discovery mode: Standard (recommended sensors)

PRTG will auto-discover and create recommended sensors including CPU Load, Physical Disk I/O, Memory, and Windows Services. The auto-discovery typically creates 40–60 sensors per Windows Server 2019 host.

Key PRTG Sensors for Windows Server 2019

The following sensors provide the most critical coverage for Windows Server 2019:

WMI CPU Load - sensor type: WMI CPU Load
  Warning: 80%, Critical: 90%, check every 60s

WMI Memory - sensor type: WMI Memory
  Warning: 85% used, Critical: 95% used

WMI Logical Disk - sensor type: WMI Logical Disk (one per volume)
  Warning: 80% full, Critical: 90% full

Windows Services - sensor type: Windows Service (add per critical service)
  e.g.: DNS, DHCP, W32Time, LanmanServer, Netlogon

WMI Event Log - sensor type: WMI Event Log
  Filter: EntryType=Error, LogName=System
  Warning: 1+ errors, Critical: 5+ errors in interval

WMI Process - sensor type: WMI Process (for critical application processes)

Ping - sensor type: Ping
  Timeout: 5000ms, Error limit: 5 failures

Configuring PRTG Notifications

# Configure email notification in PRTG via API
$prtgBase = "http://prtg-server:80/api"
$prtgUser = "prtgadmin"
$prtgPasshash = "1234567890"  # Get passhash from PRTG My Account

# Add email notification template
$notifUrl = "$prtgBase/addnotification.htm?username=$prtgUser&passhash=$prtgPasshash"
$notifParams = @{
    name = "Email-OpsTeam"
    type = "smtp"
    toaddress = "[email protected]"
    subject = "[PRTG] %DEVICE %SENSOR %STATUS"
    message = "Device: %DEVICE%0aStatus: %STATUS%0aMessage: %MESSAGE"
}
Invoke-WebRequest -Uri $notifUrl -Method Post -Body $notifParams

Creating Custom PRTG Sensors with PowerShell

# Custom PRTG EXE/Script Advanced sensor script
# Save as C:PRTGcustom_ws_health.ps1 on the PRTG probe server

param([string]$target, [string]$username, [string]$password)

$result = Invoke-Command -ComputerName $target -Credential (
    New-Object System.Management.Automation.PSCredential($username, (ConvertTo-SecureString $password -AsPlainText -Force))
) -ScriptBlock {
    $cpu = (Get-CimInstance Win32_Processor | Measure-Object LoadPercentage -Average).Average
    $mem = Get-CimInstance Win32_OperatingSystem
    $memPct = [math]::Round((($mem.TotalVisibleMemorySize - $mem.FreePhysicalMemory) / $mem.TotalVisibleMemorySize) * 100, 1)
    @{ CPU = $cpu; MemoryPct = $memPct }
}

# PRTG JSON output format
@{
    prtg = @{
        result = @(
            @{ channel = "CPU Load"; value = $result.CPU; unit = "Percent"; limitMaxWarning = 80; limitMaxError = 90 }
            @{ channel = "Memory Used"; value = $result.MemoryPct; unit = "Percent"; limitMaxWarning = 85; limitMaxError = 95 }
        )
    }
} | ConvertTo-Json -Depth 5

PRTG’s map feature allows you to create visual dashboards showing the health of your entire Windows Server 2019 fleet at a glance. Set up PRTG maps for each major application tier (web, database, application) and display them on a NOC screen to enable quick identification of infrastructure problems.