Programmatically Throttling IIS
Ran across an issue where I needed to throttle WSUS bandwidth coming back to a server. While WUS uses BITS, each machine knows of it’s network availability and utilization but has no knowledge of the network congestion to the server. So, throttling IIS allows us to keep update traffic low and allows other traffic in and out of the site. Here’s some VBScript
'Connect to local default website Set IISConn = GetObject("IIS://localhost/W3SVC/1") 'Define kilobits for easier number manipulation kBits = 1024 'Define the maximum bandwidth when throttled minBandwidth = 10240 * kBits minConnections = 300 'Define the unthrottled bandwidth value maxBandwidth = -1 maxConnections = -1 'WScript.Echo IISConn.MaxBandwidth 'WScript.Echo IISConn.MaxConnections 'Detect current bandwidth setting and change appropriately If IISConn.MaxBandwidth = minBandwidth Then IISConn.Put "MaxBandwidth", maxBandwith Else IISConn.Put "MaxBandwidth", minBandwidth End If 'Write the value to the metadata IISConn.SetInfo
Two things of note…
1) Change the IISConn path to which ever service is running the website you want to throttle.
2) The values of the bandwidth entered to be multiplied should already be by 1024 (10 Mbps x 1024 = 10240 as listed above).