Start-Service

Uruchamia co najmniej jedną zatrzymaną usługę.

Składnia

Start-Service
     [-InputObject] <ServiceController[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-Name] <String[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-PassThru]
     -DisplayName <String[]>
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Opis

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

Polecenie Start-Service cmdlet wysyła komunikat początkowy do kontrolera usługi systemu Windows dla każdej z określonych usług. Jeśli usługa jest już uruchomiona, komunikat jest ignorowany bez błędu. Możesz określić usługi według nazw usług lub nazw wyświetlanych. Można też użyć parametru InputObject , aby podać obiekt usługi reprezentujący usługi, które mają zostać uruchomione.

Przykłady

Przykład 1. Uruchamianie usługi przy użyciu jej nazwy

W tym przykładzie usługa EventLog jest uruchamiana na komputerze lokalnym. Parametr Name identyfikuje usługę według jej nazwy usługi.

Start-Service -Name "eventlog"

Przykład 2. Wyświetlanie informacji bez uruchamiania usługi

W tym przykładzie pokazano, co by się stało, jeśli uruchomiono usługi, które mają nazwę wyświetlaną zawierającą "zdalne".

Start-Service -DisplayName *remote* -WhatIf

Parametr DisplayName identyfikuje usługi według ich nazwy wyświetlanej zamiast nazwy usługi. Parametr WhatIf powoduje, że polecenie cmdlet wyświetla, co się stanie po uruchomieniu polecenia, ale nie wprowadza zmian.

Przykład 3. Uruchamianie usługi i rejestrowanie akcji w pliku tekstowym

Ten przykład uruchamia usługę Instrumentacja zarządzania Windows (WMI) na komputerze i dodaje rekord akcji do pliku services.txt.

$s = Get-Service wmi
Start-Service -InputObject $s -PassThru | Format-List >> services.txt

Najpierw użyjemy Get-Service polecenia , aby uzyskać obiekt reprezentujący usługę WMI i zapisać go w zmiennej $s . Następnie uruchomimy usługę. Bez parametru Start-Service PassThru nie tworzy żadnych danych wyjściowych. Operator potoku (|) przekazuje dane wyjściowe Start-Service obiektu do Format-List polecenia cmdlet w celu sformatowania obiektu jako listy jego właściwości. Operator przekierowania dołączania (>>) przekierowuje dane wyjściowe do pliku services.txt. Dane wyjściowe są dodawane na końcu istniejącego pliku.

Przykład 4. Uruchamianie wyłączonej usługi

W tym przykładzie pokazano, jak uruchomić usługę, gdy typ uruchamiania usługi jest wyłączony.

PS> Start-Service tlntsvr
Start-Service : Service 'Telnet (TlntSvr)' cannot be started due to the following error: Cannot start service TlntSvr on computer '.'.
At line:1 char:14
+ Start-Service  <<<< tlntsvr

PS> Get-CimInstance win32_service | Where-Object Name -eq "tlntsvr"
ExitCode  : 0
Name      : TlntSvr
ProcessId : 0
StartMode : Disabled
State     : Stopped
Status    : OK

PS> Set-Service tlntsvr -StartupType manual
PS> Start-Service tlntsvr

Pierwsza próba uruchomienia usługi Telnet (tlntsvr) kończy się niepowodzeniem. Polecenie Get-CimInstance pokazuje, że właściwość StartMode usługi Tlntsvr jest wyłączona. Polecenie cmdlet zmienia typ uruchamiania Set-Service na Ręczne. Teraz możemy ponownie przesłać Start-Service polecenie. Tym razem polecenie zakończy się pomyślnie. Aby sprawdzić, czy polecenie zakończyło się pomyślnie, uruchom polecenie Get-Service.

Parametry

-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

-DisplayName

Określa nazwy wyświetlane usług do uruchomienia. Dozwolone są symbole wieloznaczne.

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

-Exclude

Określa usługi pomijane przez to polecenie cmdlet. Wartość tego parametru kwalifikuje parametr Name . Wprowadź element nazwy lub wzorzec, taki jak s*. Dozwolone są symbole wieloznaczne.

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

-Include

Określa usługi uruchamiane przez to polecenie cmdlet. Wartość tego parametru kwalifikuje parametr Name . Wprowadź element nazwy lub wzorzec, taki jak s*. Dozwolone są symbole wieloznaczne.

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

-InputObject

Określa obiekty ServiceController reprezentujące usługi do uruchomienia. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

Type:ServiceController[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Określa nazwy usług, które mają zostać uruchomione.

Nazwa parametru jest opcjonalna. Możesz użyć nazwy parametru Name lub jego aliasu, Nazwy usługi lub można pominąć nazwę parametru.

Type:String[]
Aliases:ServiceName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

Zwraca obiekt reprezentujący usługę. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Type:SwitchParameter
Position:Named
Default value:None
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

ServiceController

Do tego polecenia cmdlet można przekazać obiekt usługi.

String

Możesz przekazać ciąg zawierający nazwę usługi do tego polecenia cmdlet.

Dane wyjściowe

None

Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.

ServiceController

Jeśli używasz parametru PassThru , to polecenie cmdlet zwraca obiekt ServiceController reprezentujący usługę.

Uwagi

Program PowerShell zawiera następujące aliasy dla programu Start-Service:

  • Windows:
    • sasv

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

  • Start-Service może kontrolować usługi tylko wtedy, gdy bieżący użytkownik ma uprawnienia do tego. Jeśli polecenie nie działa poprawnie, być może nie masz wymaganych uprawnień.
  • Aby znaleźć nazwy usług i nazwy wyświetlane usług w systemie, wpisz Get-Service. Nazwy usług są wyświetlane w kolumnie Nazwa , a nazwy wyświetlane są w kolumnie DisplayName .
  • Możesz uruchomić tylko usługi, które mają typ uruchamiania Ręczne, Automatyczne lub Automatyczne (opóźnione uruchamianie). Nie można uruchomić usług, które mają typ startu Wyłączone. Jeśli polecenie zakończy się niepowodzeniem Start-Service z komunikatem Cannot start service \<service-name\> on computer, użyj polecenia Get-CimInstance , aby znaleźć typ uruchamiania usługi i, jeśli musisz, użyj Set-Service polecenia cmdlet , aby zmienić typ uruchamiania usługi.
  • Niektóre usługi, takie jak dzienniki wydajności i alerty (SysmonLog) są zatrzymywane automatycznie, jeśli nie mają do wykonania żadnej pracy. Gdy program PowerShell uruchamia usługę, która zatrzymuje się niemal natychmiast, wyświetla następujący komunikat: Service \<display-name\> start failed.