Microsoft System Center Configuration Manager (SCCM), now part of Microsoft Endpoint Configuration Manager, is the industry standard for deploying and managing software across enterprise Windows environments. This guide covers everything you need to know about SCCM software deployment in 2026 — from application creation to troubleshooting failed deployments.
What is SCCM Software Deployment?
SCCM software deployment allows IT administrators to push applications, scripts and updates to Windows devices across the organisation without user interaction. Deployments can be targeted to device or user collections, scheduled for specific maintenance windows, and monitored centrally from the SCCM console.
Prerequisites
- SCCM Current Branch (2303 or later recommended)
- SQL Server 2019 or later
- At least one Distribution Point configured and accessible
- SCCM client agent installed on target devices
- Boundaries and Boundary Groups correctly configured
- Content distributed to Distribution Points
Step 1 — Verify Your SCCM Environment
Before creating any deployment, verify your environment is healthy. In the SCCM console go to Monitoring → System Status → Site Status. All components should show green. Check the following logs on the site server if you see any errors:
SiteComp.log— site component issuesDistmgr.log— distribution point issuesSMSProv.log— SMS provider issues
Step 2 — Create the Application
In the SCCM console navigate to Software Library → Application Management → Applications and click Create Application.
MSI Application
- Select Automatically detect information about this application from installation files
- Set type to Windows Installer (*.msi file)
- Browse to your MSI file on a UNC path — SCCM will auto-populate the application name, version and publisher
- Review and adjust the installation command if needed — default is
msiexec /i "application.msi" /q - Complete the wizard and click Close
EXE / Script Application
- Select Manually specify the application information
- Enter the application name, publisher and version
- On the Deployment Types tab click Add and select Script Installer
- Set the installation program — for example:
setup.exe /silent /norestart - Set the uninstall program if required
- Configure the detection method (see below)
Step 3 — Configure the Detection Method
The detection method tells SCCM whether the application is already installed. Without a correct detection method SCCM will attempt to reinstall on every policy refresh. Common detection methods:
| Method | Use Case | Example |
|---|---|---|
| Registry Key | MSI and most EXE installers | HKLM\SOFTWARE\Notepad++ |
| File System | Applications that create a specific file | C:\Program Files\App\app.exe version 1.0 |
| MSI Product Code | MSI packages | {product-guid} |
| Windows Installer | MSI packages with known product code | Automatic from MSI metadata |
Step 4 — Distribute Content to Distribution Points
- Right-click the application and select Distribute Content
- Click Add → Distribution Point and select your DPs
- Monitor distribution progress at Monitoring → Distribution Status → Content Status
- Wait until all DPs show Success before deploying
Step 5 — Deploy the Application
- Right-click the application and select Deploy
- Select your target Collection — device or user collection
- Set Action to Install and Purpose to Required (mandatory) or Available (optional)
- Configure the Scheduling — set a deadline for required deployments
- Configure User Experience — whether to show notifications and allow users to defer
- On the Distribution Points tab set the deployment options
- Complete the wizard
Step 6 — Monitor the Deployment
Monitor deployment progress at Monitoring → Deployments. Select your deployment to see a summary of success, in progress, error and unknown states. For detailed per-device status go to the Asset Details tab.
Key log files for troubleshooting on the client:
AppDiscovery.log— detection method resultsAppEnforce.log— installation results and errorsCAS.log— content download from DPDataTransferService.log— content transfer issuesPolicyAgent.log— policy download issues
PowerShell — Trigger SCCM Policy and Deployment
# Force machine policy retrieval
Invoke-WmiMethod -Namespace root\ccm -Class SMS_Client -Name TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000021}"
# Force application deployment evaluation
Invoke-WmiMethod -Namespace root\ccm -Class SMS_Client -Name TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000121}"
# Check pending deployments via PowerShell
Get-WmiObject -Namespace root\ccm\clientsdk -Class CCM_Application | Select Name, InstallState, ResolvedStateCommon SCCM Deployment Errors and Fixes
| Error | Cause | Fix |
|---|---|---|
| 0x87D00324 | Application not detected after install | Check detection method — registry key or file path incorrect |
| 0x80070643 | MSI installation failure | Check AppEnforce.log — usually a prerequisite or conflict issue |
| 0x87D01201 | Content not found on DP | Redistribute content to distribution point |
| 0x87D00267 | Deployment deadline passed | Update deadline in deployment properties |
| No policy received | Client not in correct boundary or collection | Check boundaries and verify client is in target collection |
Related SCCM Guides
- CCMClean — Remove and Repair the SCCM Client
- Adobe Acrobat Reader Silent Installation via SCCM
- Google Chrome MSI Enterprise Deployment
- Firefox MSI Enterprise Deployment
- Java Enterprise Deployment via SCCM
- Java Client Updates Deployment Using SCCM
- Deploy Microsoft Store Apps via SCCM
- Deploy Dell BIOS Updates Using SCCM
Frequently Asked Questions
What is the difference between Required and Available deployments in SCCM?
A Required deployment installs automatically at the specified deadline without user interaction. An Available deployment appears in Software Centre and the user can choose when to install it. Use Required for mandatory software and security updates, Available for optional software.
How do I deploy software to a specific computer in SCCM?
Create a device collection containing just that computer, or use an existing collection if the device is already a member. Target your deployment at that collection. You can also right-click a device in All Systems and select Install Application for an immediate one-off deployment.
Why is my SCCM deployment showing as Unknown?
Unknown status means SCCM has not yet received a status message from the client. This usually means the client has not yet downloaded the policy, the client is offline, or there is a communication issue between the client and the management point. Check PolicyAgent.log on the client.
How long does it take for SCCM to deploy software after the deadline?
Once the deadline passes SCCM will attempt installation within the next policy evaluation cycle, typically within 60 minutes. You can force immediate installation by running Machine Policy Retrieval from the Configuration Manager control panel on the client or using PowerShell to trigger the schedule.
Can I deploy software to users rather than devices in SCCM?
Yes — SCCM supports both device-based and user-based deployments. User-based deployments follow the user to any device they log into, provided User Device Affinity is configured. Device-based deployments install on the machine regardless of who is logged in.
What is the difference between SCCM and Intune for software deployment?
SCCM is an on-premises solution best suited for traditional domain-joined environments with complex deployment requirements. Intune is cloud-based and ideal for modern management of Azure AD-joined and hybrid-joined devices. Microsoft Endpoint Configuration Manager can manage both via co-management, giving you the best of both worlds.
About The Author
Discover more from TechyGeeksHome
Subscribe to get the latest posts sent to your email.
