Überprüfen des Status von Diensten auf Windows-Clients

PowerShell ist ein hervorragendes Skripting-Tool. Es hilft Ihnen nicht nur, Zeit zu sparen, sondern bietet auch mehr Flexibilität, um wiederkehrende Aufgaben manuell oder über geplante Aufgaben auszuführen. Fast alle Windows-Rollen und -Features werden mit PowerShell-Cmdlets ausgeliefert.

Sie können die standardmäßig verfügbaren Windows-Betriebssystem-Cmdlets verwenden, um betriebliche Aufgaben auszuführen, z. B. um den Status eines bestimmten Windows-Dienstes auf mehreren Computern zu überprüfen, die Liste der auf Windows-Computern installierten Software zu überprüfen, die auf Windows-Server-Betriebssystemen installierten Rollen und Features zu überprüfen und zu sammeln und vieles mehr.Windows Server Tutorials

Eine der Aufgaben, die Windows-Administratoren häufig ausführen, ist die Überprüfung des Status kritischer Dienste auf wichtigen Produktionsservern wie Exchange-Servern, SQL-Servern und/oder Active Directory-Domänencontrollern.

Sie können zwar SCCM und ähnliche Tools verwenden, um einen Bericht über den Status von Diensten auf einer bestimmten Gruppe von Computern zu erhalten, aber SCCM erfordert, dass der SCCM-Client auf allen Zielcomputern funktioniert, bevor SCCM einen Bericht über den Status von Diensten erstellen kann.

Hier kommt unser neuestes Skript und Server-Tutorial zum Einsatz. Mit dem in diesem Artikel erläuterten PowerShell-Skript können Sie schnell und einfach den Status bestimmter Dienste auf einem einzelnen oder mehreren Windows-Computern überprüfen.

Überprüfen des Status eines einzelnen Dienstes

Wenn Sie den Status eines bestimmten Dienstes auf einem Remote-Computer überprüfen möchten, können Sie den folgenden PowerShell-Befehl ausführen:

Get-WMIObject -Computer -Query "Select * From Win32_Service WHERE Name Like "%SomeServiceName%"

Durch Ausführen des oben genannten PowerShell-Befehls können Sie den Status eines bestimmten Dienstes abrufen, der im Parameter „%SomeServiceName%“ angegeben ist. Dieser Befehl stellt eine Verbindung zu einem Remotecomputer her, der im Parameter „-Computer“ angegeben ist. Sie werden wahrscheinlich sowohl den Computer- als auch den Dienstnamen ändern wollen, bevor Sie den obigen Befehl ausführen.

Überprüfen des Status mehrerer Dienste

Wenn Sie eine Liste aller Windows-Dienste erhalten möchten, die auf einem Zielsystem ausgeführt werden, führen Sie den folgenden PowerShell-Befehl aus:

Get-WMIObject Win32_Service -Computer | Where {$_.State -eq "Running"} | FT -Auto

Der obige Befehl listet alle Windows-Dienste auf, die von dem im Parameter „-Computer“ angegebenen Remotecomputer ausgeführt werden, und die Ausgabe wird im PowerShell-Fenster angezeigt. Wenn Sie die Ausgabe in einer CSV-Datei speichern möchten, können Sie „Export-CSV“ hinzufügen, wie in diesem Befehl gezeigt:

Get-WMIObject Win32_Service -Computer | Where {$_.State -eq "Running"} | FT -Auto | Export-CSV "C:TempServicesStatus.CSV"

Überprüfen des Status eines einzelnen Dienstes auf mehreren Computern

Während die oben genannten PowerShell-Befehle Ihnen helfen, den Status eines bestimmten oder mehrerer Dienste von einem einzelnen Windows-Computer zu erhalten, kann das folgende PowerShell-Skript verwendet werden, wenn Sie den Status eines einzelnen Dienstes von mehreren Windows-Computern anzeigen möchten. Sie müssen lediglich eine Textdatei erstellen, die die Namen der Windows-Computer enthält, und die Skriptvariable „$ServiceNameToCheck“ so ändern, dass sie den Dienst enthält, den Sie überprüfen möchten.

$ServiceNameToCheck ="SomeServiceName"
$ReportFile = "C:TempServiceStatus.CSV"
Remove-item $ReportFile -ErrorAction SilentlyContinue
$ThisSTR = "Computer Name, Service Status"
Add-Content $ReportFile $ThisSTR
$CompFile = "C:TempComputers.TXT"

Foreach ($ComputerName in Get-Content "$CompFile")
{
$Error.Clear()
Get-WMIObject -Computer $ComputerName -Query "Select * From Win32_Service WHERE Name Like "%$ServiceNameToCheck% AND {$_.State -eq "Running"}
IF ($Error.Count -ne 0)
{
$ThisSTR = $ComputerName+", Could Not Connect to Remote Computer or Service Not Running"
Add-Content $ReportFile $ThisSTR
}
else
{
$ThisSTR = $ComputerName+", Running"
Add-Content $ReportFile $ThisSTR
}
}
Write-Host "Service status was retrieved from the list of computers and the output was saved in $ReportFile"

Wenn das obige PowerShell-Skript ausgeführt wurde, wird eine Berichtsdatei mit dem Namen ServiceStatus.CSV im Ordner „C:Temp“ erstellt, die den Status des in der Variablen „$ServiceNameToCheck“ angegebenen Dienstnamens von allen in der Datei „C:TempComputers.TXT“ genannten Computern enthält.

Beachten Sie, dass das Skript überprüft, ob der Befehl erfolgreich ausgeführt wurde, bevor es den Status des Dienstes meldet. Das PowerShell-Skript verwendet das PowerShell-Cmdlet „Get-WMIObject“, um den Status bestimmter Dienste von Zielcomputern zu erfassen. Wenn Get-WMIObject keine Verbindung zu einem Zielcomputer herstellen kann oder der Dienststatus nicht abgerufen wird, wird im Bericht die Meldung „Could Not Connect to Remote Computer or Service Not Running“ (Konnte keine Verbindung zum Remotecomputer herstellen oder Dienst läuft nicht) zurückgegeben.

Fazit

Es ist recht einfach, den Status eines einzelnen oder mehrerer Dienste von einem einzelnen oder mehreren Windows-Remotecomputern abzurufen. Es gibt zwar Unternehmenstools zum Sammeln eines Inventars von Windows-Computern, einschließlich des Status von Diensten, aber es gibt auch Fälle, in denen diese PowerShell-Befehle/Skripte sehr nützlich sind, insbesondere wenn Sie den Status eines bestimmten Dienstes auf mehreren Windows-Computern schnell überprüfen müssen.

Nirmal Sharma ist ein MCSEx3, MCITP und Microsoft MVP für Verzeichnisdienste. Er ist spezialisiert auf Verzeichnisdienste, Microsoft Azure, Failover-Cluster, Hyper-V, System Center und Exchange Server und beschäftigt sich seit 1994 mit Microsoft-Technologien. In seiner Freizeit hilft er gerne anderen und gibt einen Teil seines Wissens weiter, indem er Tipps und Artikel auf verschiedenen Websites schreibt und zu den Health Packs für ADHealthProf.ITDynamicPacks.Net-Lösungen beiträgt. Nirmal ist erreichbar unter

Folgt ServerWatch auf Twitter und auf Facebook

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.