Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
I’ve recently spent some time with a customer deploying a large amount of Distribution Points in their ConfigMgr 2012 R2 hierarchy. They were finding themselves running into bottlenecks during the deployment, and with the help of the ConfigMgr Product Group, a new Site Control File property modification is now being supported.
Distribution point installations or upgrades may take longer than expected in System Center 2012 Configuration Manager
https://support.microsoft.com/kb/3025353
The DPUpgradeThreadLimit property by default is set to five. The property should be carefully increased in environments where many Distribution Points are being installed/upgraded in parallel.
As the property is not visible by default, we need to create and set the new property. This will add the property and set it to the $newValue value across all of your Sites.
This script is provided as-is and provides no warranties. Please thoroughly test in a lab environment, and see the Configuration Manager SDK for more information.
| 001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054 | param([string] $siteServerName=".",[int] $newValue=10)$providerLocation = gcim -ComputerName $siteServerName -Namespace root\sms SMS_ProviderLocation -filter "ProviderForLocalSite='True'"$providerMachine = $providerLocation.Machine$sitecode = $providerLocation.SiteCode$providerNamespace = "root\sms\site_" + $sitecode$siteFilter = "SiteCode='" + $sitecode + "'"$distmgrConfig = gcim -ComputerName $providerMachine -Namespace $providerNamespace SMS_SCI_Component | ? {$_.ComponentName -eq "SMS_DISTRIBUTION_MANAGER"}ForEach ($distMgrObject in $distmgrConfig) { $properties = $distMgrObject | select -ExpandProperty Props $threadLimitProperty = $properties | ? {$_.PropertyName -eq "DPUpgradeThreadLimit"} if($threadLimitProperty -eq $null) { write-host "Previous setting for DPUpgradeThreadLimit was using default, updating to $newValue" $newProperty = New-CimInstance -ComputerName $providerMachine -Namespace $providerNamespace -ClassName SMS_EmbeddedProperty $newProperty.PropertyName = "DPUpgradeThreadLimit" $newProperty.Value = $newValue $newPropertyList = @() $properties | % { $newPropertyList += $_} $newPropertyList += $newProperty $distMgrObject.Props = $newPropertyList scim $distMgrObject } else { write-host "Previous setting for $($DistMgrObject.SiteCode) DPUpgradeThreadLimit was $($threadLimitProperty.Value), updating to $newValue" $newProperty.PropertyName = "DPUpgradeThreadLimit" $newProperty.Value = $newValue $newPropertyList = @() $properties | % { if($_.PropertyName -eq "DPUpgradeThreadLimit") { $_.Value = $newValue $newPropertyList += $_ } else { $newPropertyList += $_ } } $distMgrObject.Props = $newPropertyList scim $distMgrObject }} |