Beschreibung der Funktion

Das Skript ermittelt für die aktuelle SQL Server-Instanz alle wichtigen zugehörigen Windows-Dienste:

  • SQL Server Database Engine

  • SQL Server Agent

  • Analysis Services (SSAS)

  • Full-Text Search

  • Reporting Services (SSRS)

  • SQL Server Browser (instanzunabhängig)

  • Integration Services (SSIS) – versionsabhängig

Für jeden Dienst wird der aktuelle Betriebszustand (RunningStoppedStart PendingStop PendingNOT INSTALLED oder eine Fehlermeldung) ausgegeben. Zusätzlich werden der Server‑Name (Instanz), der physische Computername und der Zeitpunkt der Abfrage protokolliert.

Einsatzgebiete:

  • Inventarisierung von SQL Server-Umgebungen

  • Vorbereitung von Wartungsarbeiten (z. B. Herunterfahren aller Dienste)

  • Überwachung (z. B. ob der SQL Agent läuft)

  • Dokumentation der installierten Komponenten

Voraussetzungen:

  • SQL Server 2008 R2 SP1 oder höher.

 

SET NOCOUNT ON;

IF OBJECT_ID('sys.dm_server_services') IS NOT NULL
BEGIN
    SELECT 
        servicename AS ServiceName,
        CASE status
            WHEN 1 THEN 'Stopped'
            WHEN 2 THEN 'Running'
            WHEN 3 THEN 'Start Pending'
            WHEN 4 THEN 'Stop Pending'
            ELSE 'Unknown'
        END AS ServiceStatus,
        startup_type_desc AS StartupType,
        service_account AS ServiceAccount,
        @@SERVERNAME AS ServerName,
        CAST(SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS NVARCHAR(128)) AS PhysicalServerName,
        GETDATE() AS StatusDateTime
    FROM sys.dm_server_services
    ORDER BY servicename;
END
ELSE
BEGIN
    RAISERROR('sys.dm_server_services nicht verfügbar. Bitte SQL Server 2008 R2 SP1 oder höher.', 16, 1);
END