Display all Server Information by using TSQL script
The below listed all SQL Server Information can be retrieved by a TSQL script. But before that, we need to Enable xp_cmdshell with sp_configure.
Turns on advanced options and enable configure xp_cmdshell using below TSQL query.
-- this turns on advanced options and is needed to configure xp_cmdshell sp_configure 'show advanced options', '1' RECONFIGURE GO -- this enables xp_cmdshell sp_configure 'xp_cmdshell', '1' RECONFIGURE GO
Simply run the below script and get the information.
SET NOCOUNT ON; DECLARE @SQLServerStartupMode [int] ,@SQLAgentStartupMode [int] ,@LoadID [int] ,@Position [int] ,@LoginMode [int] ,@SQLServerAuditLevel [int] ,@SQLServerStartupType [char] (12) ,@SQLAgentStartupType [char] (12) ,@SQLServerServiceAccount [varchar] (64) ,@SQLAgentServiceAccount [varchar] (64) ,@SQLServerRegistryKeyPath [varchar] (256) ,@SQLAgentRegistryKeyPath [varchar] (256) ,@InstanceName [nvarchar] (128) ,@FullInstanceName [nvarchar] (128) ,@SystemInstanceName [nvarchar] (128) ,@ErrorLogDirectory [nvarchar] (128) ,@Domain [nvarchar] (64) ,@IPLine [nvarchar] (256) ,@IpAddress [nvarchar] (16) ,@ActiveNode [nvarchar] (128) ,@AuthenticationMode [varchar] (64) ,@PortNumber [varchar] (8) ,@PageFile [varchar] (124) ,@ClusterNodes [nvarchar] (32) ,@BinariesPath [nvarchar] (128) ,@RegistryKeyPath [nvarchar] (256) ,@RegistryPath1 [nvarchar] (256) ,@RegistryPath2 [nvarchar] (256) ,@RegistryPath3 [nvarchar] (256) ,@SQLServerInstallationLocation [nvarchar] (512) IF OBJECT_ID('[Tempdb].[dbo].[#_IPCONFIG_OUTPUT]') IS NOT NULL DROP TABLE [dbo].[#_IPCONFIG_OUTPUT] IF OBJECT_ID('[Tempdb].[dbo].[#_PAGE_FILE_DETAILS]') IS NOT NULL DROP TABLE [dbo].[#_PAGE_FILE_DETAILS] IF OBJECT_ID('[Tempdb].[dbo].[#_XPMSVER]') IS NOT NULL DROP TABLE [dbo].[#_XPMSVER] IF EXISTS ( SELECT * FROM [tempdb].[sys].[objects] WHERE [name] = '##_SERVER_CONFIG_INFO' AND [type] IN (N'U') ) DROP TABLE [dbo].[##_SERVER_CONFIG_INFO] CREATE TABLE [dbo].[#_PAGE_FILE_DETAILS] ([data] [varchar](500) ) CREATE TABLE [dbo].[#_IPCONFIG_OUTPUT] ([IPConfigCommandOutput] [nvarchar](256) ) CREATE TABLE [dbo].[#_XPMSVER] ( [IDX] [int] NULL ,[C_NAME] [varchar](100) NULL ,[INT_VALUE] [float] NULL ,[C_VALUE] [varchar](128) NULL ) ON [PRIMARY] CREATE TABLE [dbo].[##_SERVER_CONFIG_INFO] ( [Domain] [nvarchar](64) NULL ,[SQLServerName] [varchar](64) NULL ,[InstanceName] [nvarchar](128) NULL ,[ComputerNamePhysicalNetBIOS] [nvarchar](128) NULL ,[IsClustered] [varchar](13) NULL ,[ClusterNodes] [nvarchar](32) NULL ,[ActiveNode] [nvarchar](128) NULL ,[HostIPAddress] [nvarchar](16) NULL ,[PortNumber] [varchar](8) NULL ,[IsIntegratedSecurityOnly] [varchar](64) NULL ,[AuditLevel] [varchar](38) NOT NULL ,[ProductVersion] [varchar](100) NULL ,[ProductLevel] [varchar](100) NULL ,[ResourceVersion] [varchar](100) NULL ,[ResourceLastUpdateDateTime] [varchar](100) NOT NULL ,[EngineEdition] [varchar](64) NULL ,[BuildClrVersion] [varchar](100) NOT NULL ,[Collation] [varchar](100) NULL ,[CollationID] [varchar](100) NULL ,[ComparisonStyle] [varchar](100) NULL ,[IsFullTextInstalled] [varchar](26) NULL ,[SQLCharset] [varchar](100) NOT NULL ,[SQLCharsetName] [varchar](100) NOT NULL ,[SQLSortOrderID] [varchar](100) NOT NULL ,[SQLSortOrderName] [varchar](100) NOT NULL ,[Platform] [varchar](128) NULL ,[FileDescription] [varchar](128) NULL ,[WindowsVersion] [varchar](128) NULL ,[ProcessorCount] [float] NULL ,[ProcessorType] [varchar](128) NULL ,[PhysicalMemory] [float] NULL ,[ServerPageFile] [varchar](124) NULL ,[SQLInstallationLocation] [nvarchar](512) NULL ,[BinariesPath] [nvarchar](128) NULL ,[ErrorLogsLocation] [nvarchar](128) NULL ,[MSSQLServerServiceStartupUser] [varchar](64) NULL ,[MSSQLAgentServiceStartupUser] [varchar](64) NULL ,[MSSQLServerServiceStartupType] [char](12) NULL ,[MSSQLAgentServiceStartupType] [char](12) NULL ,[InstanceLastStartDate] [datetime] NULL ,[LoadID] [int] ) ON [PRIMARY] ------ Finding SQL Server and Agent Service Account Information ------ IF SERVERPROPERTY('InstanceName') IS NULL -- Default Instance BEGIN --default instance SET @SQLServerRegistryKeyPath = 'SYSTEM\CurrentControlSET\SERVICES\MSSQLSERVER' SET @SQLAgentRegistryKeyPath = 'SYSTEM\CurrentControlSET\SERVICES\SQLSERVERAGENT' END ELSE BEGIN --Named Instance SET @SQLServerRegistryKeyPath = 'SYSTEM\CurrentControlSET\SERVICES\MSSQL$' + CAST( SERVERPROPERTY('InstanceName') AS [sysname]) SET @SQLAgentRegistryKeyPath = 'SYSTEM\CurrentControlSET\SERVICES\SQLAgent$' + CAST( SERVERPROPERTY('InstanceName') AS [sysname]) END EXEC [master]..[xp_regread] 'HKEY_LOCAL_MACHINE' ,@SQLServerRegistryKeyPath ,@value_name = 'Start' ,@value = @SQLServerStartupMode OUTPUT EXEC [master]..[xp_regread] 'HKEY_LOCAL_MACHINE' ,@SQLAgentRegistryKeyPath ,@value_name = 'Start' ,@value = @SQLAgentStartupMode OUTPUT SET @SQLServerStartupType = ( SELECT 'Start Up Mode' = CASE WHEN @SQLServerStartupMode = 2 THEN 'Automatic' WHEN @SQLServerStartupMode = 3 THEN 'Manual' WHEN @SQLServerStartupMode = 4 THEN 'Disabled' END ) SET @SQLAgentStartupType = ( SELECT 'Start Up Mode' = CASE WHEN @SQLAgentStartupMode = 2 THEN 'Automatic' WHEN @SQLAgentStartupMode = 3 THEN 'Manual' WHEN @SQLAgentStartupMode = 4 THEN 'Disabled' END ) EXEC [master]..[xp_regread] 'HKEY_LOCAL_MACHINE' ,@SQLServerRegistryKeyPath ,@value_name = 'ObjectName' ,@value = @SQLServerServiceAccount OUTPUT EXEC [master]..[xp_regread] 'HKEY_LOCAL_MACHINE' ,@SQLAgentRegistryKeyPath ,@value_name = 'ObjectName' ,@value = @SQLAgentServiceAccount OUTPUT SET @InstanceName = COALESCE(CONVERT([nvarchar](100), SERVERPROPERTY('InstanceName')), 'MSSQLSERVER'); IF @InstanceName != 'MSSQLSERVER' BEGIN SET @InstanceName = @InstanceName END SET @FullInstanceName = COALESCE(CONVERT([nvarchar](100), SERVERPROPERTY('InstanceName')), 'MSSQLSERVER'); IF @FullInstanceName != 'MSSQLSERVER' BEGIN SET @FullInstanceName = 'MSSQL$' + @FullInstanceName END EXEC [master]..[xp_regread] N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\Microsoft SQL Server\Instance Names\SQL' ,@InstanceName ,@SystemInstanceName OUTPUT; SET @RegistryKeyPath = N'SYSTEM\CurrentControlSET\Services\' + @FullInstanceName; SET @RegistryPath1 = N'Software\Microsoft\Microsoft SQL Server\' + @SystemInstanceName + '\MSSQLServer\Parameters'; SET @RegistryPath2 = N'Software\Microsoft\Microsoft SQL Server\' + @SystemInstanceName + '\MSSQLServer\supersocketnetlib\TCP\IP1'; SET @RegistryPath3 = N'SYSTEM\ControlSET001\Services\Tcpip\Parameters\'; IF @RegistryPath1 IS NULL BEGIN SET @InstanceName = COALESCE(CONVERT([nvarchar](100), SERVERPROPERTY('InstanceName')), 'MSSQLSERVER'); END EXEC [master]..[xp_regread] N'HKEY_LOCAL_MACHINE' , N'Software\Microsoft\Microsoft SQL Server\Instance Names\SQL' ,@InstanceName ,@SystemInstanceName OUTPUT; EXEC [master]..[xp_regread] N'HKEY_LOCAL_MACHINE' ,@RegistryKeyPath ,@value_name = 'ImagePath' ,@value = @BinariesPath OUTPUT EXEC [master]..[xp_regread] N'HKEY_LOCAL_MACHINE' ,@RegistryPath1 ,@value_name = 'SQLArg1' ,@value = @ErrorLogDirectory OUTPUT EXEC [master]..[xp_regread] N'HKEY_LOCAL_MACHINE' ,@RegistryPath3 ,@value_name = 'Domain' ,@value = @Domain OUTPUT SELECT @ClusterNodes = COALESCE(@ClusterNodes + ', ', '') + [Nodename] FROM [sys].[dm_os_cluster_nodes] IF @ClusterNodes IS NULL BEGIN SET @ClusterNodes = 'Not Clustered' END SET @InstanceName = CONVERT([varchar](25), SERVERPROPERTY( 'InstanceName')) EXEC [master]..[xp_instance_regread] N'HKEY_LOCAL_MACHINE' ,N'Software\Microsoft\MSSQLServer\MSSQLServer' ,N'AuditLevel' ,@SQLServerAuditLevel OUTPUT EXEC [master]..[xp_instance_regread] N'HKEY_LOCAL_MACHINE' ,N'SOFTWARE\Microsoft\MSSQLServer\Setup' ,N'SQLPath' ,@SQLServerInstallationLocation OUTPUT ------ Finding IP Address ------ INSERT #_IPCONFIG_OUTPUT EXEC [master]..[xp_cmdshell] 'ipconfig' IF LEFT(CAST(SERVERPROPERTY('ProductVersion') AS [sysname]), 5) = '10.50' BEGIN SELECT @IPLine = [IPConfigCommandOutput] FROM #_IPCONFIG_OUTPUT WHERE UPPER([IPConfigCommandOutput]) LIKE '%IPv4 Address%' IF (ISNULL(@IPLine, '***') != '***') BEGIN SET @Position = CharIndex(':', @IPLine, 1); SET @IPAddress = RTRIM(LTRIM(SUBSTRING(@IPLine, @Position + 1, LEN(@IPLine) - @Position)) ) END END ELSE BEGIN SELECT @IPLine = [IPConfigCommandOutput] FROM #_IPCONFIG_OUTPUT WHERE UPPER([IPConfigCommandOutput]) LIKE '%IP Address%' IF (ISNULL(@IPLine, '***') != '***') BEGIN SET @Position = CharIndex(':', @IPLine, 1); SET @IPAddress = RTRIM(LTRIM(SUBSTRING(@IPLine, @Position + 1, LEN(@IPLine) - @Position)) ) END END ------ Finding Port Information ------ IF @InstanceName IS NULL BEGIN SET @RegistryKeyPath = 'Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\Tcp\' END ELSE BEGIN SET @RegistryKeyPath = 'Software\Microsoft\Microsoft SQL Server\' + @InstanceName + '\MSSQLServer\SuperSocketNetLib\Tcp\' END EXEC [master]..[xp_regread] 'HKEY_LOCAL_MACHINE' ,@RegistryKeyPath ,@value_name = 'tcpPort' ,@value = @PortNumber OUTPUT -- Port Number ------ Finding Authentication Mode ------ EXEC [master]..[xp_instance_regread] N'HKEY_LOCAL_MACHINE' ,N'Software\Microsoft\MSSQLServer\MSSQLServer' ,@value_name = N'LoginMode' ,@value = @LoginMode OUTPUT SET @AuthenticationMode = ( SELECT 'AuTHENtication Mode' = CASE WHEN @LoginMode = 1 THEN 'Windows Authentication' WHEN @LoginMode = 2 THEN 'Mixed Mode Authentication' END ) ------ Finding Active Node ------ EXEC [master]..[xp_regread] @rootkey = 'HKEY_LOCAL_MACHINE' ,@RegistryKeyPath = 'SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName' ,@value_name = 'ComputerName' ,@value = @ActiveNode OUTPUT INSERT INTO [#_PAGE_FILE_DETAILS] EXEC [master]..[xp_cmdshell] 'wmic pagefile list /format:list' SELECT @PageFile = RTRIM(LTRIM([data])) FROM #_PAGE_FILE_DETAILS WHERE [data] LIKE 'AllocatedBaseSize%' INSERT INTO [#_XPMSVER] EXEC ('master.dbo.xp_msver') ---------- CREATE TABLE #Server_Info_SST ( id INT IDENTITY(1, 1) ,Field VARCHAR(50) ,Detaila VARCHAR(MAX) ) INSERT INTO #Server_Info_SST ( Field ,Detaila ) VALUES ( 'Domain' ,UPPER(@Domain) ) ,( 'SQLServerName' ,CONVERT([varchar](64), SERVERPROPERTY('ServerName')) ) ,( 'InstanceName' ,@FullInstanceName ) ,( 'ComputerNamePhysicalNetBIOS' ,@ActiveNode ) ,( 'IsClustered' ,( CASE WHEN CONVERT([varchar](100), SERVERPROPERTY( 'IsClustered')) = 1 THEN 'Clustered' WHEN SERVERPROPERTY('IsClustered') = 0 THEN 'Not Clustered' WHEN SERVERPROPERTY('IsClustered') = NULL THEN 'Error' END ) ) ,( 'ClusterNodes' ,@ClusterNodes ) ,( 'ActiveNode' ,@ActiveNode ) ,( 'HostIPAddress' ,@IPAddress ) ,( 'PortNumber' ,@PortNumber ) ,( 'IsIntegratedSecurityOnly' ,@AuthenticationMode ) ,( 'AuditLevel' ,( CASE WHEN @SQLServerAuditLevel = 0 THEN 'None.' WHEN @SQLServerAuditLevel = 1 THEN 'Successful Logins Only' WHEN @SQLServerAuditLevel = 2 THEN 'Failed Logins Only' WHEN @SQLServerAuditLevel = 3 THEN 'Both Failed and Successful Logins Only' ELSE 'N/A' END ) ) ,( 'ProductVersion' ,CONVERT([varchar](100), SERVERPROPERTY('ProductVersion') ) ) ,( 'ProductLevel' ,CONVERT([varchar](100), SERVERPROPERTY('ProductLevel')) ) ,( 'ResourceVersion' ,ISNULL(CONVERT([varchar](100), SERVERPROPERTY( 'ResourceVersion')), CONVERT([varchar](100), SERVERPROPERTY('ProductVersion'))) ) ,( 'ResourceLastUpdateDateTime' ,ISNULL(CONVERT([varchar](100), SERVERPROPERTY( 'ResourceLastUpdateDateTime')), 'Information Not Available') ) ,( 'EngineEdition' ,CAST(SERVERPROPERTY('Edition') AS [varchar](64)) ) ,( 'BuildClrVersion' ,ISNULL(CONVERT([varchar](100), SERVERPROPERTY( 'BuildClrVersion')), 'NOT Applicable') ) ,( 'Collation' ,CONVERT([varchar](100), SERVERPROPERTY('Collation')) ) ,( 'CollationID' ,CONVERT([varchar](100), SERVERPROPERTY('CollationID')) ) ,( 'ComparisonStyle' ,CONVERT([varchar](100), SERVERPROPERTY('ComparisonStyle' )) ) ,( 'IsFullTextInstalled' ,( CASE WHEN CONVERT([varchar](100), SERVERPROPERTY( 'IsFullTextInstalled')) = 1 THEN 'Full-text is installed' WHEN SERVERPROPERTY('IsFullTextInstalled') = 0 THEN 'Full-text is not installed' WHEN SERVERPROPERTY('IsFullTextInstalled') = NULL THEN 'Error' END ) ) ,( 'SQLCharset' ,ISNULL(CONVERT([varchar](100), SERVERPROPERTY( 'SqlCharSet')), 'No Information') ) ,( 'SQLCharsetName' ,ISNULL(CONVERT([varchar](100), SERVERPROPERTY( 'SqlCharSetName')), 'No Information') ) ,( 'SQLSortOrderID' ,ISNULL(CONVERT([varchar](100), SERVERPROPERTY( 'SqlSortOrder')), 'No Information') ) ,( 'SQLSortOrderName' ,ISNULL(CONVERT([varchar](100), SERVERPROPERTY( 'SqlSortOrderName')), 'No Information') ) ,( 'Platform' ,( SELECT C_VALUE FROM [#_XPMSVER] WHERE [C_NAME] = 'Platform' ) ) ,( 'FileDescription' ,( SELECT C_VALUE FROM [#_XPMSVER] WHERE [C_NAME] = 'FileDescription' ) ) ,( 'WindowsVersion' ,CAST(( SELECT C_VALUE FROM [#_XPMSVER] WHERE [C_NAME] = 'WindowsVersion' ) AS VARCHAR(50)) ) ,( 'ProcessorCount' ,CAST(( SELECT INT_VALUE FROM [#_XPMSVER] WHERE [C_NAME] = 'ProcessorCount' ) AS VARCHAR(50)) ) ,( 'ProcessorType' ,( SELECT ISNULL(C_VALUE, CAST(INT_VALUE AS VARCHAR(9))) FROM #_XPMSVER WHERE [C_NAME] = 'ProcessorType' ) ) ,( 'PhysicalMemory' ,CAST(( SELECT INT_VALUE FROM [#_XPMSVER] WHERE [C_NAME] = 'PhysicalMemory' ) AS VARCHAR(50)) ) ,( 'ServerPageFile' ,@PageFile ) ,( 'SQLInstallationLocation' ,@SQLServerInstallationLocation ) ,( 'BinariesPath' ,@BinariesPath ) ,( 'ErrorLogsLocation' ,@ErrorLogDirectory ) ,( 'MSSQLServerServiceStartupUser' ,@SQLServerServiceAccount ) ,( 'MSSQLAgentServiceStartupUser' ,@SQLAgentServiceAccount ) ,( 'MSSQLServerServiceStartupType' ,@SQLServerStartupType ) ,( 'MSSQLAgentServiceStartupType' ,@SQLAgentStartupType ) ,( '[InstanceLastStartDate]' ,CONVERT(VARCHAR(20), ( CONVERT(DATETIME, ( SELECT [login_time] FROM [master]..[sysprocesses] WHERE [spid] = 1 )) )) ) --INTO SQLServerInfo SELECT * FROM #Server_Info_SST -- Dropping temporary table IF OBJECT_ID('[Tempdb].[dbo].[#_IPCONFIG_OUTPUT]') IS NOT NULL DROP TABLE [dbo].[#_IPCONFIG_OUTPUT] IF OBJECT_ID('[Tempdb].[dbo].[#_PAGE_FILE_DETAILS]') IS NOT NULL DROP TABLE [dbo].[#_PAGE_FILE_DETAILS] IF OBJECT_ID('[Tempdb].[dbo].[#_XPMSVER]') IS NOT NULL DROP TABLE [dbo].[#_XPMSVER] DROP TABLE #Server_Info_SST GO
Download Server Information
Output
Source: https://sqlmentalist.com