How to Set Up System Center Operations Manager (SCOM) on Windows Server 2025

System Center Operations Manager (SCOM) is Microsoft’s enterprise monitoring platform designed to provide agent-based, deep visibility across Windows servers, applications, and infrastructure. Unlike lightweight exporters, SCOM delivers intelligent alerting through Management Packs — curated knowledge packs that encode Microsoft’s best practices for monitoring specific technologies including Windows Server OS, IIS, SQL Server, and Active Directory. Running SCOM 2022 against a Windows Server 2025 environment gives you a unified Operations Console, performance data collection, state-based health monitoring, and integration with Azure Monitor for hybrid cloud scenarios. This guide covers the end-to-end setup of SCOM 2022 on a dedicated management server running Windows Server 2025, from SQL prerequisites through Management Pack imports and agent deployment.

Prerequisites

  • Windows Server 2025 for the SCOM Management Server role (minimum 8-core CPU, 16 GB RAM, 100 GB disk)
  • SQL Server 2019 or SQL Server 2022 for the OperationsManager and OperationsManagerDW databases (can be a separate server)
  • SQL Server Reporting Services (SSRS) for SCOM Reporting
  • Active Directory domain with the management server and monitored hosts joined to the same or trusted domain
  • SCOM 2022 installation media or ISO
  • A dedicated low-privilege domain service account for the SCOM Data Access Service (e.g., DOMAINsvc-scom-das)
  • Local Administrator rights on the management server

Step 1: Prepare SQL Server for SCOM

SCOM requires two SQL databases: OperationsManager (operational data) and OperationsManagerDW (data warehouse for reporting). Prepare the SQL Server instance and verify connectivity:

# Run on the SQL Server — verify instance name and check collation
Invoke-SqlCmd -Query "SELECT @@SERVERNAME, SERVERPROPERTY('Collation'), SERVERPROPERTY('ProductVersion')"

# SCOM requires SQL_Latin1_General_CP1_CI_AS collation
# Set if different (requires SQL restart in some cases)
# Invoke-SqlCmd -Query "ALTER DATABASE OperationsManager COLLATE SQL_Latin1_General_CP1_CI_AS"

# Pre-create the databases with appropriate sizes (SCOM can also create them during setup)
Invoke-SqlCmd -Query @"
CREATE DATABASE [OperationsManager]
  ON PRIMARY (NAME = N'MOM_DATA', FILENAME = N'D:SCOMOperationsManager.mdf',
              SIZE = 2048MB, MAXSIZE = UNLIMITED, FILEGROWTH = 512MB)
  LOG ON (NAME = N'MOM_LOG', FILENAME = N'L:SCOMOperationsManager.ldf',
          SIZE = 512MB, MAXSIZE = UNLIMITED, FILEGROWTH = 256MB)
"@

Invoke-SqlCmd -Query @"
CREATE DATABASE [OperationsManagerDW]
  ON PRIMARY (NAME = N'MOM_DW', FILENAME = N'D:SCOMOperationsManagerDW.mdf',
              SIZE = 4096MB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024MB)
  LOG ON (NAME = N'MOM_DW_LOG', FILENAME = N'L:SCOMOperationsManagerDW.ldf',
          SIZE = 1024MB, MAXSIZE = UNLIMITED, FILEGROWTH = 512MB)
"@

Write-Host "SCOM databases created"

Step 2: Install Required Windows Features on the Management Server

# Install prerequisites on the SCOM Management Server
$features = @(
    "Web-Server",
    "Web-Windows-Auth",
    "Web-ISAPI-Ext",
    "Web-ISAPI-Filter",
    "Web-Net-Ext45",
    "Web-Asp-Net45",
    "Web-Default-Doc",
    "Web-Static-Content",
    "Web-Mgmt-Console",
    "NET-Framework-45-Core",
    "NET-Framework-45-ASPNET",
    "NET-WCF-HTTP-Activation45",
    "NET-WCF-Pipe-Activation45",
    "NET-WCF-TCP-Activation45",
    "WAS-Process-Model",
    "WAS-Config-APIs"
)

Install-WindowsFeature -Name $features -IncludeManagementTools -Restart:$false

# Install SQL Native Client and ODBC driver (download from Microsoft)
# Run VC++ Redistributable x64 2015-2022 if not present
Get-WindowsFeature -Name $features | Select-Object Name, InstallState | Format-Table -AutoSize

Step 3: Install SCOM Management Server

Mount the SCOM 2022 ISO and run setup.exe. Alternatively, use an unattended installation for consistency:

# Unattended SCOM Management Server install
# Mount ISO first: Mount-DiskImage -ImagePath "D:SCOM2022.iso"
$setupArgs = @(
    "/silent",
    "/install",
    "/components:OMServer,OMWebConsole,OMReporting",
    "/SqlServerInstance:SQLSERVER01SCOM",
    "/DatabaseName:OperationsManager",
    "/DWSqlServerInstance:SQLSERVER01SCOM",
    "/DWDatabaseName:OperationsManagerDW",
    "/ActionAccountUser:DOMAINsvc-scom-action",
    "/ActionAccountPassword:P@ssw0rd123!",
    "/DASAccountUser:DOMAINsvc-scom-das",
    "/DASAccountPassword:P@ssw0rd123!",
    "/DataReaderUser:DOMAINsvc-scom-reader",
    "/DataReaderPassword:P@ssw0rd123!",
    "/DataWriterUser:DOMAINsvc-scom-writer",
    "/DataWriterPassword:P@ssw0rd123!",
    "/WebSiteName:`"Default Web Site`"",
    "/WebConsoleAuthorizationMode:Mixed",
    "/SRSInstance:SQLSERVER01SCOM",
    "/UseLocalSystemActionAccount",
    "/AcceptEndUserLicenseAgreement:1"
)

Start-Process "E:setup.exe" -ArgumentList $setupArgs -Wait -NoNewWindow

After installation completes, open Operations Console from the Start menu or %ProgramFiles%Microsoft System CenterOperations ManagerConsoleMicrosoft.EnterpriseManagement.Monitoring.Console.exe.

Step 4: Import Management Packs

Management Packs (MPs) are XML-based monitoring definitions. Import the essential Windows Server and application MPs immediately after installation:

# Connect to SCOM Management Group via PowerShell
Import-Module OperationsManager
New-SCOMManagementGroupConnection -ComputerName "SCOM-MGMT01"

# Import Windows Server OS Management Pack from the local catalog
# MPs are located in Program FilesMicrosoft System CenterOperations ManagerServerManagement Packs
$mpPath = "C:Program FilesMicrosoft System CenterOperations ManagerServerManagement Packs"

Get-ChildItem -Path $mpPath -Filter "*.mp" | 
    Where-Object { $_.Name -match "Windows.Server|Microsoft.Windows.InternetInformationServices|Microsoft.SQLServer" } |
    ForEach-Object {
        try {
            Import-SCOMManagementPack -FullName $_.FullName
            Write-Host "Imported: $($_.Name)"
        } catch {
            Write-Warning "Failed to import $($_.Name): $_"
        }
    }

# List imported Management Packs
Get-SCOMManagementPack | 
    Where-Object { $_.DisplayName -match "Windows Server|IIS|SQL" } |
    Select-Object DisplayName, Version, Sealed | 
    Format-Table -AutoSize

Step 5: Deploy Agents to Monitored Windows Servers

SCOM agents can be push-installed from the Operations Console or deployed manually. The push method requires WinRM and Administrator access from the Management Server to the target:

# Push-install SCOM agent to a list of servers
$targetServers = @("WS2025-WEB01", "WS2025-DB01", "WS2025-APP01")
$managementServer = "SCOM-MGMT01"

foreach ($server in $targetServers) {
    $installTask = Install-SCOMAgent `
        -DNSHostName $server `
        -PrimaryManagementServer (Get-SCOMManagementServer -Name $managementServer)
    
    Write-Host "Agent install initiated for $server - Task ID: $($installTask.Id)"
}

# Check pending agent approvals (if manual approval is required)
Get-SCOMPendingManagement | Select-Object HostName, AgentVersion, PendingAction | Format-Table -AutoSize

# Approve all pending agents
Get-SCOMPendingManagement | Approve-SCOMPendingManagement

For manual agent installation on a target server, copy the agent MSI from the management server and install:

# On the target server — manual agent install
$agentMsi = "\SCOM-MGMT01AgentInstallMOMAgent.msi"
$mgmtServer = "SCOM-MGMT01"
$mgmtGroup  = "SCOM-MG01"

Start-Process msiexec.exe -ArgumentList @(
    "/i", $agentMsi,
    "/qn",
    "MANAGEMENT_GROUP=$mgmtGroup",
    "MANAGEMENT_SERVER_DNS=$mgmtServer",
    "MANAGEMENT_SERVER_AD_NAME=$mgmtServer",
    "USE_MANUALLY_SPECIFIED_SETTINGS=1"
) -Wait -NoNewWindow

Start-Service -Name "HealthService"
Get-Service -Name "HealthService" | Select-Object Name, Status, StartType

Step 6: Configure SMTP Notification Channel

# Create an SMTP notification channel
$smtpChannel = Add-SCOMNotificationChannel `
    -Name "SMTP-AlertChannel" `
    -SmtpServer "smtp.yourdomain.com" `
    -SmtpPort 587 `
    -FromAddress "[email protected]" `
    -Subject "SCOM Alert: {AlertName} on {ComputerName}"

# Create a subscriber (recipient)
$subscriber = Add-SCOMNotificationSubscriber `
    -Name "OpsTeam" `
    -DeviceList @(
        New-SCOMNotificationRecipientDevice `
            -Name "Email" `
            -Protocol "SMTP" `
            -DeviceAddress "[email protected]" `
            -Channel $smtpChannel
    )

# Create a subscription for Critical and Warning alerts
Add-SCOMNotificationSubscription `
    -Name "CriticalAlerts" `
    -Channel $smtpChannel `
    -Subscriber $subscriber `
    -CriteriaString "Severity = 'Critical' OR Severity = 'Warning'"

Write-Host "SMTP notification channel configured"

Step 7: SCOM Dashboards and Azure Monitor Integration

# Check health state of all monitored Windows computers
Get-SCOMClass -DisplayName "Windows Computer" | 
    Get-SCOMClassInstance | 
    Select-Object DisplayName, HealthState, InMaintenanceMode |
    Sort-Object HealthState | 
    Format-Table -AutoSize

# Get open alerts sorted by severity
Get-SCOMAlert -Criteria "ResolutionState < 255" | 
    Sort-Object Severity -Descending | 
    Select-Object Name, MonitoringObjectDisplayName, Severity, TimeRaised |
    Select-Object -First 20 |
    Format-Table -AutoSize

# Enable Azure Monitor integration (requires Azure Connected Machine Agent)
# Set-SCOMManagementGroupConfiguration -EnableAzureMonitorIntegration $true
# Requires workspace ID and key from Azure Log Analytics

Write-Host "SCOM Operations Console summary complete"

Conclusion

System Center Operations Manager provides enterprise-grade monitoring for Windows Server 2025 environments that require deep integration with Microsoft technologies, Active Directory-based discovery, and intelligent state-based alerting grounded in Microsoft’s own operational knowledge. By completing this setup — SQL prerequisites, Management Server installation, Management Pack imports, agent deployment, and SMTP notifications — you have a fully operational SCOM Management Group. As your environment grows, extend coverage by importing additional Management Packs for SQL Server, IIS, Active Directory, and Hyper-V, and leverage SCOM’s Azure Monitor connector to unify on-premises and cloud monitoring in a single pane of glass.