Increase WSUS 3 updates download speed


Hello there,

I’ve been (and I think most of you did) through the WSUS configuration and waiting for days for the download to finish.

That’s because the the BITS technologies that limits that foreground download, and enable the background downloads – to least impact the bandwidth.

We used to use this command in WSUS 2.0

WsusDebugTool.exe /tool:setforegrounddownload

But in WSUS 3.0 it’s not applicable, and if you tried to execute it, it will get you with the below error

Running... SetForegroundDownload

Error processing node: SetForegroundDownload

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

   at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)

   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)

   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)

   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)

   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)

   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)

   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)

   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)

   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)

  at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)

   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)

   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)

   at System.Data.SqlClient.SqlConnection.Open()

   at Microsoft.SoftwareDistribution.Tools.SqlHandler.HandleQuery(TextWriter dataWriter, String baseDirectory, ArrayList sqlQueryList)

   at Microsoft.SoftwareDistribution.Tools.SqlHandler.DumpData(String baseDirectory, String nodeName, XmlNode infoXml)

   at Microsoft.SoftwareDistribution.Tools.SusServerTool.ProcessDumpNode(XmlNode dumpNode)


In WSUS 3.0, in able to speed up the downloads (foreground mode), you need to run this command

"%programfiles%\Update Services\Setup\ExecuteSQL.exe" -S %Computername%\MICROSOFT##SSEE -d "SUSDB" -Q "update tbConfigurationC set BitsDownloadPriorityForeground=1"


To revert it back to normal, you can run the same command again and change the value to 0

"%programfiles%\Update Services\Setup\ExecuteSQL.exe" -S %Computername%\MICROSOFT##SSEE -d "SUSDB" -Q "update tbConfigurationC set BitsDownloadPriorityForeground=0"

Once you done that, you need to reset the update services service.

Comments (5)

  1. Not the best way says:…/dd939927(v=ws.10).aspx

    You can choose how much bandwidth BITS uses. I set our network to let BITS use as much bandwidth as it wants outside of work hours.

  2. Also says:

    Have to say I was severely tempted to disapprove all the drivers. Over 20,000? That's just too much.

    I wish WSUS had a "reactive" mode – instead of it downloading every possible update, it waits for a client to request an update, then downloads it and feeds it to the client. That way only updates that are actually needed in your environment are downloaded, saving bandwidth, time, and disk space.

  3. Russell Wilson says:

    For those who are not using the WID you can do it in the SQL Management Studio by using the below;

    use SUSDB
    update susdb.dbo.tbConfigurationC set BitsDownloadPriorityForeground=1

    and to revert;

    use SUSDB
    update susdb.dbo.tbConfigurationC set BitsDownloadPriorityForeground=0

Skip to main content