Udostępnij za pośrednictwem


Set-Service

Uruchamia, zatrzymuje i zawiesza usługę i zmienia jej właściwości.

Składnia

Set-Service
   [-Name] <String>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-Status <String>]
   [-SecurityDescriptorSddl <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Service
   [-InputObject] <ServiceController>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-SecurityDescriptorSddl <String>]
   [-Status <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Opis

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

Polecenie cmdlet Set-Service zmienia właściwości usługi, takie jak Status, Description, DisplayNamei StartupType. Set-Service można uruchomić, zatrzymać, zawiesić lub wstrzymać usługę. Aby zidentyfikować usługę, wprowadź jej nazwę usługi lub prześlij obiekt usługi. Możesz też wysłać nazwę usługi lub obiekt usługi przez potok do Set-Service.

Przykłady

Przykład 1. Zmiana nazwy wyświetlanej

W tym przykładzie nazwa wyświetlana usługi zostanie zmieniona. Aby wyświetlić oryginalną nazwę wyświetlaną, użyj Get-Service.

Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"

Set-Service używa parametru Name w celu określenia nazwy usługi LanmanWorkstation. Parametr DisplayName określa nową nazwę wyświetlaną LanMan Workstation.

Przykład 2. Zmiana typu uruchamiania usług

W tym przykładzie pokazano, jak zmienić typ uruchamiania usługi.

Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status

Name  StartType   Status
----  ---------   ------
BITS  Automatic  Running

Set-Service używa parametru Name w celu określenia nazwy usługi BITS. Parametr StartupType ustawia usługę na automatyczną.

Get-Service używa parametru Nazwa , aby określić usługę BITS i przesyła obiekt w dół potoku. Select-Object używa właściwości parametru do wyświetlania stanu usługi BITS.

Przykład 3. Zmiana opisu usługi

Ten przykład zmienia opis usługi BITS i wyświetla wynik.

Cmdlet Get-CimInstance jest używany, ponieważ zwraca obiekt Win32_Service zawierający opis usługi.

Get-CimInstance Win32_Service -Filter 'Name = "BITS"'  | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
              disabled, then any applications that depend on BITS, such as Windows Update or MSN
              Explorer, will be unable to automatically download programs and other information.

Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth.

Get-CimInstance wysyła obiekt w dół potoku do Format-List i wyświetla nazwę i opis usługi. W celach porównawczych polecenie jest uruchamiane przed i po zaktualizowaniu opisu.

Set-Service używa parametru Nazwa, aby określić usługę BITS. Parametr Description określa zaktualizowany tekst opisu usług.

Przykład 4. Uruchamianie usługi

W tym przykładzie uruchomiono usługę.

Set-Service -Name WinRM -Status Running -PassThru

Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Manag...

Set-Service używa parametru Name w celu określenia usługi WinRM. Parametr stanu używa wartości Praca, aby uruchomić usługę. Parametr PassThru zwraca obiekt ServiceController, który wyświetla wyniki.

Przykład 5. Wstrzymanie usługi

W tym przykładzie pipeline jest używany do wstrzymania w celu obsługi.

Get-Service -Name Schedule | Set-Service -Status Paused

Get-Service używa parametru Nazwa, aby określić usługę Schedule i wysyła obiekt w dół potoku. Set-Service używa parametru stanu, aby ustawić usługę na wartość Wstrzymano.

Przykład 6. Zatrzymywanie usługi

W tym przykładzie użyto zmiennej do zatrzymania usługi.

$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped

Get-Service używa parametru Nazwa, aby określić usługę, Harmonogram. Obiekt jest przechowywany w zmiennej $S. Set-Service używa parametru InputObject i określa obiekt przechowywany $S. Parametr Status ustawia usługę na Zatrzymano.

Przykład 7: Zatrzymaj usługę na systemie zdalnym

Ten przykład zatrzymuje usługę na komputerze zdalnym. Aby uzyskać więcej informacji, zobacz Invoke-Command.

$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
  Set-Service -InputObject $S -Status Stopped
}

Get-Credential monituje o nazwę użytkownika i hasło oraz przechowuje poświadczenia w zmiennej $Cred. Get-Service używa parametru nazwa, aby określić harmonogram usługi . Obiekt jest przechowywany w zmiennej $S.

Invoke-Command używa parametru ComputerName do określenia komputera zdalnego. Parametr Credential używa zmiennej $Cred do logowania się na komputerze. ScriptBlock wywołuje Set-Service. Parametr InputObject określa obiekt usługi przechowywany $S. Parametr Status ustawia usługę na Zatrzymano.

Przykład 8. Zmiana poświadczeń usługi

W tym przykładzie zmienia się poświadczenia używane do zarządzania usługą.

$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential

Get-Credential monituje o nazwę użytkownika i hasło oraz przechowuje poświadczenia w zmiennej $credential. Set-Service używa parametru nazwa, aby określić harmonogram usługi . Parametr Credential używa zmiennej $credential i aktualizuje usługę Schedule.

Przykład 9: Zmiana SecurityDescriptor usługi

Ten przykład zmienia SecurityDescriptor usługi .

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL

SecurityDescriptor jest przechowywany w zmiennej $SDDL. Set-Service używa parametru Nazwa, aby określić usługę BITS. Parametr SecurityDescriptorSddl używa $SDDL do zmiany SecurityDescriptor dla usługi BITS.

Przykład 10: Ustawianie typu uruchamiania dla wielu usług

Polecenie cmdlet Set-Service akceptuje tylko jedną nazwę usługi jednocześnie. Można jednak przekazać wiele usług do Set-Service, aby zmienić konfigurację wielu usług.

Get-Service SQLWriter,spooler |
    Set-Service -StartupType Automatic -PassThru |
    Select-Object Name, StartType

Name      StartType
----      ---------
spooler   Automatic
SQLWriter Automatic

Parametry

-Confirm

Prosi o potwierdzenie przed uruchomieniem Set-Service.

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.

Notatka

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

Ten parametr został wprowadzony w programie PowerShell 6.0.

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

-Description

Określa nowy opis usługi.

Opis usługi jest wyświetlany w Zarządzanie Komputerem, Usługi. Description nie jest właściwością obiektu Get-ServiceServiceController. Aby wyświetlić opis usługi, użyj Get-CimInstance, która zwraca obiekt Win32_Service reprezentujący usługę.

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

-DisplayName

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

Notatka

Zazwyczaj Set-Service działa tylko w usługach systemu Windows, a nie na sterownikach. Jeśli jednak określisz nazwę sterownika, Set-Service może wskazać sterownik.

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

-Force

Określa tryb zatrzymania usługi. Ten parametr działa tylko wtedy, gdy jest używana -Status Stopped. Jeśli ta opcja jest włączona, Set-Service zatrzymuje usługi zależne przed zatrzymanie usługi docelowej. Domyślnie wyjątki są zgłaszane, gdy inne uruchomione usługi zależą od usługi docelowej.

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

-InputObject

Określa obiekt ServiceController, który reprezentuje usługę do zmiany. Wprowadź zmienną zawierającą obiekt lub wpisz polecenie lub wyrażenie, które pobiera obiekt, na przykład polecenie Get-Service. Możesz użyć potoku, aby wysłać obiekt usługi do Set-Service.

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

-Name

Określa nazwę usługi, która ma zostać zmieniona. Symbole wieloznaczne nie są dozwolone. Możesz użyć pipeline'u, aby wysłać nazwę usługi do Set-Service.

Notatka

Zazwyczaj Set-Service działa tylko w usługach systemu Windows, a nie na sterownikach. Jeśli jednak określisz nazwę sterownika, Set-Service może wskazać sterownik.

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

-PassThru

Zwraca obiekt ServiceController reprezentujący zmienione usługi. Domyślnie Set-Service nie generuje żadnych danych wyjściowych.

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

-SecurityDescriptorSddl

Określa SecurityDescriptor dla usługi w formacie SDDL. Konto wywołujące Set-Service z tym parametrem musi mieć uprawnienia WRITE_DAC i WRITE_OWNER. Aby uzyskać więcej informacji, zobacz Bezpieczeństwo usługi i prawa dostępu.

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

-StartupType

Określa tryb uruchamiania usługi.

Dopuszczalne wartości tego parametru są następujące:

  • Automatyczny — usługa 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 — nie ma wpływu. Polecenie cmdlet nie zwraca błędu, ale typ uruchamiania usługi nie został zmieniony.
  • ręczne — usługa jest uruchamiana tylko ręcznie, przez użytkownika, przy użyciu Menedżera kontroli usług lub przez aplikację.
Typ:ServiceStartupType
Aliasy:StartMode, SM, ST, StartType
Dopuszczalne wartości:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Status

Określa stan usługi.

Dopuszczalne wartości tego parametru są następujące:

  • Wstrzymano. Zawiesza usługę.
  • działa. Uruchamia usługę.
  • Zatrzymano. Zatrzymuje usługę.
Typ:String
Dopuszczalne wartości:Paused, Running, Stopped
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-WhatIf

Pokazuje, co się stanie, jeśli Set-Service się uruchomi. Cmdlet nie jest 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

ServiceController

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

String

Możesz przekazywać ciąg zawierający nazwę usługi do tego cmdletu.

Dane wyjściowe

None

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

ServiceController

Jeśli używasz parametru PassThru, to to polecenie cmdlet zwraca obiekt ServiceController.

Uwagi

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

Set-Service wymaga podniesionych uprawnień. Użyj opcji Uruchom jako administrator.

Set-Service może kontrolować usługi tylko wtedy, gdy bieżący użytkownik ma uprawnienia do zarządzania usługami. Jeśli polecenie nie działa poprawnie, być może nie masz wymaganych uprawnień.

Aby znaleźć nazwę usługi lub nazwę wyświetlaną usługi, użyj Get-Service. Nazwy usług znajdują się w kolumnie Nazwa, a nazwy wyświetlane znajdują się w kolumnie DisplayName.