This script provides status on updates that have not finished downloading to the WSUS server, and it retries failed downloads (rather than waiting for the next WSUS sync).

PowerShell
Edit|Remove
[reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration") | out-null
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer();
$updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;
$updateScope.updateApprovalActions = [Microsoft.UpdateServices.Administration.UpdateApprovalActions]::Install
$wsus.GetUpdates($updateScope) | foreach-object { 
if (($_.State -eq [Microsoft.UpdateServices.Administration.UpdateState]::Cancelled) -or
($_.State -eq [Microsoft.UpdateServices.Administration.UpdateState]::Failed) -or
($_.State -eq [Microsoft.UpdateServices.Administration.UpdateState]::LicenseAgreementFailed)) { 
$_.ResumeDownload(); "Resuming " + $_.Title;
}
elseif (($_.State -eq [Microsoft.UpdateServices.Administration.UpdateState]::NotReady) -or
($_.State -eq [Microsoft.UpdateServices.Administration.UpdateState]::LicenseAgreementNotReady)) {
"Already downloading " + $_.Title;
}
}