Wie man Windows-Dienste über die Befehlszeile verwaltet

Ich suche immer nach effizienten Möglichkeiten, Systemaufgaben zu verwalten, ohne das Terminal zu verlassen, selbst wenn ich Windows benutze. Unter Windows laufen Dienste im Hintergrund, um das System und die Apps reibungslos arbeiten zu lassen. Anstatt den Dienst-Manager zu öffnen, ziehe ich es vor, die Windows-Dienste über die Befehlszeile zu verwalten. In diesem Leitfaden werden wir diese Methoden erkunden und sehen, wie Sie Windows-Dienste direkt vom Terminal aus verwalten können.
1. Windows-Dienste mit sc.exe verwalten
sc.exe ist ein integriertes Befehlszeilenwerkzeug zur Verwaltung von Windows-Diensten. Es ermöglicht Ihnen, Dienste direkt von der Befehlszeile aus zu konfigurieren, abzufragen und zu steuern. Mit sc.exe haben Sie die volle Kontrolle über Windows-Dienste, ohne den grafischen Dienst-Manager nutzen zu müssen.
Den Dienststatus mit sc überprüfen
Wir können den Befehl sc query serviceName verwenden, um den Status eines bestimmten Dienstes zu überprüfen. Zum Beispiel führen wir den Befehl sc query MySQL80 aus, um Details über den MySQL80-Dienst abzurufen, einschließlich seines Zustands:

Momentan läuft MySQL nicht auf unserem Rechner.
Einen Dienst mit sc starten
Um einen bestimmten Dienst mit sc.exe zu starten, können wir den Befehl sc start ServiceName verwenden. Zum Beispiel führen wir sc start MySQL80 aus, um den MySQL80-Dienst zu starten. Um zu überprüfen, ob der Dienst erfolgreich gestartet wurde, können wir seinen Status mit dem Befehl sc query MySQL80 überprüfen:

Einen Dienst mit sc stoppen
Sie können einen Dienst stoppen, um Systemressourcen freizugeben. Zum Beispiel stoppt der Befehl sc stop MySQL80 MySQL, was wir mit dem Befehl sc query MySQL80 überprüfen können:

Einen neuen Dienst mit sc erstellen
Wir können einen neuen Dienst mit dem Befehl sc create erstellen. Dazu müssen Sie den Dienstnamen, den Ausführungspfad und den Starttyp angeben. Um beispielsweise einen neuen Dienst mit dem Namen “mte” zu erstellen, der beim Booten automatisch startet, geben Sie ein:
sc create mte binPath="C:\Users\HP\Desktop\Examples\Service.exe" start= autoEinen Dienst mit sc aktualisieren
Wir können den Befehl sc config verwenden, um einen vorhandenen Dienst zu konfigurieren. Zum Beispiel, um den Starttyp auf manuell zu ändern, führen Sie den Befehl aus:
sc config serviceName start= demandEinen Dienst mit sc löschen
Sobald ein Dienst nicht mehr benötigt wird, können wir ihn mit dem Befehl dauerhaft von Windows entfernen:
sc delete srviceName2. Windows-Dienste mit dem Net-Befehl verwalten
Der net-Befehl in Windows ermöglicht es uns, Dienste über die Befehlszeile zu verwalten. Er erlaubt es Benutzern, Dienste zu starten, zu stoppen, zu pausieren, fortzusetzen und abzufragen, ohne den grafischen Dienst-Manager zu verwenden.
Starten und Stoppen von Diensten mit dem Net-Befehl
Wir können Windows-Dienste mit den Befehlen net start serviceName und net stop serviceName jeweils starten oder stoppen:

Pausieren und Fortsetzen von Diensten mit dem Net-Befehl
Einige Windows-Dienste unterstützen das Pausieren und Fortsetzen anstelle eines vollständigen Stopps. In diesem Fall können wir die Befehle net pause ServiceName und net continue ServiceName jeweils verwenden:

Den Dienststatus mit dem Net-Befehl überprüfen
Der Net-Befehl selbst bietet keine direkte Möglichkeit, den Status eines bestimmten Dienstes zu überprüfen, aber wir können ihn zusammen mit dem findstr-Befehl verwenden, um die Ergebnisse zu filtern. Zum Beispiel, um zu überprüfen, ob der angegebene Dienst läuft, geben Sie ein:
net start | findstr "ServiceName"Wenn der angegebene Dienst läuft, gibt der Befehl seinen Namen zurück; andernfalls gibt es keine Ausgabe.
Dienste remote mit dem Net-Befehl verwalten
Wir können den Net-Befehl verwenden, um Dienste auf Remote-Computern zu verwalten, indem wir den Computernamen angeben. Zum Beispiel werden die Befehle net start ServiceName /S RemotePC und net stop ServiceName /S RemotePC verwendet, um Dienste auf einem Remote-Computer zu starten oder zu stoppen.
3. Windows-Dienste mit PowerShell-Cmdlets verwalten
PowerShell bietet eine fortschrittlichere Kontrolle über Windows-Dienste mit integrierten Cmdlets wie Get-Service, Start-Service, Stop-Service und Restart-Service. Diese Cmdlets ermöglichen es Benutzern, den Status eines Dienstes zu überprüfen, ihn zu starten oder zu stoppen und ihn bei Bedarf sogar neu zu starten.
PowerShell-Cmdlets liefern detaillierte Ausgaben, einschließlich Dienststatus, Anzeigename und abhängige Dienste. Diese Cmdlets ermöglichen Skripting und Automatisierung, was sie nützlich für die effiziente Verwaltung mehrerer Dienste macht.
Die Flexibilität und leistungsstarken Funktionen von PowerShell machen es zum bevorzugten Werkzeug für Administratoren, die Windows-Dienste verwalten.
Den Dienststatus mit Cmdlets abrufen
Wir können das Cmdlet Get-Service -Name ServiceName verwenden, um die Details über den angegebenen Dienst zu erhalten. Der folgende Befehl gibt beispielsweise den Status des MySQL80-Dienstes zurück und zeigt, ob er läuft oder gestoppt ist:
Get-Service-Name MySQL80
Dienste mit PowerShell-Cmdlets abfragen
Wir können den Befehl Get-Service verwenden, um die Dienste basierend auf bestimmten Kriterien abzufragen. Zum Beispiel können wir alle derzeit laufenden Dienste mit dem Befehl abrufen:
Get-Service|Where-Object{$_.Status -eq'Running'}
Dienste mit PowerShell-Cmdlets starten und stoppen
Wir können einen bestimmten Dienst mit den Cmdlets Start-Service und Stop-Service jeweils starten oder stoppen. Zum Beispiel verwenden wir PowerShell-Befehle, um den MySQL80-Dienst zu starten, zu stoppen und seinen Status zu überprüfen:
Start-Service-Name MySQL80
Stop-Service-Name MySQL80
Get-Service-Name MySQL80
Den Starttyp des Dienstes mit PowerShell-Cmdlets ändern
PowerShell-Cmdlets ermöglichen es uns, den Starttyp des Dienstes zu aktualisieren. Zum Beispiel können wir die folgenden Cmdlets ausführen, um einen Dienst so zu konfigurieren, dass er automatisch mit dem System startet, manuelles Starten erfordert oder deaktiviert ist:
Set-Service-Name ServiceName -StartupType Automatic
Set-Service-Name ServiceName -StartupType Manual
Set-Service-Name ServiceName -StartupType DisabledDiese Cmdlets helfen Administratoren, das Verhalten von Diensten effizient zu verwalten, wodurch sichergestellt wird, dass essentielle Dienste nach Bedarf gestartet werden, während unnötige Dienste am Laufen gehindert werden.
Remote-Dienste mit Cmdlets verwalten
PowerShell ermöglicht auch die Verwaltung von Diensten auf Remote-Computern, indem die Namen der entfernten Computer angegeben werden. Zum Beispiel ruft der Befehl Get-Service -Name ServiceName -ComputerName RemotePC den Status eines bestimmten Dienstes ab, der auf einem Remote-Computer mit dem Namen RemotePC läuft, wodurch Administratoren Dienste remote überwachen können.
Ähnlich versucht der Befehl Restart-Service -Name ServiceName -ComputerName serviceName, den angegebenen Dienst auf einem Remote-Computer neu zu starten. Damit wird sichergestellt, dass der Dienst neu gestartet wird, ohne dass direkter Zugriff auf die Maschine erforderlich ist. Die Verwaltung von Remote-Diensten erfordert jedoch geeignete Berechtigungen und die Aktivierung von PowerShell-Remoting.
4. Automatisieren Sie Dienstverwaltungsaufgaben
PowerShell-Skripte ermöglichen die Automatisierung der Dienstverwaltung, was die Überwachung und Kontrolle von Windows-Diensten ohne manuelles Eingreifen erleichtert. Wir können ein Skript erstellen, das kontinuierlich den Status eines bestimmten Dienstes überprüft und ihn neu startet, wenn er unerwartet stoppt.
Zum Beispiel überprüft das folgende Skript, ob der MySQL80-Dienst läuft und startet ihn neu, wenn er gestoppt ist:
$serviceName = "MySQL80"
$service = Get-Service-Name $serviceName
if($service.Status -ne"Running"){
Restart-Service-Name $serviceName -Force
Write-Output"$serviceName wurde gestoppt und wurde neu gestartet."
}else{
Write-Output"$serviceName läuft bereits."
}Standardmäßig beschränkt Windows das Ausführen von Skripten. Um die Ausführung zu ermöglichen, führen Sie zuerst den Befehl aus:
Set-ExecutionPolicy RemoteSignedNavigieren Sie nun zum Speicherort des Skripts und führen Sie den Befehl .\serviceScript.ps1 aus, um das Skript auszuführen:
Die Verwaltung von Windows-Diensten über die Befehlszeile gibt Ihnen die vollständige Kontrolle, ohne auf den grafischen Dienst-Manager angewiesen zu sein. Egal, ob Sie sc.exe, net oder PowerShell-Cmdlets verwenden, jede Methode bietet effiziente Möglichkeiten, Dienste zu starten, zu stoppen und zu konfigurieren.
Die Skripting-Fähigkeiten von PowerShell ermöglichen eine einfache Automatisierung, sodass Sie Dienste nahtlos überwachen und verwalten können. Wenn Sie diese Tools beherrschen, können Sie Probleme beheben, die Systemleistung optimieren und sicherstellen, dass kritische Dienste reibungslos laufen.
Für weitere Möglichkeiten zur Optimierung Ihres Windows-Systems und zur Behebung häufiger Probleme lesen Sie diese Anleitungen zur Behebung von Windows-Problemen und zur Optimierung Ihres PCs für eine bessere Leistung.