Startet, beendet und hält einen Dienst an und ändert seine Eigenschaften.

Syntax

Set-Service [-Name] <string> [-Beschreibung <string>] [-DisplayName <string>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-Bestätigung] [-WhatIf] [<CommonParameters>]

Set-Service [-Beschreibung <string>] [-DisplayName <string>] [-InputObject <ServiceController>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-Bestätigung] [-WhatIf] [<CommonParameters>]

Beschreibung

Mit dem Cmdlet "Set-Service" werden die Eigenschaften eines lokalen oder Remotediensts geändert, einschließlich Status, Beschreibung, Anzeigename und Startmodus. Sie können mit diesem Cmdlet einen Dienst starten, beenden oder anhalten (unterbrechen). Geben Sie zum Identifizieren des Diensts den Dienstnamen ein, senden Sie ein Dienstobjekt, oder übergeben Sie einen Dienstnamen oder ein Dienstobjekt über die Pipeline an Set-Service.

Parameter

-ComputerName <string[]>

Gibt einen oder mehrere Computer an. Der Standardwert ist der lokale Computer.

Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen 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 Set-Service auch dann verwenden, wenn der Computer nicht für das Ausführen von Remotebefehlen konfiguriert ist.

Erforderlich?

false

Position?

named

Standardwert

local computer

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-Beschreibung <string>

Gibt eine neue Beschreibung für den Dienst an.

Die Beschreibung des Diensts wird in der Computerverwaltung unter "Dienste" angezeigt. "Description" ist keine Eigenschaft des ServiceController-Objekts, das Get-Service abruft. Rufen Sie zum Anzeigen der Dienstbeschreibung mit Get-WmiObject ein Win32_Service-Objekt ab, das den Dienst darstellt.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-DisplayName <string>

Gibt einen neuen Anzeigenamen für den Dienst an.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-InputObject <ServiceController>

Gibt ein ServiceController-Objekt an, das den zu ändernden Dienst darstellt. Geben Sie eine Variable ein, die das Objekt enthält, oder einen Befehl oder Ausdruck, mit dem das Objekt abgerufen wird, z. B. den Befehl "Get-Service". Sie können ein Dienstobjekt auch über die Pipeline an Set-Service übergeben.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue)

Platzhalterzeichen akzeptieren?

false

-Name <string>

Gibt den Dienstnamen des zu ändernden Diensts an. Platzhalter sind nicht zulässig. Sie können einen Dienstnamen auch über die Pipeline an Set-Service übergeben.

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue, ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-PassThru

Gibt Objekte zurück, die die geänderten Dienste darstellen. Standardmäßig wird von diesem Cmdlet keine Ausgabe generiert.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-StartupType <ServiceStartMode>

Ändert den Startmodus des Diensts. Gültige Werte für "StartupType":

– Automatic: Der Dienst wird beim Systemstart gestartet.

– Manual: Der Dienst kann nur durch einen Benutzer oder ein Programm gestartet werden.

– Disabled: Der Dienst kann nicht gestartet werden.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Status <string>

Startet, beendet oder hält die Dienste an. Gültige Werte:

– Running: Startet den Dienst.

– Stopped: Beendet den Dienst.

– Paused: Unterbricht den Dienst.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Bestätigung

Fordert Sie vor der Ausführung des Befehls zur Bestätigung auf.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-WhatIf

Beschreibt die Auswirkungen einer Ausführung des Befehls, ohne den Befehl tatsächlich auszuführen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

System.ServiceProcess.ServiceController, System.String

Sie können ein Dienstobjekt oder eine Zeichenfolge, die einen Dienstnamen enthält, über die Pipeline an Set-Service übergeben.

Ausgaben

None

Dieses Cmdlet gibt keine Objekte zurück.

Hinweise

Wenn Sie Set-Service unter Windows Vista und höheren Versionen von Windows verwenden möchten, starten Sie Windows PowerShell mit der Option "Als Administrator ausführen".

Mit Set-Service können nur dann Dienste gesteuert werden, wenn der aktuelle Benutzer über die entsprechende Berechtigung verfügt. Wenn ein Befehl nicht ordnungsgemäß verarbeitet wird, verfügen Sie u. U. nicht über die erforderlichen Berechtigungen.

Geben Sie "Get-Service" ein, um die Dienstnamen und die Anzeigenamen der Dienste auf dem System zu suchen. Die Dienstnamen werden in der Spalte "Name" und die Anzeigenamen in der Spalte "DisplayName" aufgeführt.

Beispiel 1

C:\PS>set-service -name lanmanworkstation -DisplayName "LanMan Workstation"

Beschreibung
-----------
Mit diesem Befehl wird der Anzeigename des Diensts "lanmanworkstation" in "LanMan Workstation" geändert. (Der Standardname ist "Workstation".)






Beispiel 2

C:\PS>get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

C:\PS> set-service sysmonlog -startuptype automatic

C:\PS> get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

C:\PS> get-wmiobject win32_service | format-table Name, StartMode -auto

Name                                  StartMode
----                                  ---------
AdtAgent                              Auto
Alerter                               Disabled
ALG                                   Manual
AppMgmt                               Manual
...

Beschreibung
-----------
Mit diesen Befehlen wird der Starttyp des Diensts für Leistungsprotokolle und -benachrichtigungen (SysmonLog) abgerufen, der Startmodus auf "Automatic" festgelegt und anschließend das Ergebnis der Änderung angezeigt.

Diese Befehle verwenden das Cmdlet "Get-WmiObject", um das Win32_Service-Objekt für den Dienst abzurufen, da das von Get-Service zurückgegebene ServiceController-Objekt den Startmodus nicht enthält.

Im ersten Befehl wird das WMI-Objekt (Windows Management Instrumentation, Windows-Verwaltungsinstrumentation), das den SysmonLog-Dienst darstellt, mit dem Cmdlet "Get-WmiObject" abgerufen. In der Standardausgabe dieses Befehls wird der Startmodus des Diensts angezeigt. 

Im zweiten Befehl wird der Startmodus mit "Set-Service" in "Automatic" geändert. Anschließend wird der erste Befehl noch einmal ausgeführt, um die Änderung anzuzeigen.

Der letzte Befehl zeigt den Startmodus aller Dienste auf dem Computer an.






Beispiel 3

C:\PS>set-service -name Schedule -computername S1 -description "Configures and schedules tasks."

C:\PS> get-wmiobject win32_service -computername s1 | where-object {$_.Name -eq "Schedule"} | format-list Name, Description

Beschreibung
-----------
Mit diesen Befehlen wird die Beschreibung des Taskplaner-Diensts auf dem Remotecomputer "S1" geändert und das Ergebnis anschließend angezeigt.

Diese Befehle verwenden das Cmdlet "Get-WmiObject", um das Win32_Service-Objekt für den Dienst abzurufen, da das von Get-Service zurückgegebene ServiceController-Objekt die Dienstbeschreibung nicht enthält.

Im ersten Befehl wird die Beschreibung mit dem Befehl "Set-Service" geändert. Der Dienst wird mit seinem Dienstnamen "Schedule" angegeben.

Im zweiten Befehl wird eine Instanz von "WMI Win32_Service", die den Taskplaner-Dienst darstellt, mit dem Cmdlet "Get-WmiObject" abgerufen. Mit dem ersten Element im Befehl werden alle Instanzen der Win32_service-Klasse abgerufen. 

Der Pipelineoperator (|) übergibt das Ergebnis an das Cmdlet "Where-Object", das Instanzen auswählt, deren Name-Eigenschaft den Wert "Schedule" aufweist. 

Ein weiterer Pipelineoperator übergibt das Ergebnis an das Cmdlet "Format-List", das die Ausgabe als Liste formatiert, die nur die Name-Eigenschaft und die Description-Eigenschaft enthält.






Beispiel 4

C:\PS>set-service winrm -status Running -passthru -computername Server02

Beschreibung
-----------
Mit diesem Befehl wird der Dienst "WinRM" auf dem Computer "Server02" gestartet. Der Befehl gibt mit dem Status-Parameter den gewünschten Status ("running") an. Mit dem PassThru-Parameter wird Set-Service veranlasst, ein Objekt zurückzugeben, das den WinRM-Dienst darstellt.






Beispiel 5

C:\PS>get-service schedule -computername S1, S2 | set-service -status paused

Beschreibung
-----------
Dieser Befehl hält den Dienst "Schedule" auf den Remotecomputern "S1" und "S2" an. Der Dienst wird mit dem Cmdlet "Get-Service" abgerufen. Ein Pipelineoperator (|) sendet den Dienst an das Cmdlet "Set-Service", das seinen Status in "Paused" ändert.






Beispiel 6

C:\PS>$s = get-service schedule

C:\PS> set-service -inputobject $s -status stopped

Beschreibung
-----------
Mit diesen Befehlen wird der Dienst "Schedule" auf dem lokalen Computer beendet. 

Im ersten Befehl wird mit dem Cmdlet "Get-Service" der Dienst "Schedule" abgerufen. Der Befehl speichert den Dienst in der Variablen "$s".

Der zweite Befehl ändert mit dem Cmdlet "Set-Service" den Status des Diensts "Schedule" in "Beendet". Mit dem InputObject-Parameter wird der in der Variablen "$s" gespeicherte Dienst gesendet. Mit dem Status-Parameter wird der gewünschte Status angegeben.






Siehe auch




Inhaltsverzeichnis