Sdílet prostřednictvím


New-Service

Vytvoří novou službu systému Windows.

Syntaxe

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

Description

Tato rutina je dostupná jenom na platformě Windows.

Rutina New-Service vytvoří novou položku pro službu systému Windows v registru a v databázi služby. Nová služba vyžaduje spustitelný soubor, který běží během této služby.

Parametry této rutiny umožňují nastavit zobrazovaný název, popis, typ spuštění a závislosti služby.

Příklady

Příklad 1: Vytvoření služby

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

Tento příkaz vytvoří službu s názvem TestService.

Příklad 2: Vytvoření služby, která obsahuje popis, typ spuštění a zobrazovaný název

$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

Tento příkaz vytvoří službu s názvem TestService. Používá parametry New-Service k určení popisu, typu spuštění a zobrazovaného názvu nové služby.

Příklad 3: Zobrazení nové služby

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

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

Tento příkaz používá Get-CimInstance k získání objektu Win32_Service pro novou službu. Tento objekt obsahuje režim spuštění a popis služby.

Příklad 4: Nastavení popisovače SecurityDescriptor služby při vytváření

Tento příklad přidá SecurityDescriptor vytvářené služby.

$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 je uložen v proměnné $SDDLToSet. Parametr SecurityDescriptorSddl používá $SDDL k nastavení SecurityDescriptor nové služby.

Parametry

-BinaryPathName

Určuje cestu spustitelného souboru pro službu. Tento parametr je povinný.

Plně kvalifikovaná cesta k binárnímu souboru služby. Pokud cesta obsahuje mezeru, musí být uvozována tak, aby byla správně interpretována. Například d:\my share\myservice.exe je třeba zadat jako '"d:\my share\myservice.exe"'.

Cesta může také obsahovat argumenty pro službu automatického spuštění. Například '"d:\my share\myservice.exe" arg1 arg2'. Tyto argumenty se předávají vstupnímu bodu služby.

Další informace najdete v parametru lpBinaryPathName rozhraní API CreateService W.

Typ:String
Aliasy:Path
Position:1
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Confirm

Před spuštěním rutiny vás vyzve k potvrzení.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Credential

Určuje účet používaný službou jako přihlašovací účet služby.

Zadejte uživatelské jméno, například User01 nebo Domain01\User01, nebo zadejte objekt PSCredential, například objekt vygenerovaný rutinou Get-Credential. Pokud zadáte uživatelské jméno, tato rutina vás vyzve k zadání hesla.

Přihlašovací údaje jsou uloženy v objektu PSCredential a heslo je uloženo jako SecureString.

Poznámka

Další informace o ochraně dat SecureString najdete v tématu Jak zabezpečený je SecureString?.

Typ:PSCredential
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-DependsOn

Určuje názvy dalších služeb, na kterých nová služba závisí. Pokud chcete zadat více názvů služeb, oddělte názvy čárkami.

Typ:String[]
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Description

Určuje popis služby.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-DisplayName

Určuje zobrazovaný název služby.

Typ:String
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Name

Určuje název služby. Tento parametr je povinný.

Typ:String
Aliasy:ServiceName
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-SecurityDescriptorSddl

Určuje SecurityDescriptor pro službu ve formátu Sddl.

Typ:String
Aliasy:sd
Position:Named
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-StartupType

Nastaví typ spuštění služby. Přijatelné hodnoty pro tento parametr jsou:

  • Automatické – Služba je spuštěna nebo byla spuštěna operačním systémem při spuštění systému. Pokud automaticky spuštěná služba závisí na ručně spuštěné službě, spustí se při spuštění systému automaticky také ručně spuštěná služba.
  • AutomaticDelayedStart – spustí se krátce po spuštění systému.
  • Zakázáno – Služba je zakázaná a uživatel nebo aplikace ji nemůže spustit.
  • InvalidValue – tato hodnota není podporována. Při použití této hodnoty dojde k chybě.
  • Ruční – služba se spouští pouze ručně, uživatelem, pomocí Správce řízení služeb nebo aplikací.

Výchozí hodnota je Automatické.

Typ:ServiceStartupType
Přípustné hodnoty:Automatic, Manual, Disabled, AutomaticDelayedStart, InvalidValue
Position:Named
Default value:Automatic
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-WhatIf

Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

None

Do této rutiny nemůžete roušit objekty.

Výstupy

ServiceController

Tato rutina vrátí objekt představující novou službu.

Poznámky

Tato rutina je dostupná jenom na platformách Windows.

Pokud chcete tuto rutinu spustit, spusťte PowerShell pomocí možnosti Spustit jako správce.