Get-Service

Ruft die Dienste auf einem lokalen Computer oder einem Remotecomputer ab.

Syntax

Get-Service
   [[-Name] <String[]>]
   [-ComputerName <String[]>]
   [-DependentServices]
   [-RequiredServices]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [<CommonParameters>]
Get-Service
   [-ComputerName <String[]>]
   [-DependentServices]
   [-RequiredServices]
   -DisplayName <String[]>
   [-Include <String[]>]
   [-Exclude <String[]>]
   [<CommonParameters>]
Get-Service
   [-ComputerName <String[]>]
   [-DependentServices]
   [-RequiredServices]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-InputObject <ServiceController[]>]
   [<CommonParameters>]

Beschreibung

Das Cmdlet Get-Service ruft Objekte ab, die die Dienste auf einem lokalen Computer oder auf einem Remotecomputer darstellen, einschließlich ausgeführter und beendeter Dienste.

Sie können dieses Cmdlet leiten, um nur bestimmte Dienste abzurufen, indem Sie den Dienstnamen oder den Anzeigenamen der Dienste angeben, oder Sie können Dienstobjekte an dieses Cmdlet weiterleiten.

Beispiele

Beispiel 1: Abrufen aller Dienste auf dem Computer

Get-Service

Dieser Befehl ruft alle Dienste auf dem Computer ab. Es verhält sich so, als ob Sie eingegeben haben Get-Service *. In der Standardanzeige werden der Status, der Dienstname und der Anzeigename der einzelnen Dienste angezeigt.

Beispiel 2: Abrufen von Diensten, die mit einer Suchzeichenfolge beginnen

Get-Service "wmi*"

Dieser Befehl ruft Dienste mit Dienstnamen ab, die mit WMI (dem Akronym für Die Windows-Verwaltungsinstrumentation) beginnen.

Beispiel 3: Anzeigen von Diensten, die eine Suchzeichenfolge enthalten

Get-Service -Displayname "*network*"

Dieser Befehl zeigt Dienste mit einem Anzeigenamen an, der das Wortnetzwerk enthält. Durch das Suchen des Anzeigenamens können Sie Netzwerkdienste suchen, selbst wenn der Dienstname nicht das Wort %%amp;quot;Net%%amp;quot; enthält, beispielsweise %%amp;quot;xmlprov%%amp;quot; (der Netzwerkbereitstellungsdienst).

Beispiel 4: Abrufen von Diensten, die mit einer Suchzeichenfolge und einem Ausschluss beginnen

Get-Service -Name "win*" -Exclude "WinRM"

Diese Befehle erhalten nur die Dienste mit Dienstnamen, die mit dem WinRM-Dienst beginnen.

Beispiel 5: Anzeigen von Diensten, die derzeit aktiv sind

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

Dieser Befehl zeigt nur die Derzeit aktiven Dienste an. Es verwendet das Get-Service-Cmdlet , um alle Dienste auf dem Computer abzurufen. Der Pipelineoperator (|) übergibt die Ergebnisse an das Cmdlet Where-Object, das nur die Dienste mit einer Statuseigenschaft auswählt, die ausgeführt wird.

%%amp;quot;Status%%amp;quot; ist nur eine der Eigenschaften von Dienstobjekten. Um alle Eigenschaften anzuzeigen, geben Sie den Typ Get-Service | Get-Member.

Beispiel 6: Abrufen der Dienste auf einem Remotecomputer

Get-Service -ComputerName "Server02"

Dieser Befehl ruft die Dienste auf dem Remotecomputer %%amp;quot;Server02%%amp;quot; ab.

Da der ComputerName-Parameter von Get-Service nicht Windows PowerShell Remoting verwendet, können Sie diesen Parameter auch dann verwenden, wenn der Computer nicht für das Remoting in Windows PowerShell konfiguriert ist.

Beispiel 7: Auflisten der Dienste auf dem lokalen Computer mit abhängigen Diensten

Get-Service |
  Where-Object {$_.DependentServices} |
    Format-List -Property Name, DependentServices, @{
      Label="NoOfDependentServices"; Expression={$_.dependentservices.count}
    }

Name                  : AudioEndpointBuilder
DependentServices     : {AudioSrv}
NoOfDependentServices : 1

Name                  : Dhcp
DependentServices     : {WinHttpAutoProxySvc}
NoOfDependentServices : 1
...

Der erste Befehl verwendet das Cmdlet Get-Service , um die Dienste auf dem Computer abzurufen. Ein Pipelineoperator (|) sendet die Dienste an das Where-Object-Cmdlet , das die Dienste auswählt, deren DependentServices-Eigenschaft nicht null ist.

Die Ergebnisse werden mit einem anderen Pipelineoperator an das Cmdlet %%amp;quot;Format-List%%amp;quot; gesendet. Der Befehl verwendet den Parameter "Property ", um den Namen des Diensts, den Namen der abhängigen Dienste und eine berechnete Eigenschaft anzuzeigen, die die Anzahl der abhängigen Dienste anzeigt, die jeder Dienst hat.

Beispiel 8: Sortieren von Diensten nach Eigenschaftswert

Get-Service "s*" | Sort-Object status

Status   Name               DisplayName
------   ----               -----------
Stopped  stisvc             Windows Image Acquisition (WIA)
Stopped  SwPrv              MS Software Shadow Copy Provider
Stopped  SysmonLog          Performance Logs and Alerts
Running  Spooler            Print Spooler
Running  srservice          System Restore Service
Running  SSDPSRV            SSDP Discovery Service
Running  ShellHWDetection   Shell Hardware Detection
Running  Schedule           Task Scheduler
Running  SCardSvr           Smart Card
Running  SamSs              Security Accounts Manager
Running  SharedAccess       Windows Firewall/Internet Connectio...
Running  SENS               System Event Notification
Running  seclogon           Secondary Logon

Dieser Befehl zeigt, dass beim Sortieren von Diensten in aufsteigender Reihenfolge durch den Wert ihrer Statuseigenschaft beendete Dienste angezeigt werden, bevor Dienste ausgeführt werden. Dies geschieht, da der Wert von Status eine Aufzählung ist, in der "Stopp" einen Wert von 1 aufweist und "Running" einen Wert von 4 aufweist.

Verwenden Sie zum ersten Auflisten der Ausgeführten Dienste den Absteigenden Parameter des Cmdlets Sort-Object.

Beispiel 9: Abrufen von Diensten auf mehreren Computern

Get-Service -Name "WinRM" -ComputerName "localhost", "Server01", "Server02" |
 Format-Table -Property MachineName, Status, Name, DisplayName -auto

MachineName    Status  Name  DisplayName
------------   ------  ----  -----------
localhost      Running WinRM Windows Remote Management (WS-Management)
Server01       Running WinRM Windows Remote Management (WS-Management)
Server02       Running WinRM Windows Remote Management (WS-Management)

Dieser Befehl verwendet das Cmdlet Get-Service , um einen Get-Service Winrm-Befehl auf zwei Remotecomputern und dem lokalen Computer ("localhost") auszuführen.

Der Befehl wird auf den Remotecomputern ausgeführt, und die Ergebnisse werden an den lokalen Computer zurückgegeben. Ein Pipelineoperator (|) sendet die Ergebnisse an das Cmdlet "Format-Table ", das die Dienste als Tabelle formatiert. Der Befehl "Format-Tabelle " verwendet den Parameter "Property ", um die in der Tabelle angezeigten Eigenschaften anzugeben, einschließlich der MachineName-Eigenschaft .

Beispiel 10: Abrufen der abhängigen Dienste eines Diensts

Get-Service "WinRM" -RequiredServices

Mit diesem Befehl werden die für den WinRM-Dienst erforderlichen Dienste abgerufen.

Der Befehl gibt den Wert der ServicesDependedOn-Eigenschaft des Diensts zurück.

Beispiel 11: Abrufen eines Diensts über den Pipelineoperator

"WinRM" | Get-Service

Mit diesem Befehl wird der WinRM-Dienst auf dem lokalen Computer abgerufen. In diesem Beispiel wird gezeigt, dass Sie eine Dienstnamenzeichenfolge (in Anführungszeichen eingeschlossen) an Get-Service übergeben können.

Parameter

-ComputerName

Ruft die Dienste ab, die auf den angegebenen Computern ausgeführt werden. Die Standardeinstellung ist der lokale Computer.

Geben Sie den NetBIOS-Namen, eine IP-Adresse oder einen vollqualifizierten Domänennamen (FQDN) eines Remotecomputers ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, einen Punkt (.) oder localhost ein.

Dieser Parameter beruht nicht auf Windows PowerShell-Remoting. Sie können den ComputerName-Parameter von Get-Service verwenden, auch wenn Ihr Computer nicht so konfiguriert ist, dass Remotebefehle ausgeführt werden.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DependentServices

Gibt an, dass dieses Cmdlet nur die Dienste abruft, die vom angegebenen Dienst abhängen.

Standardmäßig ruft dieses Cmdlet alle Dienste ab.

Type:SwitchParameter
Aliases:DS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayName

Gibt als Zeichenfolgenarray die Anzeigenamen von Diensten an, die abgerufen werden sollen. Platzhalter sind zulässig. Standardmäßig ruft dieses Cmdlet alle Dienste auf dem Computer ab.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-Exclude

Gibt als Zeichenfolgenarray einen Dienst oder einen Dienst an, den dieses Cmdlet aus dem Vorgang ausschließt. Der Wert dieses Parameters qualifiziert den Name-Parameter . Geben Sie ein Namenselement oder -muster wie %%amp;quot;s*%%amp;quot; ein. Platzhalter sind zulässig.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

Gibt als Zeichenfolgenarray einen Dienst oder dienste an, den dieses Cmdlet in den Vorgang einschließt. Der Wert dieses Parameters qualifiziert den Name-Parameter . Geben Sie ein Namenselement oder -muster wie %%amp;quot;s*%%amp;quot; ein. Platzhalter sind zulässig.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

Gibt ServiceController-Objekte an, die die abzurufenden Dienste darstellen. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, mit dem die Objekte abgerufen werden. Sie können auch ein Dienstobjekt an dieses Cmdlet weiterleiten.

Type:ServiceController[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Gibt die Dienstnamen der abzurufenden Dienste an. Platzhalter sind zulässig. Standardmäßig ruft dieses Cmdlet alle Dienste auf dem Computer ab.

Type:String[]
Aliases:ServiceName
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-RequiredServices

Gibt an, dass dieses Cmdlet nur die Dienste abruft, die dieser Dienst benötigt.

Dieser Parameter ruft den Wert der ServicesDependedOn-Eigenschaft des Diensts ab. Standardmäßig ruft dieses Cmdlet alle Dienste ab.

Type:SwitchParameter
Aliases:SDO, ServicesDependedOn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Eingaben

System.ServiceProcess.ServiceController, System.String

Sie können ein Dienstobjekt oder einen Dienstnamen an dieses Cmdlet weiterleiten.

Ausgaben

ServiceController

Dieses Cmdlet gibt Objekte zurück, die die Dienste auf dem Computer darstellen.

Hinweise

Sie können auch auf Get-Service verweisen, indem Sie den integrierten Alias "gsv" verwenden. Weitere Informationen finden Sie unter %%amp;quot;about_Aliases%%amp;quot;.

Dieses Cmdlet kann Dienste nur anzeigen, wenn der aktuelle Benutzer über die Berechtigung zum Anzeigen verfügt. Wenn dieses Cmdlet keine Dienste anzeigt, verfügen Sie möglicherweise nicht über die Berechtigung, diese anzuzeigen.

Geben Sie den Get-ServiceNamen des Diensts und den Anzeigenamen jedes Diensts in Ihrem System ein. Die Dienstnamen werden in der Spalte %%amp;quot;Name%%amp;quot; und die Anzeigenamen in der Spalte %%amp;quot;DisplayName%%amp;quot; aufgeführt.

Wenn Sie aufsteigend nach Statuswert sortieren, werden Dienste mit dem Status %%amp;quot;Stopped%%amp;quot; vor Diensten mit dem Status %%amp;quot;Running%%amp;quot; angezeigt. Die Status-Eigenschaft eines Diensts ist ein Enumerationswert, in dem die Namen der Status ganzzahlige Werte darstellen. Die Sortierung basiert auf dem ganzzahligen Wert, nicht dem Namen. %%amp;quot;Running%%amp;quot; wird vor %%amp;quot;Stopped%%amp;quot; angezeigt, da %%amp;quot;Stopped%%amp;quot; über den Wert %%amp;quot;1%%amp;quot; verfügt. %%amp;quot;Running%%amp;quot; verfügt über den Wert %%amp;quot;4%%amp;quot;.