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 cmdlet New-Service
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
do określenia opisu, typu uruchomienia i nazwy wyświetlanej 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 używa Get-CimInstance
, aby uzyskać obiekt 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 SecurityDescriptor 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
SecurityDescriptor jest przechowywany w zmiennej $SDDLToSet
. Parametr SecurityDescriptorSddl używa $SDDL
, aby ustawić 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 polecenie cmdlet Get-Credential
. 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.
Nuta
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 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:
- automatycznego — 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że być uruchomiona 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 Automatic.
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, jeśli polecenie cmdlet zostanie uruchomione. Polecenie cmdlet nie jest uruchamiane.
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
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.