New-Service
Erstellt einen neuen Windows-Dienst.
Syntax
Default (Standard)
New-Service
[-Name] <String>
[-BinaryPathName] <String>
[-DisplayName <String>]
[-Description <String>]
[-StartupType <ServiceStartMode>]
[-Credential <PSCredential>]
[-DependsOn <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
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: Löschen eines Diensts
sc.exe delete TestService
# - or -
(Get-CimInstance -Class Win32_Service -Filter "name='TestService'").Delete()
Dieses Beispiel zeigt zwei Möglichkeiten zum Löschen des TestService-Diensts. Der erste Befehl verwendet die Löschoption Sc.exe. Der zweite Befehl verwendet die Delete Methode der Win32_Service Objekte, die Get-CimInstance zurückgeben.
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.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 1 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Confirm
Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | vgl |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | 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.
Hinweis
Weitere Informationen zu SecureString Datenschutz finden Sie unter Wie sicher ist SecureString?.
Parametereigenschaften
| Typ: | PSCredential |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | 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.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Description
Gibt eine Beschreibung des Diensts an.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-DisplayName
Gibt einen Anzeigenamen für den Dienst an.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Name
Gibt den Namen des Diensts an. Dieser Parameter ist erforderlich.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Dienstname |
Parametersätze
(All)
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-StartupType
Legt den Starttyp des Diensts fest. Die zulässigen Werte für diesen Parameter sind:
- Automatic – Der Dienst wird oder wurde beim Systemstart vom Betriebssystem gestartet. Wenn ein automatisch gestarteter Dienst von einem manuell gestarteten Dienst abhängt, wird der manuell gestartete Dienst auch automatisch beim Systemstart gestartet.
- Deaktiviert – Der Dienst ist deaktiviert und kann von einem Benutzer oder einer Anwendung nicht gestartet werden.
- Manuelle – Der Dienst wird nur manuell, von einem Benutzer, mithilfe des Dienststeuerungs-Managers oder einer Anwendung gestartet.
- Start- – Gibt an, dass der Dienst ein Gerätetreiber ist, der vom Systemladeprogramm gestartet wurde. Dieser Wert ist nur für Gerätetreiber gültig.
- System- – Gibt an, dass der Dienst ein Gerätetreiber ist, der von der Funktion "IOInitSystem()" gestartet wurde. Dieser Wert ist nur für Gerätetreiber gültig.
Der Standardwert ist Automatic.
Parametereigenschaften
| Typ: | ServiceStartMode |
| Standardwert: | Automatic |
| Zulässige Werte: | Boot, System, Automatic, Manual, Disabled |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Wi |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
ServiceController
Dieses Cmdlet gibt ein Objekt zurück, das den neuen Dienst darstellt.
Hinweise
Um dieses Cmdlet auszuführen, starten Sie PowerShell mithilfe der Option Als Administrator ausführen.
Verwenden Sie zum Löschen eines Diensts Sc.exeoder verwenden Sie das cmdlet Get-CimInstance, um das Win32_Service-Objekt abzurufen, das den Dienst darstellt, und verwenden Sie dann die Delete-Methode, um den Dienst zu löschen. Das objekt, das Get-Service zurückgibt, verfügt nicht über eine Löschmethode.