DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
FREEDOM251

Freedom251 › Blog › Automation

SCCM Infrastructure Monitoring Without SCOM: Build a PowerShell Automation Script

By Freedom251 Team · · 11 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Yes. You can monitor Configuration Manager (SCCM) infrastructure without SCOM/OpsMgr by running a PowerShell health-collection script from the Configuration Manager site drive. The script should verify site connectivity, enumerate site-system roles, inspect Windows and ConfigMgr signals, calculate stale client data from your configured intervals, and emit one structured Pass, Warn, or Fail result per check. Schedule that output with Task Scheduler or your existing automation runner and forward JSON, CSV, or event records to the alerting system you already use.

This approach is intentionally lighter than SCOM. It gives you transparent, reviewable checks for ConfigMgr roles and client freshness, but it does not recreate SCOM management groups, management packs, dependency maps, or cross-server event correlation.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What is SCCM infrastructure monitoring without SCOM?

It is a ConfigMgr-aware PowerShell health check rather than a ping script or an Operations Manager deployment. The monitor loads the ConfigurationManager module, changes to the site drive, queries the hierarchy, checks expected site-system roles, reads client-status intervals, and evaluates freshness and operating-system evidence.

Each observation should become a record with a consistent schema:

#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter | 4Pack Type C Female to A Male Cable Converter for Apple Duo 17 16 15 14 Plus,iWatch Watch 12 11 10,iPad 9 8 Air,Airpods 5 4
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
  • Status: Pass, Warn, or Fail.
  • Timestamp: preferably UTC, with the local time zone recorded separately if operators work across regions.
  • Server and role: the site system, management point, distribution point, software update point, or other role being evaluated.
  • Evidence: the value observed, the threshold used, and the command or source that produced it.
  • Remediation hint: a safe next action, such as checking a component log or validating a service.

Keeping detection separate from remediation is important. A health check should not restart services, change site configuration, or redistribute content unless an operator explicitly enables a controlled action.

What can a ConfigMgr-only monitor check?

A useful monitor combines four layers. A server that answers a ping can still have a failed role, a stopped service, or clients that have stopped reporting.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Site and provider connectivity

Start by connecting to the correct site code and provider machine. Querying the site object confirms that the module is using the expected hierarchy rather than merely reaching a Windows host. Record the site code, site name, provider or server name, and imported module version on every run.

Site-system roles

Enumerate site-system servers and the roles installed on each one. At minimum, validate the roles your environment depends on: management points, distribution points, and software update points. You can extend the same pattern to reporting service points, service connection points, state migration points, and other roles used by your hierarchy.

Role presence is only the first test. Where the environment permits, pair it with role-specific responsiveness, Windows service state, component status, event-log evidence, and file or database freshness. A role can be registered correctly while its underlying service or data path is unhealthy.

Client-data freshness

ConfigMgr exposes collection intervals for client policy, hardware inventory, heartbeat discovery, software inventory, status messages, and history cleanup. Read the configured intervals rather than hard-coding a universal value. A device becomes stale when its last relevant signal is older than the interval allowed by your policy, optionally multiplied by a warning factor.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the conditions distinct. A stale heartbeat is not the same problem as a stale hardware inventory scan, and missing status messages do not prove that a management point is down. Report each signal separately so operators can choose the correct investigation path.

Rank #2
Sale
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter | USB C Dongle with 90W Max Power Delivery, 3×5Gbps USB A Data Ports, for MacBook, Dell, and More (Charger Not Included)
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

Windows and evidence signals

Correlate ConfigMgr data with Windows service state, recent event-log entries, and role-specific files or database timestamps when those sources are available. Treat a timeout, permission error, or missing telemetry as Unknown or Warn, not as a confirmed component failure. This distinction prevents a monitoring outage from creating a false incident.

What do you need before running the script?

Prepare the execution host and account before writing checks.

  • Install the Configuration Manager console components and the ConfigurationManager PowerShell module that matches the site environment.
  • Use Windows PowerShell 5.1 for the broadest current-branch compatibility. PowerShell 7 supports the cmdlet library, but Microsoft documents compatibility exceptions, including several package, driver, task-sequence, and reporting-service-point cmdlets.
  • Run from the Configuration Manager site drive. The site-system and role cmdlets are designed to run in that provider context.
  • Grant the monitoring account only the read permissions required by the checks. Add local rights on monitored servers only when a specific service, event-log, file, or database test needs them.
  • Define maintenance windows and suppression rules in the surrounding scheduler or alerting system so planned role work does not become an outage.
  • Pin or record the module version. Microsoft warns that an older module can be imported from another folder, producing confusing behavior when multiple console versions exist.

How do you connect safely to the ConfigMgr site drive?

Use an explicit site code and provider name, then validate the connection with a site query before collecting other data.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Open the Configuration Manager console installation’s PowerShell environment, or import the module by its full path when your automation host has several versions installed.
  2. Create or select the CMSite provider drive for the target site.
  3. Change location to that drive before calling site, role, or client cmdlets.
  4. Run Get-CMSite and fail the run if it returns no site or a site code different from the configured value.
  5. Record the module version, site code, site name, provider server, and collection timestamp in the output.

The following starter script shows the control flow. Property names for role and client activity objects can vary by ConfigMgr current-branch release, so inspect the objects in your environment and adjust the marked mappings rather than assuming that a property is available everywhere.

param(
    [Parameter(Mandatory)] [string]$SiteCode,
    [Parameter(Mandatory)] [string]$ProviderMachineName,
    [string]$OutputPath = "C:ProgramDataConfigMgrMonitorresults.json",
    [double]$WarningMultiplier = 1.5
)

$ErrorActionPreference = 'Stop'
Import-Module ConfigurationManager -ErrorAction Stop

$drive = "$SiteCode`:"
if (-not (Get-PSDrive -Name $SiteCode -PSProvider CMSite -ErrorAction SilentlyContinue)) {
    New-PSDrive -Name $SiteCode -PSProvider CMSite -Root $ProviderMachineName | Out-Null
}
Set-Location $drive

$runUtc = (Get-Date).ToUniversalTime()
$results = [System.Collections.Generic.List[object]]::new()
function Add-Check($name,$status,$server,$role,$evidence,$hint) {
    $results.Add([pscustomobject]@{
        timestampUtc = $runUtc.ToString('o'); check = $name; status = $status
        server = $server; role = $role; evidence = $evidence; remediation = $hint
    })
}

try {
    $site = Get-CMSite
    if (-not $site) { throw 'Get-CMSite returned no site.' }
    Add-Check 'Site query' 'Pass' $ProviderMachineName 'Site' 
        ("SiteCode={0}; SiteName={1}" -f $site.SiteCode,$site.SiteName) 
        'Verify the provider and site-drive configuration if this fails.'
} catch {
    Add-Check 'Site query' 'Fail' $ProviderMachineName 'Site' $_.Exception.Message 
        'Check provider reachability, module version, and account permissions.'
}

try {
    $systems = @(Get-CMSiteSystemServer)
    foreach ($system in $systems) {
        $name = $system.NetworkOSPath
        if (-not $name) { $name = $system.ServerName }
        # Confirm the role property used by your current branch:
        $roleValues = @($system.RoleNames, $system.RoleName) | Where-Object { $_ }
        if (-not $roleValues) { $roleValues = @('role data not exposed by this object') }
        Add-Check 'Site-system enumeration' 'Pass' $name ($roleValues -join ',') 
            'Site-system object returned' 'Review role-specific checks for expected roles.'
    }
} catch {
    Add-Check 'Site-system enumeration' 'Fail' $ProviderMachineName 'Site system' $_.Exception.Message 
        'Verify site-drive access and the account rights needed to enumerate servers.'
}

# Optional role-specific checks. Enable only for roles deployed in this site.
# Examples include Get-CMManagementPoint, Get-CMDistributionPoint, and
# Get-CMSoftwareUpdatePoint; record timeout and empty results separately.

try {
    $settings = Get-CMClientStatusSetting
    Add-Check 'Client-status settings' 'Pass' $ProviderMachineName 'Client status' 
        ($settings | Out-String).Trim() 'Use these intervals as freshness thresholds.'
} catch {
    Add-Check 'Client-status settings' 'Warn' $ProviderMachineName 'Client status' $_.Exception.Message 
        'Read the configured intervals through the console or supported site interface.'
}

$folder = Split-Path -Parent $OutputPath
New-Item -ItemType Directory -Path $folder -Force | Out-Null
$results | ConvertTo-Json -Depth 8 | Set-Content -Path $OutputPath -Encoding UTF8
$results | ConvertTo-Json -Depth 8

The script deliberately emits a warning when client-status settings cannot be read. Add your environment’s client query after that section, map each last-policy, heartbeat, inventory, and status-message timestamp, and compare it with the corresponding configured interval.

How should you test management points, distribution points, and software update points?

Use role-specific cmdlets and checks instead of treating all site systems as identical.

Management points

Confirm that the expected management-point object exists, then test the response path used by your clients. Combine the result with relevant Windows service and component evidence. An empty or timed-out query should identify whether the issue is a missing role, an access problem, or an unresponsive endpoint.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter | 85W Max PD, 2 USB 3.0 & 1 USBC Data Ports, SD/TF Card Reader, for Laptops/Mac and Other Type C Devices (Charger Not Included)
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Distribution points

Enumerate distribution points and verify the role is present on every server expected to host content. If your environment exposes package or content-status data to the script, check for recent failures and stale distribution records. Do not label a distribution point failed solely because one content item is delayed; report content freshness separately from role availability.

Software update points

Check that each expected software update point is registered and that its synchronization or component evidence is recent enough for your update policy. Keep synchronization failures distinct from client scan failures: the former is a site-system or upstream update issue, while the latter can affect only a subset of clients.

Microsoft provides role-specific PowerShell cmdlets for these and other site-system roles. Use the cmdlet output as evidence, then add Windows-level checks only where they improve diagnosis.

How do you calculate stale client conditions?

Read the configured client-status intervals and compare each device’s last signal to the current UTC time. A simple policy is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Pass: last signal is no older than the configured interval.
  • Warn: last signal exceeds the interval but is within the interval multiplied by your warning factor.
  • Fail: last signal exceeds the warning boundary, or the required timestamp is missing after a successful client query.
  • Unknown: the query timed out, permission was denied, or the data source was unavailable.

Apply the calculation independently to policy requests, heartbeat discovery, hardware inventory, software inventory, and status messages. Store the interval and the observed age in the result so a later operator can reproduce the decision. Thresholds must remain configurable because organizations deliberately choose different inventory and heartbeat cadences.

How do you schedule and alert on the results?

Task Scheduler is sufficient for a single site; an existing automation runner is preferable when you already centralize credentials, logs, and alert routing.

  1. Save the script in a locked-down directory readable by the monitoring account.
  2. In Task Scheduler, choose Create Task, set the account and trigger, and enable Run whether user is logged on or not.
  3. Use powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:PathConfigMgrMonitor.ps1 -SiteCode ABC -ProviderMachineName cmprov01 as the action. Prefer a signed script and your organization’s execution-policy standard in production.
  4. Write JSON to a durable path and rotate or forward it. CSV is useful for scheduled reports; event records are useful when your alerting platform consumes Windows events.
  5. Alert on state transitions and repeated failures rather than every individual warning. Include the check name, server, role, evidence, and remediation hint in the notification.

Keep the scheduler’s run history separate from the health payload. A failed PowerShell process is an execution failure; a JSON record containing status=Fail is a detected infrastructure condition.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray | Data transfer & Fast charging for MacBook, iPhone 17/16/15, iPad, Samsung Galaxy, Apple Watch
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

What are the trade-offs versus SCOM?

A ConfigMgr-only script is appropriate when you need lightweight, transparent checks or integration with an existing alerting stack. It is not a replacement for SCOM’s management-group, management-pack, permission, and cross-server event-correlation model.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Capability ConfigMgr PowerShell monitor SCOM/OpsMgr
Deployment burden Script, module, scheduled task or runner Management-group infrastructure, agents or management configuration, and management packs
ConfigMgr role awareness Directly query site and role cmdlets; checks are explicit Depends on the installed management packs and configured discoveries
Cross-server correlation You design the correlation and thresholds Built-in operational model for broad event and dependency correlation
Alert output JSON, CSV, events, or any endpoint your runner supports Operations Manager consoles, connectors, and configured notifications
Remediation Keep it read-only unless an operator enables controlled actions Can use configured responses and workflows, with their own governance requirements
Best fit Focused checks, scheduled reports, and teams avoiding SCOM dependencies Organizations needing centralized, multi-platform monitoring and correlation

Choose based on coverage, correlation depth, privilege and deployment effort, scheduling, alert integration, and whether automated remediation is required. Do not claim that a script provides SCOM-equivalent coverage simply because both systems can raise an alert.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Which PowerShell and ConfigMgr compatibility problems should you expect?

Wrong module imported

Multiple console or module folders can cause an older ConfigurationManager module to load first. Log the imported module path and version on every run, and pin the path in production when your change-control process allows it.

PowerShell 7 command gaps

PowerShell 7 is supported for the cmdlet library, but not every cmdlet is compatible. Test the complete script under Windows PowerShell 5.1 and PowerShell 7 separately; do not infer compatibility from a successful module import.

Site-drive and provider errors

A script started in a normal filesystem directory may fail even though the console works. Create the CMSite drive, set location to it, and record the provider machine used. A timeout should be reported as an unavailable data source, not silently converted to a role failure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Permission and maintenance noise

Use a least-privilege account and test each read operation independently. Add maintenance-window suppression outside the script, or pass an explicit maintenance flag that changes alerting without hiding the raw evidence.

Can ConfigMgr monitor itself without any other Microsoft monitoring product?

It can monitor many of its own site and client signals through PowerShell, but the result is an automation layer you design, not a built-in replacement for every monitoring product. ConfigMgr, its PowerShell module, CMPivot, and Run PowerShell Scripts are separate product surfaces with different permissions and data paths.

Best Value
Sale
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Microsoft also documents an assessment workflow that used Add-SCCMAssessmentTask. The Log Analytics agent used by older ingestion designs was retired on August 31, 2024; continued ingestion requires migration to the Azure Monitor agent. Treat that assessment path as a separate deployment decision from the read-only health script.

What should you do when a check fails?

Follow the evidence, not the alert title.

  1. Confirm the script ran with the expected module version, site code, provider, and account.
  2. Classify the result as a confirmed failure, stale data, timeout, permission error, or maintenance condition.
  3. Use the role named in the result to inspect its ConfigMgr component status, Windows services, event logs, and relevant file or database freshness.
  4. Check whether the condition affects one role, one site system, a client collection, or the whole hierarchy.
  5. After remediation, wait for a new observation and verify that the status transitions back to Pass; do not clear an alert merely because a service was restarted.

This workflow keeps the monitor useful during partial outages and prevents an inaccessible data source from being mistaken for proof that every dependent role is broken.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently Asked Questions

Can I run the SCCM monitoring script from an administrative workstation?

Yes, provided the workstation has the matching Configuration Manager console and PowerShell module, network access to the site provider and monitored systems, and an account with the required read permissions. Running from a workstation can reduce server changes, but it also makes that workstation a scheduling and credential dependency.

How can I prevent duplicate alerts when several checks fail together?

Assign a stable check identifier and parent dependency to each result, then let the alerting layer group failures by site system and time window. For example, suppress downstream client-freshness alerts while the management-point data source is explicitly marked unavailable, while retaining the raw records for diagnosis.

Should the script restart a stopped ConfigMgr service automatically?

Not by default. Automatic restarts can hide a recurring failure or interfere with maintenance; keep the collector read-only and implement any restart as a separately approved action with its own logging, cooldown, and rollback rules.

How do I handle clients that never report inventory by design?

Exclude approved exceptions before evaluating freshness, using a documented collection, device property, or maintenance rule. Keep excluded devices visible in reporting with an explicit exception reason so a broad exclusion cannot conceal an unmanaged population.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

AutomationConfiguration Managerinfrastructure monitoringPowerShellSCCMSite Health

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.