Set-Service

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

Syntax

Set-Service
   [-Name] <String>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-Status <String>]
   [-SecurityDescriptorSddl <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Service
   [-InputObject] <ServiceController>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-SecurityDescriptorSddl <String>]
   [-Status <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Beschreibung

Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.

Das Set-Service Cmdlet ändert die Eigenschaften eines Diensts wie Status, Beschreibung, DisplayName und StartupType. Set-Service kann einen Dienst starten, beenden, anhalten oder anhalten. Um einen Dienst zu identifizieren, geben Sie ihren Dienstnamen ein, oder senden Sie ein Dienstobjekt. Oder senden Sie einen Dienstnamen oder ein Dienstobjekt nach unten an Set-Servicedie Pipeline.

Beispiele

Beispiel 1: Ändern eines Anzeigenamens

In diesem Beispiel wird der Anzeigename eines Diensts geändert. Verwenden Sie Get-Service, um den ursprünglichen Anzeigenamen anzuzeigen.

Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"

Set-Service verwendet den Parameter "Name ", um den Namen des Diensts anzugeben, LanmanWorkstation. Der DisplayName-Parameter gibt den neuen Anzeigenamen lanMan Workstation an.

Beispiel 2: Ändern des Starttyps von Diensten

In diesem Beispiel wird gezeigt, wie Sie den Starttyp eines Diensts ändern.

Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status

Name  StartType   Status
----  ---------   ------
BITS  Automatic  Running

Set-Service verwendet den Parameter "Name " zum Angeben des Namens des Diensts, BITS. Der Parameter "StartupType " legt den Dienst auf "Automatisch" fest.

Get-Service verwendet den Parameter "Name ", um den BITS-Dienst anzugeben und das Objekt nach unten zu senden. Select-Object verwendet den Eigenschaftsparameter , um den Status des BITS-Diensts anzuzeigen.

Beispiel 3: Ändern der Beschreibung eines Diensts

In diesem Beispiel wird die Beschreibung des BITS-Diensts geändert und das Ergebnis angezeigt.

Das Get-CimInstance Cmdlet wird verwendet, da es ein Win32_Service -Objekt zurückgibt, das die Beschreibung des Diensts enthält.

Get-CimInstance Win32_Service -Filter 'Name = "BITS"'  | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
              disabled, then any applications that depend on BITS, such as Windows Update or MSN
              Explorer, will be unable to automatically download programs and other information.

Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth.

Get-CimInstance sendet das Objekt nach unten, Format-List und zeigt den Namen und die Beschreibung des Diensts an. Für Vergleichszwecke wird der Befehl vor und nach der Aktualisierung der Beschreibung ausgeführt.

Set-Service verwendet den Parameter "Name ", um den BITS-Dienst anzugeben. Der Beschreibungsparameter gibt den aktualisierten Text für die Beschreibung der Dienste an.

Beispiel 4: Starten eines Diensts

In diesem Beispiel wird ein Dienst gestartet.

Set-Service -Name WinRM -Status Running -PassThru

Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Manag...

Set-Service verwendet den Parameter "Name ", um den Dienst anzugeben, WinRM. Der Statusparameter verwendet den Wert "Ausführen ", um den Dienst zu starten. Der PassThru-Parameter gibt ein ServiceController-Objekt aus, das die Ergebnisse anzeigt.

Beispiel 5: Anhalten eines Diensts

In diesem Beispiel wird die Pipeline verwendet, um den Dienst anzuhalten.

Get-Service -Name Schedule | Set-Service -Status Paused

Get-Service verwendet den Parameter "Name ", um den Zeitplandienst anzugeben, und sendet das Objekt nach unten. Set-Service Verwendet den Statusparameter , um den Dienst auf "Angehalten" festzulegen.

Beispiel 6: Beenden eines Diensts

In diesem Beispiel wird eine Variable verwendet, um einen Dienst zu beenden.

$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped

Get-Service verwendet den Parameter "Name " zum Angeben des Diensts, "Zeitplan". Das Objekt wird in der Variable gespeichert. $S Set-Service verwendet den InputObject-Parameter und gibt das gespeicherte $SObjekt an. Der Statusparameter legt den Dienst auf "Beendet" fest.

Beispiel 7: Beenden eines Diensts auf einem Remotesystem

In diesem Beispiel wird ein Dienst auf einem Remotecomputer beendet. Weitere Informationen finden Sie unter "Aufruf-Befehl".

$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
  Set-Service -InputObject $S -Status Stopped
}

Get-Credential fordert einen Benutzernamen und ein Kennwort auf, und speichert die Anmeldeinformationen in der $Cred Variablen. Get-Service verwendet den Parameter "Name ", um den Zeitplandienst anzugeben. Das Objekt wird in der Variable gespeichert. $S

Invoke-Command Verwendet den ComputerName-Parameter , um einen Remotecomputer anzugeben. Der Parameter "Anmeldeinformationen " verwendet die $Cred Variable, um sich auf dem Computer anzumelden. Die ScriptBlock-AufrufeSet-Service. Der InputObject-Parameter gibt das gespeicherte $SDienstobjekt an. Der Statusparameter legt den Dienst auf "Beendet" fest.

Beispiel 8: Ändern von Anmeldeinformationen eines Diensts

In diesem Beispiel werden die Anmeldeinformationen geändert, die zum Verwalten eines Diensts verwendet werden.

$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential

Get-Credential fordert einen Benutzernamen und ein Kennwort auf, und speichert die Anmeldeinformationen in der $credential Variablen. Set-Service verwendet den Parameter "Name ", um den Zeitplandienst anzugeben. Der Parameter "Anmeldeinformationen " verwendet die $credential Variable und aktualisiert den Zeitplandienst .

Beispiel 9: Ändern des SecurityDescriptor eines Diensts

In diesem Beispiel wird der SecurityDescriptor eines Diensts geändert.

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL

Der SecurityDescriptor wird in der $SDDL Variable gespeichert. Set-Service verwendet den Parameter "Name ", um den BITS-Dienst anzugeben. Der SecurityDescriptorSddl-Parameter verwendet $SDDL , um den SecurityDescriptor für den BITS-Dienst zu ändern.

Parameter

-Confirm

Fordert Sie vor der Ausführung Set-Servicezur Bestätigung auf.

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

-Credential

Gibt das vom Dienst verwendete Konto als Dienstanmeldungskonto an.

Geben Sie einen Benutzernamen ein, z. B. "User01 " oder " Domäne01\User01", oder geben Sie ein PSCredential-Objekt ein, z. B. ein vom Cmdlet generiertes Get-Credential Objekt. Wenn Sie einen Benutzernamen eingeben, fordert dieses Cmdlet Sie zu einem Kennwort auf.

Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert und das Kennwort wird als SecureString gespeichert.

Hinweis

Weitere Informationen zum SecureString-Datenschutz finden Sie unter Wie sicher ist SecureString?.

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Gibt eine neue Beschreibung für den Dienst an.

Die Dienstbeschreibung wird in der Computerverwaltung, Dienste angezeigt. Die Beschreibung ist keine Eigenschaft des Get-ServiceServiceController-Objekts . Verwenden Sie Get-CimInstance zum Anzeigen der Dienstbeschreibung ein Win32_Service -Objekt, das den Dienst darstellt.

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

-DisplayName

Gibt einen neuen Anzeigenamen für den Dienst an.

Type:String
Aliases:DN
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Gibt den Stoppmodus des Diensts an. Dieser Parameter funktioniert nur, wenn -Status Stopped er verwendet wird. Wenn dies aktiviert ist, wird die abhängigen Dienste beendet, Set-Service bevor der Zieldienst beendet wird. Standardmäßig werden Ausnahmen ausgelöst, wenn andere ausgeführte Dienste vom Zieldienst abhängig sind.

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

-InputObject

Gibt ein ServiceController-Objekt an, das den Dienst darstellt, der geändert werden soll. Geben Sie eine Variable ein, die das Objekt enthält, oder geben Sie einen Befehl oder Ausdruck ein, der das Objekt abruft, z. B. einen Get-Service Befehl. Sie können die Pipeline verwenden, um ein Dienstobjekt an Set-Service.

Type:ServiceController
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Gibt den Dienstnamen des zu ändernden Diensts an. Die Freihalterzeichen sind nicht zulässig. Sie können die Pipeline verwenden, um einen Dienstnamen an Set-Service.

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

-PassThru

Gibt ein ServiceController-Objekt zurück, das die Dienste darstellt, die geändert wurden. Standardmäßig Set-Service wird keine Ausgabe generiert.

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

-SecurityDescriptorSddl

Gibt den SecurityDescriptor für den Dienst im Sddl-Format an.

Type:String
Aliases:sd
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartupType

Gibt den Startmodus des Diensts an

Die zulässigen Werte für diesen Parameter sind wie folgt:

  • Automatisch – Der Dienst wird gestartet oder vom Betriebssystem gestartet, beim Systemstart. Wenn ein automatisch gestarteter Dienst von einem manuell gestarteten Dienst abhängig ist, wird der manuell gestartete Dienst beim Systemstart ebenfalls automatisch gestartet.
  • AutomaticDelayedStart – Startet kurz nach dem Start des Systems.
  • Deaktiviert – Der Dienst ist deaktiviert und kann nicht von einem Benutzer oder einer Anwendung gestartet werden.
  • InvalidValue – Hat keinen Effekt. Das Cmdlet gibt keinen Fehler zurück, aber der StartType des Diensts wird nicht geändert.
  • Manuell – Der Dienst wird nur manuell gestartet, von einem Benutzer, mithilfe des Dienststeuerungs-Managers oder durch eine Anwendung.
Type:Microsoft.PowerShell.Commands.ServiceStartupType
Aliases:StartMode, SM, ST, StartType
Accepted values:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Status

Gibt den Status für den Dienst an.

Die zulässigen Werte für diesen Parameter sind wie folgt:

  • Angehalten. Hält den Dienst an.
  • Wird ausgeführt. Startet den Dienst.
  • Stopped(Beendet): Dies ist der anfängliche Status des Kanals nach seiner Erstellung (es sei denn, im Portal wurde das automatische Starten gewählt). Beendet den Dienst.
Type:String
Accepted values:Paused, Running, Stopped
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt, was geschieht, wenn Set-Service ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

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

Eingaben

System.ServiceProcess.ServiceController, System.String

Sie können die Pipeline verwenden, um ein Dienstobjekt oder eine Zeichenfolge zu senden, die einen Dienstnamen Set-Serviceenthält.

Ausgaben

ServiceController

Standardmäßig Set-Service werden keine Objekte zurückgegeben. Verwenden Sie den PassThru-Parameter , um ein ServiceController-Objekt auszugeben.

Hinweise

Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.

Set-Service erfordert erhöhte Berechtigungen. Verwenden Sie die Option "Als Administrator ausführen ".

Set-Service kann nur Dienste steuern, wenn der aktuelle Benutzer über Berechtigungen zum Verwalten von Diensten verfügt. Wenn ein Befehl nicht ordnungsgemäß funktioniert, verfügen Sie möglicherweise nicht über die erforderlichen Berechtigungen.

Um den Dienstnamen oder Anzeigenamen eines Diensts zu finden, verwenden Sie Get-Service. Die Dienstnamen befinden sich in der Spalte "Name ", und die Anzeigenamen befinden sich in der Spalte "DisplayName ".