New-Service
Erstellt einen neuen Windows-Dienst.
Syntax
New-Service
[-Name] <String>
[-BinaryPathName] <String>
[-DisplayName <String>]
[-Description <String>]
[-SecurityDescriptorSddl <String>]
[-StartupType <ServiceStartupType>]
[-Credential <PSCredential>]
[-DependsOn <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.
Das Cmdlet New-Service
erstellt einen neuen Eintrag für einen Windows-Dienst in der Registrierung und in der Dienstdatenbank. Ein neuer Dienst erfordert eine ausführbare Datei, die während des Diensts ausgeführt wird.
Mit den Parametern dieses Cmdlets können Sie den Anzeigenamen, die Beschreibung, den Starttyp und die Abhängigkeiten des Diensts festlegen.
Beispiele
Beispiel 1: Erstellen eines Diensts
New-Service -Name "TestService" -BinaryPathName 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
Mit diesem Befehl wird ein Dienst namens TestService erstellt.
Beispiel 2: Erstellen eines Diensts mit Beschreibung, Starttyp und Anzeigename
$params = @{
Name = "TestService"
BinaryPathName = 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
DependsOn = "NetLogon"
DisplayName = "Test Service"
StartupType = "Manual"
Description = "This is a test service."
}
New-Service @params
Mit diesem Befehl wird ein Dienst namens TestService erstellt. Es verwendet die Parameter von New-Service
, um eine Beschreibung, einen Starttyp und einen Anzeigenamen für den neuen Dienst anzugeben.
Beispiel 3: Anzeigen des neuen Diensts
Get-CimInstance -ClassName Win32_Service -Filter "Name='testservice'"
ExitCode : 0
Name : testservice
ProcessId : 0
StartMode : Auto
State : Stopped
Status : OK
Dieser Befehl verwendet Get-CimInstance
, um das Win32_Service Objekt für den neuen Dienst abzurufen. Dieses Objekt enthält den Startmodus und die Dienstbeschreibung.
Beispiel 4: Festlegen des SecurityDescriptors eines Diensts beim Erstellen.
In diesem Beispiel wird der SecurityDescriptor des erstellten Diensts hinzugefügt.
$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
$params = @{
BinaryPathName = 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
DependsOn = "NetLogon"
DisplayName = "Test Service"
StartupType = "Manual"
Description = "This is a test service."
SecurityDescriptorSddl = $SDDL
}
New-Service @params
Der SecurityDescriptor- wird in der $SDDLToSet
Variablen gespeichert. Der parameter SecurityDescriptorSddlSddl verwendet $SDDL
, um den SecurityDescriptor- des neuen Diensts festzulegen.
Parameter
-BinaryPathName
Gibt den Pfad der ausführbaren Datei für den Dienst an. Dieser Parameter ist erforderlich.
Der vollqualifizierte Pfad zur Dienst-Binärdatei. Wenn der Pfad ein Leerzeichen enthält, muss er so zitiert werden, dass er richtig interpretiert wird. Beispielsweise sollte d:\my share\myservice.exe
als '"d:\my share\myservice.exe"'
angegeben werden.
Der Pfad kann auch Argumente für einen Automatischstartdienst enthalten. Beispiel: '"d:\my share\myservice.exe" arg1 arg2'
. Diese Argumente werden an den Diensteinstiegspunkt übergeben.
Weitere Informationen finden Sie im lpBinaryPathName Parameter der CreateServiceW-API.
Typ: | String |
Aliase: | Path |
Position: | 1 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Credential
Gibt das vom Dienst verwendete Konto als Dienstanmeldungskontoan.
Geben Sie einen Benutzernamen ein, z. B. User01 oder Domain01\User01, oder geben Sie ein PSCredential-Objekt ein, z. B. ein objekt, das vom Cmdlet Get-Credential
generiert wird. Wenn Sie einen Benutzernamen eingeben, werden Sie von diesem Cmdlet aufgefordert, ein Kennwort einzugeben.
Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString-gespeichert.
Anmerkung
Weitere Informationen zu SecureString Datenschutz finden Sie unter Wie sicher ist SecureString?.
Typ: | PSCredential |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-DependsOn
Gibt die Namen anderer Dienste an, von denen der neue Dienst abhängt. Um mehrere Dienstnamen einzugeben, verwenden Sie ein Komma, um die Namen zu trennen.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Description
Gibt eine Beschreibung des Diensts an.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-DisplayName
Gibt einen Anzeigenamen für den Dienst an.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt den Namen des Diensts an. Dieser Parameter ist erforderlich.
Typ: | String |
Aliase: | ServiceName |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SecurityDescriptorSddl
Gibt den SecurityDescriptor- für den Dienst im Sddl--Format an.
Typ: | String |
Aliase: | sd |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-StartupType
Legt den Starttyp des Diensts fest. Die zulässigen Werte für diesen Parameter sind:
- Automatische – Der Dienst wird gestartet oder vom Betriebssystem gestartet, beim Systemstart. Wenn ein automatisch gestarteter Dienst von einem manuell gestarteten Dienst abhängt, wird der manuell gestartete Dienst auch automatisch beim Systemstart gestartet.
- AutomaticDelayedStart- – Wird kurz nach dem Systemstart gestartet.
- Deaktiviert – Der Dienst ist deaktiviert und kann von einem Benutzer oder einer Anwendung nicht gestartet werden.
- InvalidValue- – Dieser Wert wird nicht unterstützt. Die Verwendung dieses Werts führt zu einem Fehler.
- Manuelle – Der Dienst wird nur manuell, von einem Benutzer, mithilfe des Dienststeuerungs-Managers oder einer Anwendung gestartet.
Der Standardwert ist Automatic.
Typ: | ServiceStartupType |
Zulässige Werte: | Automatic, Manual, Disabled, AutomaticDelayedStart, InvalidValue |
Position: | Named |
Standardwert: | Automatic |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt ein Objekt zurück, das den neuen Dienst darstellt.
Hinweise
Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.
Um dieses Cmdlet auszuführen, starten Sie PowerShell mithilfe der Option Als Administrator ausführen.