Deep Dive: Microsoft Configuration Manager (Part 1) – Installation with Best Practices

AI Preview

Is this content worth your time? Use the quick preview to decide.

Welcome to Techaptic!

In the first episode of our Microsoft Configuration Manager Deep Dive series, we install Microsoft Configuration Manager 2509 as a stand-alone Primary Site on Windows Server 2025 with a dedicated SQL Server 2022 backend.

The guide covers the production-oriented baseline behind the installation: infrastructure sizing and disk layout, SQL Server configuration, Active Directory schema preparation and publishing permissions, Remote SQL requirements, Windows prerequisites, ODBC Driver 18, Windows ADK and WinPE, Content Library disk placement, Enhanced HTTP, site system roles, and post-installation validation.

🔗 Helpful Links

Video Tutorial

Used Commands


Installing required Windows features

<#
.SYNOPSIS
Configuration Manager 2509 Site Server Windows Prerequisites Installation Script

.DESCRIPTION
This script installs and validates the Windows Server roles and features required
for a Configuration Manager 2509 Primary Site Server hosting:

- Primary Site
- SMS Provider
- Management Point (MP)
- Distribution Point (DP)

The script installs:
- .NET Framework 3.5
- Remote Differential Compression (RDC)
- Web Server (IIS)
- Background Intelligent Transfer Service (BITS)
- BITS IIS Server Extension
- IIS ISAPI Extensions
- IIS Windows Authentication
- IIS 6 Metabase Compatibility
- IIS 6 WMI Compatibility

The script also verifies that .NET Framework 4.8 or later is already installed.

This script does NOT install or configure:
- WSUS / Software Update Point
- Windows ADK
- Windows PE Add-on
- Microsoft ODBC Driver
- Microsoft Visual C++ Redistributable
- Windows Firewall rules
- Network ports
- PXE / Windows Deployment Services

.NOTES
Author : Techaptic
Warning: This script must be run as Administrator on the Configuration Manager Site Server.
Scope : Configuration Manager 2509 Primary Site + SMS Provider + MP + DP.

Designed for the Techaptic Configuration Manager Deep Dive baseline
using Windows Server 2025.

If .NET Framework 3.5 installation source files aren't available locally,
you can specify the Windows Server media Sources\SxS directory below.

Example:
$NetFx3Source = "D:\Sources\SxS"
#>

# Variables
$NetFx3Source = ""

$RequiredFeatures = @(
@{ Name = "NET-Framework-Core"; DisplayName = ".NET Framework 3.5" },
@{ Name = "RDC"; DisplayName = "Remote Differential Compression" },
@{ Name = "Web-Server"; DisplayName = "Web Server (IIS)" },
@{ Name = "BITS"; DisplayName = "Background Intelligent Transfer Service (BITS)" },
@{ Name = "BITS-IIS-Ext"; DisplayName = "BITS IIS Server Extension" },
@{ Name = "Web-ISAPI-Ext"; DisplayName = "IIS ISAPI Extensions" },
@{ Name = "Web-Windows-Auth"; DisplayName = "IIS Windows Authentication" },
@{ Name = "Web-Metabase"; DisplayName = "IIS 6 Metabase Compatibility" },
@{ Name = "Web-WMI"; DisplayName = "IIS 6 WMI Compatibility" }
)

# Admin Check
if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Host "[ERROR] Please run this script as Administrator." -ForegroundColor Red
exit 1
}

Write-Host "Techaptic - Configuration Manager 2509 Windows Prerequisites Installation Initiated..." -ForegroundColor Cyan
Write-Host "-----------------------------------------------------------------------------------" -ForegroundColor Cyan

# Load Server Manager module
try {
Import-Module ServerManager -ErrorAction Stop
}
catch {
Write-Host "[ERROR] ServerManager module could not be loaded: $($_.Exception.Message)" -ForegroundColor Red
exit 1
}

# 1. Verify .NET Framework 4.8 or Later
Write-Host "Processing: .NET Framework 4.8 or Later Verification... " -NoNewline

try {
$DotNetRegPath = "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
$DotNetRelease = (Get-ItemProperty -Path $DotNetRegPath -Name Release -ErrorAction Stop).Release

if ($DotNetRelease -ge 533320) {
Write-Host "[SUCCESS] (.NET Framework 4.8.1 or later detected - Release: $DotNetRelease)" -ForegroundColor Green
}
elseif ($DotNetRelease -ge 528040) {
Write-Host "[SUCCESS] (.NET Framework 4.8 or later detected - Release: $DotNetRelease)" -ForegroundColor Green
}
else {
Write-Host "[ERROR] (.NET Framework 4.8 or later is required)" -ForegroundColor Red
exit 1
}
}
catch {
Write-Host "[ERROR] (.NET Framework 4.8 or later could not be detected)" -ForegroundColor Red
exit 1
}

# 2. Install Required Windows Features
$RestartRequired = $false
$InstallationFailed = $false

foreach ($FeatureEntry in $RequiredFeatures) {

$FeatureName = $FeatureEntry.Name
$FeatureDisplayName = $FeatureEntry.DisplayName

Write-Host "Processing: $FeatureDisplayName... " -NoNewline

try {
$Feature = Get-WindowsFeature -Name $FeatureName -ErrorAction Stop

if (-not $Feature) {
Write-Host "[ERROR] (Windows feature '$FeatureName' was not found)" -ForegroundColor Red
$InstallationFailed = $true
continue
}

if ($Feature.Installed) {
Write-Host "[SKIPPED] (Already installed)" -ForegroundColor Yellow
continue
}

if ($FeatureName -eq "NET-Framework-Core" -and -not [string]::IsNullOrWhiteSpace($NetFx3Source)) {
$Result = Install-WindowsFeature `
-Name $FeatureName `
-Source $NetFx3Source `
-ErrorAction Stop
}
else {
$Result = Install-WindowsFeature `
-Name $FeatureName `
-ErrorAction Stop
}

$Feature = Get-WindowsFeature -Name $FeatureName -ErrorAction Stop

if ($Feature.Installed) {
Write-Host "[SUCCESS] (Installed)" -ForegroundColor Green

if ($Result.RestartNeeded -eq "Yes") {
$RestartRequired = $true
}
}
else {
Write-Host "[ERROR] (Installation could not be verified)" -ForegroundColor Red
$InstallationFailed = $true
}
}
catch {
Write-Host "[ERROR] ($($_.Exception.Message))" -ForegroundColor Red

if ($FeatureName -eq "NET-Framework-Core" -and [string]::IsNullOrWhiteSpace($NetFx3Source)) {
Write-Host " If .NET Framework 3.5 source files are unavailable, configure `$NetFx3Source with the Windows Server Sources\SxS path." -ForegroundColor Yellow
}

$InstallationFailed = $true
}
}

# 3. Final Validation
Write-Host "Processing: Final Windows Prerequisite Validation... " -NoNewline

try {
$MissingFeatures = @()

foreach ($FeatureEntry in $RequiredFeatures) {
$Feature = Get-WindowsFeature -Name $FeatureEntry.Name -ErrorAction SilentlyContinue

if (-not $Feature -or -not $Feature.Installed) {
$MissingFeatures += $FeatureEntry.DisplayName
}
}

if ($MissingFeatures.Count -eq 0 -and -not $InstallationFailed) {
Write-Host "[SUCCESS] (All required Windows features are installed)" -ForegroundColor Green
}
else {
Write-Host "[ERROR] (One or more required features are missing)" -ForegroundColor Red

foreach ($MissingFeature in $MissingFeatures) {
Write-Host " - $MissingFeature" -ForegroundColor Red
}

$InstallationFailed = $true
}
}
catch {
Write-Host "[ERROR] ($($_.Exception.Message))" -ForegroundColor Red
$InstallationFailed = $true
}

Write-Host "-----------------------------------------------------------------------------------" -ForegroundColor Cyan

if ($InstallationFailed) {
Write-Host "Process completed with errors. Review the output before continuing with Configuration Manager Setup." -ForegroundColor Red
exit 1
}

if ($RestartRequired) {
Write-Host "Process completed successfully. A Windows restart is required before continuing." -ForegroundColor Yellow
}
else {
Write-Host "Process completed successfully. Configuration Manager Windows prerequisites are ready." -ForegroundColor Green
Write-Host "Recommendation: Restart the server before continuing with Configuration Manager Setup." -ForegroundColor Yellow
}

Creating SMS file under C drive

New-Item -Path "C:\NO_SMS_ON_DRIVE.SMS" -ItemType File -Force

Creating login rights for ConfigMgr computer account in SQL Server

CREATE LOGIN [ADE\SRV-CME-01$] FROM WINDOWS;
GO

ALTER SERVER ROLE [sysadmin] ADD MEMBER [ADE\SRV-CME-01$];
GO

Quiz


QUIZ-EN-Deep-Dive-Microsoft-Configuration-Manager-Part-1-Installation-with-Best-Practices-10
  • Question
  • Question
  • Question
  • Question
  • Question
  • Question
  • Question
  • Question
  • Question
  • Question

Downloadable Resources


To download the exclusive resource prepared for this content, you need to subscribe to our free email newsletter. Please fill out the form below; the download link will be sent to your email address. You can unsubscribe at any time.

Microsoft Configuration Manager 2509 Setup Preparations and Best Practice Checklist (.pdf)

Post Download Form (EN)

For detailed information on how your personal data is processed, please review our Privacy Policy.

Full Transcript

Rating

Post Rating (EN)
Scroll to Top