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