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, z. B. Status, Description, DisplayName und StartupType. Set-Service
kann einen Dienst starten, beenden, anhalten oder anhalten. Um einen Dienst zu identifizieren, geben Sie den Dienstnamen ein, oder übermitteln Sie ein Dienstobjekt. Oder senden Sie einen Dienstnamen oder ein Dienstobjekt nach unten in der Pipeline an Set-Service
.
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 Dienstnamen LanmanWorkstation anzugeben. Der Parameter DisplayName gibt den neuen Anzeigenamen LanMan Workstation an.
Beispiel 2: Ändern des Starttyps von Diensten
In diesem Beispiel wird gezeigt, wie der Starttyp eines Diensts geändert wird.
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 , um den Dienstnamen BITS anzugeben. Der StartupType-Parameter legt den Dienst auf Automatic fest.
Get-Service
verwendet den Parameter Name , um den BITS-Dienst anzugeben, und sendet das Objekt nach unten in der Pipeline. Select-Object
verwendet den Property-Parameter, um die 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 an die Pipeline Format-List
und zeigt den Namen und die Beschreibung des Diensts an. Zu Vergleichszwecken wird der Befehl vor und nach der Aktualisierung der Beschreibung ausgeführt.
Set-Service
verwendet den Name-Parameter , um den BITS-Dienst anzugeben. Der Description-Parameter 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 WinRM anzugeben. Der Status-Parameter verwendet den Wert Wird ausgeführt , 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 Name-Parameter , um den Schedule-Dienst anzugeben, und sendet das Objekt nach unten in der Pipeline. Set-Service
verwendet den Status-Parameter , 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 , um den Dienst Schedule anzugeben. Das -Objekt wird in der Variablen gespeichert. $S
Set-Service
verwendet den InputObject-Parameter und gibt das gespeicherte $S
Objekt an. Der Parameter Status 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 Invoke-Command.
$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 an und speichert die Anmeldeinformationen in der $Cred
Variablen. Get-Service
verwendet den Name-Parameter , um den Schedule-Dienst anzugeben. Das -Objekt wird in der Variablen gespeichert. $S
Invoke-Command
verwendet den ComputerName-Parameter , um einen Remotecomputer anzugeben. Der Credential-Parameter verwendet die $Cred
Variable, um sich beim Computer anzumelden. Der ScriptBlock ruft auf Set-Service
. Der InputObject-Parameter gibt das gespeicherte $S
Dienstobjekt an. Der Parameter Status legt den Dienst auf Beendet fest.
Beispiel 8: Ändern der 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 an und speichert die Anmeldeinformationen in der $credential
Variablen. Set-Service
verwendet den Name-Parameter , um den Schedule-Dienst anzugeben. Der Parameter Credential verwendet die $credential
Variable und aktualisiert den Schedule-Dienst .
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
Variablen gespeichert. Set-Service
verwendet den Name-Parameter , um den BITS-Dienst anzugeben. Der SecurityDescriptorSddl-Parameter verwendet $SDDL
, um den SecurityDescriptor für den BITS-Dienst zu ändern.
Beispiel 10: Festlegen des Starttyps für mehrere Dienste
Das Set-Service
Cmdlet akzeptiert jeweils nur einen Dienstnamen. Sie können jedoch mehrere Dienste an übergeben, um Set-Service
die Konfiguration mehrerer Dienste zu ändern.
Get-Service SQLWriter,spooler |
Set-Service -StartupType Automatic -PassThru |
Select-Object Name, StartType
Name StartType
---- ---------
spooler Automatic
SQLWriter Automatic
Parameter
-Confirm
Fordert Sie zur Bestätigung auf, bevor Sie ausführen Set-Service
.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Gibt das Konto an, das vom Dienst als Dienstanmeldungskonto verwendet wird.
Geben Sie einen Benutzernamen ein, z. B. User01 oder Domain01\User01, oder geben Sie ein PSCredential-Objekt ein, z. B. ein vom Get-Credential
Cmdlet generiertes Objekt. Wenn Sie einen Benutzernamen eingeben, werden Sie von diesem Cmdlet zur Eingabe eines Kennworts aufgefordert.
Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString gespeichert.
Hinweis
Weitere Informationen zum Schutz von SecureString-Daten 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 unter Computerverwaltung, Dienste angezeigt. Die Beschreibung ist keine Eigenschaft des Get-Service
ServiceController-Objekts . Verwenden Sie Get-CimInstance
zum Anzeigen der Dienstbeschreibung, die ein Win32_Service -Objekt zurückgibt, 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.
Hinweis
In der Set-Service
Regel wird nur mit Windows-Diensten und nicht mit Treibern ausgeführt. Wenn Sie jedoch den Namen eines Treibers angeben, Set-Service
kann der Treiber als Ziel verwendet werden.
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
verwendet wird. Wenn diese Option aktiviert ist, werden 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ängen.
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 zu ändernden Dienst darstellt. 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 zu Set-Service
senden.
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. Wildcardzeichen sind nicht zulässig. Sie können die Pipeline verwenden, um einen Dienstnamen an zu Set-Service
senden.
Hinweis
In der Set-Service
Regel wird nur mit Windows-Diensten und nicht mit Treibern ausgeführt. Wenn Sie jedoch den Namen eines Treibers angeben, Set-Service
kann der Treiber als Ziel verwendet werden.
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 geänderten Dienste darstellt. Standardmäßig Set-Service
generiert keine Ausgabe.
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. Das Konto, das mit diesem Parameter aufruft Set-Service
, muss über die Berechtigungen WRITE_DAC und WRITE_OWNER verfügen. Weitere Informationen finden Sie unter Dienstsicherheit und Zugriffsrechte.
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 beim Systemstart gestartet oder vom Betriebssystem gestartet. 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 keine Auswirkung. Das Cmdlet gibt keinen Fehler zurück, aber der StartupType des Diensts wird nicht geändert.
- Manuell : Der Dienst wird nur manuell, von einem Benutzer, mit dem Dienststeuerungs-Manager oder von einer Anwendung gestartet.
Type: | 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 die 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 bei Ausführungen passieren Set-Service
würde. 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
Sie können ein Dienstobjekt an dieses Cmdlet übergeben.
Sie können eine Zeichenfolge, die einen Dienstnamen enthält, an dieses Cmdlet übergeben.
Ausgaben
None
Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.
Wenn Sie den PassThru-Parameter verwenden, gibt dieses Cmdlet ein ServiceController-Objekt zurück.
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 Dienste nur 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.
Verwenden Sie Get-Service
, um den Dienst- oder Anzeigenamen eines Diensts zu ermitteln. Die Dienstnamen befinden sich in der Spalte Name und die Anzeigenamen in der Spalte DisplayName .