diff --git a/sp_Blitz.sql b/sp_Blitz.sql index ada1500a..207c5980 100644 --- a/sp_Blitz.sql +++ b/sp_Blitz.sql @@ -199,7 +199,8 @@ AS ,@SkipMSDB bit = 0 ,@SkipModel bit = 0 ,@SkipTempDB bit = 0 - ,@SkipValidateLogins bit = 0; + ,@SkipValidateLogins bit = 0 + ,@SkipXPReadErrorLog bit = 0; DECLARE @db_perms table @@ -338,6 +339,32 @@ AS END; END; + IF ISNULL(@SkipXPReadErrorLog, 0) != 1 /*If @SkipXPReadErrorLog hasn't been set to 1 by the caller*/ + BEGIN + IF OBJECT_ID(N'tempdb..#XpReadErrorLogTest') IS NOT NULL + EXEC sp_executesql N'DROP TABLE #XpReadErrorLogTest;'; + + CREATE TABLE #XpReadErrorLogTest + ( + [LogDate] DATETIME + ,[ProcessInfo] NVARCHAR(12) + ,[LogText] NVARCHAR(4000) + ); + + BEGIN TRY + INSERT INTO #XpReadErrorLogTest + EXEC xp_readerrorlog 0, 1, N'Server process ID is'; + + SET @SkipXPReadErrorLog = 0; /*We can execute xp_readerrorlog*/ + END TRY + BEGIN CATCH + SET @SkipXPReadErrorLog = 1; /*We don't have execute rights or xp_readerrorlog throws an error so skip it*/ + END CATCH; + + IF OBJECT_ID(N'tempdb..#XpReadErrorLogTest') IS NOT NULL + EXEC sp_executesql N'DROP TABLE #XpReadErrorLogTest;'; + END; /*Need execute on xp_readerrorlog*/ + SET @crlf = NCHAR(13) + NCHAR(10); SET @ResultText = 'sp_Blitz Results: ' + @crlf; @@ -542,7 +569,13 @@ AS SELECT v.* FROM (VALUES(NULL, 2301, NULL)) AS v (DatabaseName, CheckID, ServerName) /*sp_validatelogins*/ - WHERE @SkipValidateLogins = 1 + WHERE @SkipValidateLogins = 1; + + INSERT #SkipChecks (DatabaseName, CheckID, ServerName) + SELECT + v.* + FROM (VALUES(NULL, 193, NULL)) AS v (DatabaseName, CheckID, ServerName) /*xp_readerrorlog*/ + WHERE @SkipXPReadErrorLog = 1; IF(OBJECT_ID('tempdb..#InvalidLogins') IS NOT NULL) BEGIN