Worklet: Restrict Bandwidth for Windows Updates (Windows 10 2004+)

Hi Automox Community,
We are routinely asked about bandwidth restricted environments and what we can do to avoid saturating internet connections. While there is nothing in the console to limit this, it is possible to govern the endpoints to do this for us. The included Worklet modifies the Windows 10 Bandwidth settings for downloading updates and allows you to specify exactly how much bandwidth a single machine can dedicate to downloading updates.

Evaluation:

$regPathAU = ‘HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization’
if (Test-Path -Path $regPathAU) {
exit 0
} else {
exit 1
}

Remediation:

#############################################
#path
$regPathAU = ‘HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization’
#Test AU path, if path exists then create keys, else create path then create keys
#Bandwidth in Hexadecimal KiloBYTES (64 = Decimal 100KB = .8Mbps)
if (Test-Path -Path $regPathAU) {
‘Name,Value,Type
DOMaxBackgroundDownloadBandwidth,64,DWORD’ |
ConvertFrom-Csv |
Set-ItemProperty -Path $regPathAU -Name { $.Name }
$response = ‘AU Registry key created.’
Write-Output $response
} else {
New-Item -Path $regPathAU -Force
$response = ‘Created AU registry path.’
Write-Output $response
‘Name,Value,Type
DOMaxBackgroundDownloadBandwidth,64,DWORD’ |
ConvertFrom-Csv |
Set-ItemProperty -Path $regPathAU -Name { $
.Name }
$response = ‘AU Registry key created.’
Write-Output $response
}

Pre-worklet execution:

Post-worklet execution:

Its working! (That and the fact it took 15 minutes to download a defender signature file)

Information taken from https://docs.microsoft.com/en-us/windows/deployment/update/waas-delivery-optimization. It is possible to add any other methods of controlling speed (as a % rather than absolute) as well as foreground speed when the focus is on Updates, and the seeding speed (delivery optimization) to other machines in a network.

4 Likes

*To customize this further and optimize it for Automox use, update ’ ‘DOMaxBackgroundDownloadBandwidth’ to ‘DOMaxForegroundDownloadBandwidth’