Fehlende Rollen, vergessene Firewall-Ports, hunderte Grenzen von Hand anlegen – drei Aufgaben rund um ConfigMgr, die sich hervorragend per PowerShell automatisieren lassen.
Jeder, der Configuration Manager mehrfach installiert hat, kennt das Problem: Irgendeine Voraussetzung fehlt immer. In unserer Community haben wir deshalb Skripte gesammelt, die wiederkehrende Aufgaben vereinheitlichen. Drei davon haben sich besonders bewährt.
1. Voraussetzungen für Site-Systeme installieren
Statt Rollen und Features per Hand im Server-Manager anzuklicken, installiert ein Einzeiler alles Nötige. Für einen Verteilungspunkt bzw. eine Secondary Site sieht das beispielsweise so aus:
Install-WindowsFeature -Name BITS, BITS-IIS-Ext, RDC, `
Web-Server, Web-ISAPI-Ext, Web-Windows-Auth, Web-Basic-Auth, `
Web-Metabase, Web-WMI, Web-Mgmt-Console, Web-Scripting-Tools -IncludeManagementTools
Die genaue Liste hängt von den Rollen ab (Management Point, Distribution Point, Software Update Point …). Community-Werkzeuge wie der ConfigMgr Prerequisites Tool von Nickolaj Andersen nehmen einem diese Recherche ab.
2. Secondary Site vorbereiten
Eine Secondary Site braucht SQL Server (Express genügt) und Berechtigungen für den Primary Site Server. Die Vorbereitung lässt sich vollständig skripten:
# SQL Server Express unbeaufsichtigt installieren (Dienstkonto per gMSA oder sicher übergeben)
.\SQLEXPR\setup.exe /Q /ACTION=Install /IACCEPTSQLSERVERLICENSETERMS `
/FEATURES=SQLEngine /INSTANCENAME=CONFIGMGRSEC `
/SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS /TCPENABLED=1 `
/SQLSYSADMINACCOUNTS="BUILTIN\Administrators"
# Computerkonto des Primary Site Servers als lokalen Administrator hinzufügen
Add-LocalGroupMember -Group 'Administratoren' -Member 'CONTOSO\PRIMARY01$'
# Benötigte Firewall-Regeln
New-NetFirewallRule -DisplayName 'ConfigMgr SQL' -Protocol TCP -LocalPort 1433,4022 -Action Allow
New-NetFirewallRule -DisplayName 'ConfigMgr PXE (UDP)' -Protocol UDP -LocalPort 67,68,69,4011 -Action Allow
Achtung
Schreiben Sie Kennwörter von Dienstkonten niemals im Klartext in Skripte. Verwenden Sie Group Managed Service Accounts, virtuelle Dienstkonten oder übergeben Sie Anmeldeinformationen zur Laufzeit. Der Gruppenname „Administratoren“ ist sprachabhängig – auf englischen Systemen heißt er „Administrators“.
Die eigentliche Installation der Secondary Site erfolgt anschließend aus der Konsole. Da SQL bereits installiert ist, werden nur noch die ConfigMgr-Binärdateien übertragen – auch diese lassen sich vorab lokal ablegen.
3. Grenzen (Boundaries) aus einer CSV-Datei anlegen
In größeren Umgebungen mit vielen Standorten ist das manuelle Anlegen von Grenzen fehleranfällig. Mit dem ConfigMgr-PowerShell-Modul genügt eine gepflegte CSV-Datei:
Name;Typ;Wert;Gruppe
Aichach LAN;IPSubnet;10.10.1.0/24;Standort Aichach
München LAN;IPRange;10.20.0.1-10.20.3.254;Standort München
Import-Csv .\boundaries.csv -Delimiter ';' | ForEach-Object {
$b = New-CMBoundary -Name $_.Name -Type $_.Typ -Value $_.Wert
if (-not (Get-CMBoundaryGroup -Name $_.Gruppe)) { New-CMBoundaryGroup -Name $_.Gruppe | Out-Null }
Add-CMBoundaryToGroup -BoundaryId $b.BoundaryID -BoundaryGroupName $_.Gruppe
}
Heute
Die ursprünglichen Skripte stammen aus der Zeit von ConfigMgr 2012 R2 und Windows Server 2008 R2 (u. a. mit dem veralteten netsh firewall). Die hier gezeigten Varianten nutzen aktuelle Cmdlets. Prüfen Sie die Feature-Liste stets gegen die Voraussetzungen Ihrer Configuration-Manager-Version; Secondary Sites sind in vielen modernen Umgebungen zugunsten von Verteilungspunkten mit Pull- oder Peer-Cache-Funktion verzichtbar.