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 (Running, Stopped, Start Pending, Stop Pending, NOT 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