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, który jest uruchamiany podczas usługi.
Parametry tego polecenia cmdlet umożliwiają ustawienie nazwy wyświetlanej, opisu, typu uruchamiania i zależności usługi.
Przykłady
Przykład 1: Twórca 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: Twórca usługę zawierającą opis, typ uruchamiania 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 uruchamiania 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 klasy 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
Element SecurityDescriptor jest przechowywany w zmiennej $SDDLToSet
. Parametr SecurityDescriptorSddl jest używany $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 tak, 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 .
Type: | String |
Aliases: | Path |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Określa konto używane przez usługę jako konto logowania do usługi.
Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential , taki jak 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?.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DependsOn
Określa nazwy innych usług, na których zależy nowa usługa. Aby wprowadzić wiele nazw usług, użyj przecinka, aby oddzielić nazwy.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Description
Określa opis usługi.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayName
Określa nazwę wyświetlaną usługi.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Określa nazwę usługi. Ten parametr jest wymagany.
Type: | String |
Aliases: | ServiceName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecurityDescriptorSddl
Określa klasy SecurityDescriptor dla usługi w formacie Sddl .
Type: | String |
Aliases: | sd |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StartupType
Ustawia typ uruchamiania usługi. Dopuszczalne wartości dla 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 ręcznie uruchomionej usługi, ręcznie uruchomiona usługa 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.
Type: | ServiceStartupType |
Accepted values: | Automatic, Manual, Disabled, AutomaticDelayedStart, InvalidValue |
Position: | Named |
Default value: | Automatic |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 systemu Windows.
Aby uruchomić to polecenie cmdlet, uruchom program PowerShell przy użyciu opcji Uruchom jako administrator .