Der PowerShell Befehl „Get-Service“ ermöglicht die Abfrage und Steuerung der Windows Dienste über die Kommandozeile. Dieser Befehl ist eines der am häufigsten verwendeten Cmdlets in PowerShell, welches den Administratoren ermöglicht, Informationen über die auf einem Computer ausgeführten Dienste abzurufen. In dieser PowerShell Windows FAQ werden wir uns eingehend mit dem „Get-Service“-Cmdlet befassen und seine verschiedenen Parameter mit zahlreichen Beispielen erkunden.

Das Grundkonzept von Get-Service

Das Cmdlet „Get-Service“ wird verwendet, um eine Liste der auf einem Computer laufenden Dienste anzuzeigen. Diese Dienste können im Hintergrund verschiedene Funktionen ausführen, wie zum Beispiel Drucken, Netzwerkzugriff oder Zeitgeberdienste. Das Cmdlet ist sehr vielseitig und ermöglicht es uns, Dienste anhand verschiedener Kriterien zu filtern und detaillierte Informationen über jeden Dienst abzurufen.

Syntax des Get-Service-Cmdlets

Die grundlegende Syntax von „Get-Service“ lautet wie folgt:

Get-Service [-Name <String[]>] [-DisplayName <String[]>] [-Include <String[]>]
[-Exclude <String[]>] [-ComputerName <String[]>] [-DependentServices]
[-RequiredServices] [-RequiredServices] [-Status <ServiceControllerStatus[]>]
[-InputObject <ServiceController[]>] [-StartupType <ServiceStartMode[]>]

Erläuterung der Parameter:

Folgende PowerShell „Get-Service“ Parameter sind möglich.

Get-Service ParameterErklärung der Parameter
-NameMit diesem Parameter können Sie nach Diensten suchen, deren interner Name (Service Name) dem angegebenen Wert entspricht. Sie können auch Platzhalter wie ‚*‘ verwenden, um nach Teilübereinstimmungen zu suchen.
-DisplayNameDieser Parameter ermöglicht die Suche nach Diensten, die den angegebenen Anzeigenamen haben.
-IncludeMit diesem Parameter können Sie eine Liste von Diensten angeben, die explizit in der Ausgabe enthalten sein sollen. Andere Dienste werden ignoriert.
-ExcludeHiermit können Sie eine Liste von Diensten angeben, die aus der Ausgabe ausgeschlossen werden sollen.
-ComputernameMit diesem Parameter können Sie den Remote-Computer angeben, auf dem Sie nach Diensten suchen möchten. Standardmäßig wird der lokale Computer verwendet.
-DependentServicesZeigt nur die von anderen Diensten abhängigen Dienste an.
-RequiredServicesZeigt nur die Dienste an, von denen andere Dienste abhängig sind.
-StatusFiltert die Dienste basierend auf ihrem Status. Sie können Werte wie „wird ausgeführt“, „beendet“, „pausiert“ usw. angeben.
-InputObjectHiermit können Sie ein oder mehrere ServiceController-Objekte direkt als Eingabe verwenden, anstatt sie aus der Liste der Dienste abzurufen.
-StartupTypeErmöglicht die Filterung der Dienste basierend auf ihrem Starttyp, z. B. „Automatisch“, „Manuell“ oder „Deaktiviert“.

Beispiele für die Verwendung von Get-Service

Hier nachfolgend einige Beispiele zum PowerShell Befehl.

Beispiel 1: Einfaches Abrufen aller Dienste auf dem lokalen Computer

Get-Service

Beispiel 2: Suchen nach einem bestimmten Dienst namens „Spooler“

Get-Service -Name "Spooler"

Beispiel 3: Abrufen aller gestarteten Dienste auf einem Remote-Computer

Get-Service -ComputerName "RemoteComputer" -Status "Running"

Beispiel 4: Abrufen aller automatisch gestarteten Dienste

Get-Service -StartupType "Automatic"

Beispiel 5: Suche nach Diensten, die „Print“ im Anzeigenamen enthalten

Get-Service -DisplayName "*Print*"

Beispiel 6: Dienste mit bestimmtem Starttyp anzeigen

Get-Service | Where-Object { $_.StartType -eq "Automatic" }

Erklärung:
In diesem Beispiel verwenden wir das Get-Service-Cmdlet, um eine Liste aller Dienste auf dem lokalen Computer abzurufen. Dann verwenden wir das Where-Object-Cmdlet, um nur die Dienste auszuwählen, bei denen der Starttyp „Automatic“ ist. Der Windows Dienste Starttyp „Automatic“ bedeutet, dass der Dienst automatisch gestartet wird, wenn der Computer hochgefahren wird.

Beispiel 7: Dienste auf einem Remote-Computer nach Status filtern

Get-Service -ComputerName "RemoteComputer" | Where-Object { $_.Status -eq "Running" }

Erklärung:
In diesem Beispiel verwenden wir das -ComputerName-Parameter, um nach Diensten auf einem Remote-Computer mit dem Namen „RemoteComputer“ zu suchen. Dann verwenden wir das Where-Object-Cmdlet, um nur die Dienste auszuwählen, die den Status „Running“ haben, also aktuell ausgeführt werden.

Beispiel 8: Dienste nach Anfangsbuchstaben filtern

Get-Service | Where-Object { $_.Name -like "A*" }

Hier nachfolgend die Ausgabeliste aller Windows Dienste, deren Dienstname mit einem „A“ beginnen.

Get-Service Windows Dienste mit Anfangsbuchstaben A

Erklärung:
Hier verwenden wir das Get-Service-Cmdlet, um alle Dienste auf dem lokalen Computer abzurufen, und das Where-Object-Cmdlet, um nur die Dienste auszuwählen, deren Name mit dem Buchstaben „A“ beginnt. Der -like-Operator ermöglicht es uns, nach Teilübereinstimmungen zu suchen, und der Platzhalter „*“ steht für beliebige Zeichen.

Beispiel 9: Dienste anhand mehrerer Namen oder Anzeigenamen auswählen

Get-Service | Where-Object { $_.Name -in @("Dhcp", "Spooler", "BITS") }

Erklärung:
Hier verwenden wir das Get-Service-Cmdlet, um alle Dienste auf dem lokalen Computer abzurufen. Dann verwenden wir das Where-Object-Cmdlet in Kombination mit dem -in-Operator, um nur die Dienste auszuwählen, die entweder den internen Namen „Dhcp“, „Spooler“ oder „BITS“ haben.

Beispiel 10: Alle Dienste anzeigen, die von anderen Diensten abhängig sind

Get-Service | Where-Object { $_.DependentServices.Count -gt 0 }

Erklärung:
In diesem Beispiel verwenden wir das Get-Service-Cmdlet, um alle Dienste auf dem lokalen Computer abzurufen. Dann verwenden wir das Where-Object-Cmdlet, um nur die Dienste auszuwählen, die von anderen Diensten abhängig sind. Die DependentServices-Eigenschaft gibt eine Liste der Dienste zurück, von denen der aktuelle Dienst abhängt. Wenn die Anzahl der abhängigen Dienste größer als 0 ist, bedeutet dies, dass der Dienst von anderen Diensten abhängt.

Fazit

Das „Get-Service“-Cmdlet in PowerShell bietet eine Vielzahl von Möglichkeiten, um Dienste auf Windows-Computern zu verwalten und zu überwachen. Durch die Kombination mit anderen Cmdlets wie Where-Object und die Verwendung von verschiedenen Parametern können Administratoren Dienste effizient filtern, analysieren und verwalten. PowerShell ermöglicht es uns, komplexe Aufgaben in der Windows-Administration zu automatisieren und somit die Effizienz und Produktivität zu steigern. Mit den in diesem Blogbeitrag gezeigten Beispielen und Erklärungen sollten Sie in der Lage sein, „Get-Service“ effektiv in Ihren täglichen Aufgaben einzusetzen.

– Powershell-Befehl „foreach“
– Per PowerShell New-PSDrive Netzwerklaufwerke verbinden
– PowerShell Get-Process
– PowerShell New-Item
– PowerShell Get-Content
– PowerShell Set-ExecutionPolicy
– PowerShell Vergleichsoperatoren
– PowerShell Befehl Get-ChildItem
– PowerShell IF – ELSE – Anleitung
– Test-Connection – Ping in der PowerShell
– Welche PowerShell Version ist installiert?
– PowerShell Parameter: Ein umfassender Leitfaden