how to return installed services on server 2000

  • Hi,

    can anyone have idea on my question please let me know.

    i have script that works only for 2005 and above versions.

    i am looking for server 2000( this returns all services like dts,agent,ssas,ssrs....etc)

    cheers

  • You need to give us a little more detail of what you are trying to do. What is the script? Does it fail when you run it in SQL2000?

  • Hi,

    Please find below script. this script is working only on 2005 and above versions, but if i run on 2000 throwing some errors.

    SET NOCOUNT ON

    CREATE TABLE #RegResult

    (

    ResultValue NVARCHAR(4)

    )

    CREATE TABLE #ServicesServiceStatus

    (

    RowID INT IDENTITY(1,1)

    ,ServerName NVARCHAR(128)

    ,ServiceName NVARCHAR(128)

    ,ServiceStatus VARCHAR(128)

    ,StatusDateTime DATETIME DEFAULT (GETDATE())

    ,PhysicalSrverName NVARCHAR(128)

    )

    DECLARE

    @ChkInstanceName NVARCHAR(128) /*Stores SQL Instance Name*/

    ,@ChkSrvName NVARCHAR(128) /*Stores Server Name*/

    ,@TrueSrvName NVARCHAR(128) /*Stores where code name needed */

    ,@SQLSrv NVARCHAR(128) /*Stores server name*/

    ,@PhysicalSrvName NVARCHAR(128) /*Stores physical name*/

    ,@DTS NVARCHAR(128) /*Store SSIS Service Name */

    ,@FTS NVARCHAR(128) /*Stores Full Text Search Service name*/

    ,@RS NVARCHAR(128) /*Stores Reporting Service name*/

    ,@SQLAgent NVARCHAR(128) /*Stores SQL Agent Service name*/

    ,@OLAP NVARCHAR(128) /*Stores Analysis Service name*/

    ,@REGKEY NVARCHAR(128) /*Stores Registry Key information*/

    SET @PhysicalSrvName = CAST(SERVERPROPERTY('MachineName') AS VARCHAR(128))

    SET @ChkSrvName = CAST(SERVERPROPERTY('INSTANCENAME') AS VARCHAR(128))

    SET @ChkInstanceName = @@serverName

    IF @ChkSrvName IS NULL /*Detect default or named instance*/

    BEGIN

    SET @TrueSrvName = 'MSSQLSERVER'

    SELECT @OLAP = 'MSSQLServerOLAPService' /*Setting up proper service name*/

    SELECT @FTS = 'MSFTESQL'

    SELECT @rs = 'ReportServer'

    SELECT @SQLAgent = 'SQLSERVERAGENT'

    SELECT @SQLSrv = 'MSSQLSERVER'

    END

    ELSE

    BEGIN

    SET @TrueSrvName = CAST(SERVERPROPERTY('INSTANCENAME') AS VARCHAR(128))

    SET @SQLSrv = '$'+@ChkSrvName

    SELECT @OLAP = 'MSOLAP' + @SQLSrv /*Setting up proper service name*/

    SELECT @FTS = 'MSFTESQL' + @SQLSrv

    SELECT @rs = 'ReportServer' + @SQLSrv

    SELECT @SQLAgent = 'SQLAgent' + @SQLSrv

    SELECT @SQLSrv = 'MSSQL' + @SQLSrv

    END

    /* ---------------------------------- SQL Server Service Section ----------------------------------------------*/

    SET @REGKEY = 'System\CurrentControlSet\Services\'+@SQLSrv

    INSERT #RegResult ( ResultValue ) EXEC MASTER.sys.xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key= @REGKEY

    IF (SELECT ResultValue FROM #RegResult) = 1

    BEGIN

    INSERT #ServicesServiceStatus (ServiceStatus) /*Detecting staus of SQL Sever service*/

    EXEC xp_servicecontrol N'QUERYSTATE',@SQLSrv

    UPDATE #ServicesServiceStatus SET ServiceName = 'MS SQL Server Service' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    ELSE

    BEGIN

    INSERT INTO #ServicesServiceStatus (ServiceStatus) VALUES ('NOT INSTALLED')

    UPDATE #ServicesServiceStatus SET ServiceName = 'MS SQL Server Service' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    /* ---------------------------------- SQL Server Agent Service Section -----------------------------------------*/

    SET @REGKEY = 'System\CurrentControlSet\Services\'+@SQLAgent

    INSERT #RegResult ( ResultValue ) EXEC MASTER.sys.xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key= @REGKEY

    IF (SELECT ResultValue FROM #RegResult) = 1

    BEGIN

    INSERT #ServicesServiceStatus (ServiceStatus) /*Detecting staus of SQL Agent service*/

    EXEC xp_servicecontrol N'QUERYSTATE',@SQLAgent

    UPDATE #ServicesServiceStatus SET ServiceName = 'SQL Server Agent Service' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    ELSE

    BEGIN

    INSERT INTO #ServicesServiceStatus (ServiceStatus) VALUES ('NOT INSTALLED')

    UPDATE #ServicesServiceStatus SET ServiceName = 'SQL Server Agent Service' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    /* ---------------------------------- SQL Browser Service Section ----------------------------------------------*/

    SET @REGKEY = 'System\CurrentControlSet\Services\SQLBrowser'

    INSERT #RegResult ( ResultValue ) EXEC MASTER.sys.xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key= @REGKEY

    IF (SELECT ResultValue FROM #RegResult) = 1

    BEGIN

    INSERT #ServicesServiceStatus (ServiceStatus) /*Detecting staus of SQL Browser Service*/

    EXEC MASTER.dbo.xp_servicecontrol N'QUERYSTATE',N'sqlbrowser'

    UPDATE #ServicesServiceStatus SET ServiceName = 'SQL Browser Service - Instance Independent' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    ELSE

    BEGIN

    INSERT INTO #ServicesServiceStatus (ServiceStatus) VALUES ('NOT INSTALLED')

    UPDATE #ServicesServiceStatus SET ServiceName = 'SQL Browser Service - Instance Independent' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    /* ---------------------------------- Integration Service Section ----------------------------------------------*/

    IF CHARINDEX('2008',@@Version) > 0 SET @DTS='MsDtsServer100'

    IF CHARINDEX('2005',@@Version) > 0 SET @DTS= 'MsDtsServer'

    SET @REGKEY = 'System\CurrentControlSet\Services\'+@DTS

    INSERT #RegResult ( ResultValue ) EXEC MASTER.sys.xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key= @REGKEY

    IF (SELECT ResultValue FROM #RegResult) = 1

    BEGIN

    INSERT #ServicesServiceStatus (ServiceStatus) /*Detecting staus of Intergration Service*/

    EXEC MASTER.dbo.xp_servicecontrol N'QUERYSTATE',@DTS

    UPDATE #ServicesServiceStatus SET ServiceName = 'Integration Service - Instance Independent' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    ELSE

    BEGIN

    INSERT INTO #ServicesServiceStatus (ServiceStatus) VALUES ('NOT INSTALLED')

    UPDATE #ServicesServiceStatus SET ServiceName = 'Integration Service - Instance Independent' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    /* ---------------------------------- Reporting Service Section ------------------------------------------------*/

    SET @REGKEY = 'System\CurrentControlSet\Services\'+@RS

    INSERT #RegResult ( ResultValue ) EXEC MASTER.sys.xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key= @REGKEY

    IF (SELECT ResultValue FROM #RegResult) = 1

    BEGIN

    INSERT #ServicesServiceStatus (ServiceStatus) /*Detecting staus of Reporting service*/

    EXEC MASTER.dbo.xp_servicecontrol N'QUERYSTATE',@RS

    UPDATE #ServicesServiceStatus SET ServiceName = 'Reporting Service' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    ELSE

    BEGIN

    INSERT INTO #ServicesServiceStatus (ServiceStatus) VALUES ('NOT INSTALLED')

    UPDATE #ServicesServiceStatus SET ServiceName = 'Reporting Service' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    /* ---------------------------------- Analysis Service Section -------------------------------------------------*/

    IF @ChkSrvName IS NULL /*Detect default or named instance*/

    BEGIN

    SET @OLAP = 'MSSQLServerOLAPService'

    END

    ELSE

    BEGIN

    SET @OLAP = 'MSOLAP'+'$'+@ChkSrvName

    SET @REGKEY = 'System\CurrentControlSet\Services\'+@OLAP

    END

    INSERT #RegResult ( ResultValue ) EXEC MASTER.sys.xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key= @REGKEY

    IF (SELECT ResultValue FROM #RegResult) = 1

    BEGIN

    INSERT #ServicesServiceStatus (ServiceStatus) /*Detecting staus of Analysis service*/

    EXEC MASTER.dbo.xp_servicecontrol N'QUERYSTATE',@OLAP

    UPDATE #ServicesServiceStatus SET ServiceName = 'Analysis Services' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    ELSE

    BEGIN

    INSERT INTO #ServicesServiceStatus (ServiceStatus) VALUES ('NOT INSTALLED')

    UPDATE #ServicesServiceStatus SET ServiceName = 'Analysis Services' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    /* ---------------------------------- Full Text Search Service Section -----------------------------------------*/

    SET @REGKEY = 'System\CurrentControlSet\Services\'+@FTS

    INSERT #RegResult ( ResultValue ) EXEC MASTER.sys.xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key= @REGKEY

    IF (SELECT ResultValue FROM #RegResult) = 1

    BEGIN

    INSERT #ServicesServiceStatus (ServiceStatus) /*Detecting staus of Full Text Search service*/

    EXEC MASTER.dbo.xp_servicecontrol N'QUERYSTATE',@FTS

    UPDATE #ServicesServiceStatus SET ServiceName = 'Full Text Search Service' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    ELSE

    BEGIN

    INSERT INTO #ServicesServiceStatus (ServiceStatus) VALUES ('NOT INSTALLED')

    UPDATE #ServicesServiceStatus SET ServiceName = 'Full Text Search Service' WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET ServerName = @TrueSrvName WHERE RowID = @@identity

    UPDATE #ServicesServiceStatus SET PhysicalSrverName = @PhysicalSrvName WHERE RowID = @@identity

    TRUNCATE TABLE #RegResult

    END

    /* -------------------------------------------------------------------------------------------------------------*/

    SELECT ServiceName AS 'SQL Server Service'

    ,ServiceStatus AS 'Current Service Status'

    ,StatusDateTime AS 'Date/Time Service Status Checked'

    FROM #ServicesServiceStatus

  • Hi,

    i am trying to return the list of service status on servers(2000 to 2012) to know how many servers are running (ssis,ssrs,ssas). this is my requirement.

    if you can help that will be great.

    Thanks

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply