Cmdlet: Prozess- und Dienstverwaltung

Die Verwaltung von Prozessen und Diensten ist ein sehr wichtiger Teil der Systemwartung und automatisierter Abläufe.

PowerShell bietet einen prägnanten und dennoch leistungsstarken Satz von Cmdlets zum Anzeigen, Starten, Beenden, Filtern und Steuern von Prozessen und Diensten auf lokalen (oder entfernten) Computern.

In diesem Abschnitt wird ausführlich erklärt, wie Sie PowerShell zum Verwalten von Prozessen und Diensten verwenden, einschließlich grundlegender Betriebsbefehle, typischer Anwendungsszenarien und häufiger Probleme, um Ihre Effizienz bei der Systemverwaltung zu verbessern.


1. Prozessverwaltung (Prozess)

PowerShell verwendet.NETProzessobjekte, um Prozessvorgänge zu handhaben. Häufige Cmdlets sind:

Cmdlet Funktion
Get-Process Laufende Prozesse abrufen
Stop-Process Angegebene Prozesse beenden
Start-Process Einen neuen Prozess (Programm) starten
Wait-Process Warten, bis ein Prozess endet

Prozesse anzeigen:Get-Process

Alle laufenden Prozesse anzeigen:

Get-Process

Einen bestimmten Prozess anzeigen (z. B. notepad):

Get-Process -Name notepad

Mehrere Prozesse anzeigen:

Get-Process -Name chrome, notepad

Prozessdetails abrufen und sortieren:

Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Stop-Process

Nach Prozessname beenden:

Stop-Process -Name notepad

Nach Prozess-ID beenden:

Stop-Process -Id 1234

Prozesse zwangsweise beenden (um interaktive Eingabeaufforderungen zu vermeiden):

Stop-Process -Name notepad -Force

Prozesse starten:Start-Process

Notepad öffnen:

Start-Process notepad

PowerShell als Administrator öffnen (das aktuelle Fenster benötigt Berechtigung):

Start-Process powershell -Verb RunAs

Starten Sie einen Webbrowser und besuchen Sie eine URL:

Start-Process "https://learn.microsoft.com"

Auf Prozesse warten:Wait-Process

Fortfahren, nachdem der Prozess die Ausführung beendet hat:

Start-Process notepad
Wait-Process -Name notepad
Write-Output "记事本已关闭"

2. Dienstverwaltung (Dienst)

PowerShell bietet umfassende Unterstützung für die Dienstverwaltung. Gängige Cmdlets sind wie folgt:

Cmdlet Funktionsbeschreibung
Get-Service Dienststatus anzeigen
Start-Service Einen Dienst starten
Stop-Service Einen Dienst stoppen
Restart-Service Einen Dienst neu starten
Set-Service Diensteigenschaften ändern

Dienste anzeigen:Get-Service

Alle Dienste anzeigen:

Get-Service

Laufende Dienste filtern:

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

Einen bestimmten Dienst anzeigen:

Get-Service -Name W32Time

Dienste starten und beenden

Den Windows-Zeitdienst starten:

Start-Service -Name W32Time

Einen Dienst beenden (bei unzureichenden Berechtigungen kann ein Fehler auftreten):

Stop-Service -Name W32Time

Dienste neu starten:Restart-Service

Restart-Service -Name W32Time

Diensteinstellungen ändern:Set-Service

Den Dienststarttyp auf Automatisch setzen:

Set-Service -Name W32Time -StartupType Automatic

Einen Dienst deaktivieren:

Set-Service -Name W32Time -StartupType Disabled

3. Unterschiede zwischen Diensten und Prozessen

Vergleichspunkt Service Process
Startmethode Automatischer Start / Manueller Start / Deaktiviert Manuell durch den Benutzer oder durch ein Programm ausgelöst
Ausführungszustand Läuft kontinuierlich im Hintergrund, normalerweise ohne Benutzeroberfläche Kann im Vordergrund interagieren, mit einem kürzeren Lebenszyklus
Verwaltungsmethode Get-Service, Start-Servicewarten Get-Process, Start-Processwarten
Beispiel Windows Update(wuauserv) Notepad, chrome.exe usw.

4. Praktische Beispiele

Beispiel 1: Erkennen und Neustarten eines Dienstes, der ungewöhnlich beendet wurde

$svc = Get-Service -Name Spooler
if ($svc.Status -ne "Running") {
    Restart-Service -Name Spooler
    Write-Output "服务已重启"
}

Beispiel 2: Alle Prozesse mit einer CPU-Auslastung über 50 schließen (mit Vorsicht verwenden)

Get-Process | Where-Object { $_.CPU -gt 50 } | Stop-Process -Force

Hinweis: Solche Vorgänge müssen in einer Testumgebung oder erst dann durchgeführt werden, wenn bestätigt ist, dass kein Risiko besteht.


5. Häufige Probleme und Vorsichtsmaßnahmen

Problem Grund und vorgeschlagene Erklärung
Dienst kann nicht beendet werden Administratorberechtigungen sind erforderlich. Es wird empfohlen, "Run as administrator" zu verwenden
Falsche Schreibweise des Prozessnamens oder Dienstnamens Sie können zunächstGet-ProcessoderGet-Serviceum den genauen Namen zu erhalten
Der Dienst wurde beendet, wird aber weiterhin als Running angezeigt Einige Dienste verfügen über Schutzmechanismen. Es wird empfohlen,Restart-Serviceeinen Neustart zu versuchen

6. Zusammenfassung

PowerShell macht die Verwaltung von Prozessen und Diensten durch seinen standardisierten Befehlssatz einfach und effizient:

  • Verwenden SieGet-*um Informationen anzuzeigen,Start-*/Stop-*um Verhalten zu steuern,Set-*um Eigenschaften zu ändern
  • Pipeline + bedingte Filterung + Objektoperationen eignen sich für Batch-Verwaltungsaufgaben
  • Es kann mit geplanten Aufgaben und Überwachungsskripten kombiniert werden, um ein automatisiertes Ops-System aufzubauen
Andere Erweiterungen