Aktivieren von inkrementellen Updates

Einer des wohl schönsten Neuerungen von SCCM 2012 SP1 ist die PowerShell-Integration. Trotz allem fehlen an der ein oder anderen Stelle noch Optionen, um wirklich alles per ConfigMgr Cmdlets steuern zu können. So können inkrementelle Updates für Collections nicht per Set-CMDeviceCollection cmdlet einfach aktiviert werden.

SCCM 2012 SP1 Device Collection Wizard
SCCM 2012 SP1 Device Collection Wizard

Mit Hilfe von inkrementellen Updates wird immer nur das Delta erfasst und in die jeweilige Collection aufgenommenen. Angenommen wir haben seit ein paar Minuten neue Computerobjekte durch den Active Directory Group Discovery Prozess erfasst und damit in der Site Datenbank. So können wir durch setzen des Hakens periodisch die neuen Objekte in die Collection aufgenommen bekommen. Wenn wir den Haken nicht setzen, werden die Objekte erst bei einem geplanten vollständigen Update erfasst. Was heißt nun periodisch?

SCCM 2012 SP1 Incremental Update Period
SCCM 2012 SP1 Incremental Update Period

Periodisch heißt standardmäßig alle fünf Minuten.

Was ist aber nun, wenn wir mehrer hundert oder gar tausend Collections in unserer SCCM-Umgebung haben? Wie können wir diesen Haken dann bei allen Collections setzen bzw. sicherstellen, das der Haken für inkrementelle Updates bereits gesetzt wurde? Wir nehmen die PowerShell und arbeiten alle Collections mit einer ForEach-Object-Schleife ab. 10 Minuten anstatt 10 Tage exzessive Mausklickerei. 😉

Um den Haken für alle Device Collections zu setzen habe ich folgendes Script geschrieben:

##################################
#Enable Incremental Updates
#SCCM 2012 SP1 Collections
#V1.0 2013-05-08 Erik Kleefeldt
#PowerShell x86 verwenden!
#Set-ExecutionPolicy Unrestricted -Force needs to run first
##################################
#Basic Input
#Siteserver,Sitecode,Install Dir for the Admin UI (not CM12 install dir)
 $siteserver='WS12APP1'
 $sitecode='F01:' #Don't forget the colon!
 $cmmodule='C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1'
#Import CM2012-Module
 Import-Module $cmmodule
 Set-Location $sitecode
#Acitvate each DeviceCollection for incremental Updates if it's not already active 
 Get-CMDeviceCollection | ForEach-Object {
 $temp=[String]::format("\\{0}\root\sms\site_{1}SMS_Collection.CollectionID='{2}'",$siteserver,$sitecode,$_.CollectionID)
 $a=[wmi] $temp 
 if ($a.IsBuiltIn -ne $true) {
 $a.RefreshType=6
 $a.put() > $null
 write-host "Update for" $a.Name "is now activated." -foregroundcolor green
 }
 }

write-host "Incremental Updates for all device collections is now enabled!" -foregroundcolor yellow
...

In diesem Script werden nur Device Collections modifiziert. Damit wir auch User Collections genauso anpassen können, muss lediglich das ConfigMgr Cmdlet “Get-CMDeviceCollection gegen Get-CMUserCollection ausgetauscht werden.

#Acitvate each UserCollection for incremental Updates if it's not already active 
 Get-CMUserCollection | ForEach-Object {
 $temp=[String]::format("\\{0}\root\sms\site_{1}SMS_Collection.CollectionID='{2}'",$siteserver,$sitecode,$_.CollectionID)
 $a=[wmi] $temp 
 if ($a.IsBuiltIn -ne $true) {
 $a.RefreshType=6
 $a.put() > $null
 write-host "Update for" $a.Name "is now activated." -foregroundcolor green
 }
 }

write-host "Incremental Updates for all user collections is now enabled!" -foregroundcolor yellow
C:

Das war’s auch schon!

SCCM 2012 SP1 Incremental Update activated
SCCM 2012 SP1 Incremental Update activated

Comment / Kommentar verfassen

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.