New-Service

Tworzy nową usługę systemu Windows.

Składnia

New-Service
   [-Name] <String>
   [-BinaryPathName] <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-SecurityDescriptorSddl <String>]
   [-StartupType <ServiceStartupType>]
   [-Credential <PSCredential>]
   [-DependsOn <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Opis

To polecenie cmdlet jest dostępne tylko na platformie Windows.

Polecenie New-Service cmdlet tworzy nowy wpis dla usługi systemu Windows w rejestrze i w bazie danych usługi. Nowa usługa wymaga pliku wykonywalnego uruchamianego podczas usługi.

Parametry tego polecenia cmdlet umożliwiają ustawienie nazwy wyświetlanej, opisu, typu uruchomienia i zależności usługi.

Przykłady

Przykład 1. Tworzenie usługi

New-Service -Name "TestService" -BinaryPathName 'C:\WINDOWS\System32\svchost.exe -k netsvcs'

To polecenie tworzy usługę o nazwie TestService.

Przykład 2. Tworzenie usługi zawierającej opis, typ uruchomienia i nazwę wyświetlaną

$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

To polecenie tworzy usługę o nazwie TestService. Używa parametrów New-Service , aby określić opis, typ uruchomienia i nazwę wyświetlaną nowej usługi.

Przykład 3. Wyświetlanie nowej usługi

Get-CimInstance -ClassName Win32_Service -Filter "Name='testservice'"

ExitCode  : 0
Name      : testservice
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

To polecenie służy Get-CimInstance do pobierania obiektu Win32_Service dla nowej usługi. Ten obiekt zawiera tryb uruchamiania i opis usługi.

Przykład 4. Ustawianie klasy SecurityDescriptor usługi podczas tworzenia.

W tym przykładzie dodano deskryptor zabezpieczeń tworzonej usługi.

$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

Element SecurityDescriptor jest przechowywany w zmiennej $SDDLToSet . Parametr SecurityDescriptorSddl służy $SDDL do ustawiania klasy SecurityDescriptor nowej usługi.

Parametry

-BinaryPathName

Określa ścieżkę pliku wykonywalnego dla usługi. Ten parametr jest wymagany.

W pełni kwalifikowana ścieżka do pliku binarnego usługi. Jeśli ścieżka zawiera spację, musi być cytowana, aby była poprawnie interpretowana. Na przykład d:\my share\myservice.exe należy określić jako '"d:\my share\myservice.exe"'.

Ścieżka może również zawierać argumenty dla usługi automatycznego uruchamiania. Na przykład '"d:\my share\myservice.exe" arg1 arg2'. Te argumenty są przekazywane do punktu wejścia usługi.

Aby uzyskać więcej informacji, zobacz parametr lpBinaryPathName interfejsu API CreateServiceW .

Typ:String
Aliasy:Path
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Credential

Określa konto używane przez usługę jako konto logowania usługi.

Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential, taki jak jeden wygenerowany przez Get-Credential polecenie cmdlet. Jeśli wpiszesz nazwę użytkownika, to polecenie cmdlet wyświetli monit o podanie hasła.

Poświadczenia są przechowywane w obiekcie PSCredential , a hasło jest przechowywane jako secureString.

Uwaga

Aby uzyskać więcej informacji na temat ochrony danych SecureString , zobacz Jak bezpieczny jest protokół SecureString?.

Typ:PSCredential
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-DependsOn

Określa nazwy innych usług, od których zależy nowa usługa. Aby wprowadzić wiele nazw usług, użyj przecinka, aby oddzielić nazwy.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Description

Określa opis usługi.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-DisplayName

Określa nazwę wyświetlaną usługi.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Name

Określa nazwę usługi. Ten parametr jest wymagany.

Typ:String
Aliasy:ServiceName
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-SecurityDescriptorSddl

Określa klasy SecurityDescriptor dla usługi w formacie Sddl .

Typ:String
Aliasy:sd
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-StartupType

Ustawia typ uruchamiania usługi. Dopuszczalne wartości tego parametru to:

  • Automatyczne — usługa została uruchomiona lub została uruchomiona przez system operacyjny podczas uruchamiania systemu. Jeśli automatycznie uruchomiona usługa zależy od usługi uruchomionej ręcznie, usługa uruchomiona ręcznie jest również uruchamiana automatycznie podczas uruchamiania systemu.
  • AutomaticDelayedStart — rozpoczyna się wkrótce po uruchomieniu systemu.
  • Wyłączone — usługa jest wyłączona i nie można jej uruchomić przez użytkownika lub aplikację.
  • InvalidValue — ta wartość nie jest obsługiwana. Użycie tej wartości powoduje wystąpienie błędu.
  • Ręczne — usługa jest uruchamiana tylko ręcznie, przez użytkownika, przy użyciu Menedżera kontroli usług lub przez aplikację.

Wartość domyślna to Automatycznie.

Typ:ServiceStartupType
Dopuszczalne wartości:Automatic, Manual, Disabled, AutomaticDelayedStart, InvalidValue
Position:Named
Domyślna wartość:Automatic
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Nie można potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

ServiceController

To polecenie cmdlet zwraca obiekt reprezentujący nową usługę.

Uwagi

To polecenie cmdlet jest dostępne tylko na platformach windows.

Aby uruchomić to polecenie cmdlet, uruchom program PowerShell przy użyciu opcji Uruchom jako administrator .