Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meoso/38cd0310cb43adcc3163e3efd50fe697 to your computer and use it in GitHub Desktop.
Save meoso/38cd0310cb43adcc3163e3efd50fe697 to your computer and use it in GitHub Desktop.
Script to Delete Obsolete WSUS Updates
-- This script deletes all obsolete WSUS updates from a WSUS database.
-- For more information, visit http://thebashfuladmin.com/2016/05/13/workaround-for-wsus-sql-timeout-errors/
USE SUSDB
DECLARE @UpdateID INT
DECLARE @message varchar(1000)
PRINT 'Create table'
CREATE TABLE #ObsoleteUpdatesToCleanup (UpdateID INT)
PRINT 'insert table'
INSERT INTO #ObsoleteUpdatesToCleanup(UpdateID) EXEC spGetObsoleteUpdatesToCleanup
PRINT 'declare deletes'
DECLARE DeleteUpdates CURSOR FOR SELECT UpdateID FROM #ObsoleteUpdatesToCleanup
PRINT 'open deletes'
OPEN DeleteUpdates
PRINT 'fetch next'
FETCH NEXT FROM DeleteUpdates INTO @UpdateID WHILE (@@FETCH_STATUS > -1)
BEGIN SET @message = 'Deleting update ' + CONVERT(VARCHAR(10), @UpdateID) RAISERROR(@message,0,1) WITH NOWAIT
PRINT @message
EXEC spDeleteUpdate @localUpdateID=@UpdateID
FETCH NEXT FROM DeleteUpdates INTO @UpdateID
END
PRINT 'close deletes'
CLOSE DeleteUpdates
PRINT 'dealloc deletes'
DEALLOCATE DeleteUpdates
DROP TABLE #ObsoleteUpdatesToCleanup
@meoso
Copy link
Author

meoso commented Feb 6, 2018

modified with print because it takes forever and unknown status of processing.

also check https://community.spiceworks.com/how_to/103094-automate-wsus-cleanup

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment