I wrote the following script to update the required settings instead of having to do this manually. The script also makes a change to the ‘ApBlockSize’ setting for WDS, in our environment, where the server is on a 1GB switch port and the clients are on a remote segment on a 100MB switch port, this setting significantly reduced packet fragmentation and increased the speed of the multicast download. I have it in a package and advertise the script to servers hosting multicast enabled distribution points.
# ------------------------------------------------------------------
# Purpose: Applies some registry settings, mostly related to the
# problem identified in KB2419357. It also makes a change to WDS
# network settings to improvea packet fragmentation issue identified
# during testing of multicast with SCCM
#
# Usage : powershell.exe -file .\wdsconfig.ps1
#
# Version 1.0
#
# Maintenance History
# ------------------------------------------------------------------
# Version - Date - Change - Author
# ------------------------------------------------------------------
# 1.0 21/11/12 Script Created JustAnotherTechnicalBlog
#
# ------------------------------------------------------------------
# Set variables
$WDSRegRoot = "HKLM:System\CurrentControlSet\Services\WDSServer"
$WDSService = "Windows Deployment Services Server"
# Write the required SCCM options to the WDS configuration settings
# to the registry
If (Test-Path $WDSRegRoot\Parameters)
{
Set-ItemProperty -Path $WDSRegRoot\Parameters -Name McStartAddr `
-Value "239.10.10.10"
Set-ItemProperty -Path $WDSRegRoot\Parameters -Name McEndAddr `
-Value "239.10.10.10"
Set-ItemProperty -Path $WDSRegRoot\Parameters -Name UdpStartPort `
-Value "63000"
Set-ItemProperty -Path $WDSRegRoot\Parameters -Name UdpEndPort `
-Value "64000"
}
# Tune the network settings for the WDS server to reduce likelihood
# of packet fragmentation
If (Test-Path $WDSRegRoot\Providers\WDSMC\Protocol)
{
Set-ItemProperty -Path $WDSRegRoot\Providers\WDSMC\Protocol `
-Name ApBlockSize `
-Value 1385
}
# Restart the Windows Deployment Services Server service
if (Get-Service $WDSService -ea SilentlyContinue)
{
Restart-Service -displayname $WDSService
}