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 New-Service Cmdlet 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"'

Dieser Befehl erstellt einen Dienst namens TestService.

Beispiel 2: Erstellen eines Diensts, der Beschreibung, Starttyp und Anzeigename enthält

$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

Dieser Befehl erstellt einen Dienst namens TestService. Sie verwendet die Parameter New-Service , um eine Beschreibung, einen Starttyp und den 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 SecurityDescriptor eines Diensts beim Erstellen.

In diesem Beispiel wird der SecurityDescriptor des zu erstellenden 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 Variable gespeichert. Der SecurityDescriptorSddl-Parameter 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 Binären Datei des Diensts. Wenn der Pfad ein Leerzeichen enthält, muss er so zitiert werden, dass er ordnungsgemäß interpretiert wird. So sollte z. B d:\my share\myservice.exe . als '"d:\my share\myservice.exe"'" angegeben werden.

Der Pfad kann auch Argumente für einen automatischen Startdienst enthalten. Beispiel: '"d:\myshare\myservice.exe arg1 arg2"'. Diese Argumente werden an den Diensteintragspunkt übergeben.

Weitere Informationen finden Sie im lpBinaryPathName-Parameter der CreateServiceW-API .

Type:String
Aliases:Path
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

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?.

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

-DependsOn

Gibt die Namen anderer Dienste an, von denen der neue Dienst abhängt. Trennen Sie zum Eingeben mehrerer Dienstnamen die Namen durch Trennzeichen.

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

-Description

Gibt eine Beschreibung des Diensts an.

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

-DisplayName

Gibt einen Anzeigenamen für den Dienst an.

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

-Name

Gibt den Namen des Diensts an. Dieser Parameter ist erforderlich.

Type:String
Aliases:ServiceName
Position:0
Default value:None
Required:True
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

Legt den Starttyp des Diensts fest. Zulässige Werte für diesen Parameter:

  • 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 – Dieser Wert wird nicht unterstützt. Die Verwendung dieses Werts führt zu einem Fehler.
  • Manuell – Der Dienst wird nur manuell gestartet, von einem Benutzer, mithilfe des Dienststeuerungs-Managers oder durch eine Anwendung.

Der Standardwert ist "Automatisch".

Type:Microsoft.PowerShell.Commands.ServiceStartupType
Accepted values:Automatic, Manual, Disabled, AutomaticDelayedStart, InvalidValue
Position:Named
Default value:Automatic
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet 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

None

Eingaben können nicht an dieses Cmdlet weitergereicht werden.

Ausgaben

ServiceController

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 ".