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 Set-Service cmdlet zmienia właściwości usługi, takie jak Stan, Opis, DisplayName i StartupType. Set-Service może uruchamiać, zatrzymywać, wstrzymywać lub wstrzymywać 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 w dół potoku 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 polecenia Get-Service.

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

Set-Serviceużywa parametru Name, aby określić nazwę 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 Nazwa , aby określić nazwę usługi BITS. Parametr StartupType ustawia usługę na Wartość Automatyczna.

Get-Service Używa parametru Name , aby określić usługę BITS i wysyła obiekt w dół potoku. Select-Object używa parametru Właściwość 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.

Polecenie Get-CimInstance cmdlet jest używane, 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 Name , aby określić usługę BITS . Opis parametru 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-Serviceużywa parametru Name w celu określenia usługi WinRM. Parametr Status używa wartości Uruchomiono , aby uruchomić usługę. Parametr PassThru zwraca obiekt ServiceController , który wyświetla wyniki.

Przykład 5. Wstrzymanie usługi

W tym przykładzie użyto potoku do wstrzymania do 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-Serviceużywa parametru Status, aby ustawić usługę na 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 Stan ustawia usługę na Zatrzymano.

Przykład 7. Zatrzymywanie usługi w 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 wyświetla monit o podanie nazwy użytkownika i hasła oraz przechowuje poświadczenia w zmiennej $Cred . Get-Service używa parametru Name , aby określić usługę Schedule . 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. Funkcja ScriptBlock wywołuje metodę Set-Service. Parametr InputObject określa obiekt usługi przechowywany $S. Parametr Stan ustawia usługę na Zatrzymano.

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

W tym przykładzie zmiany poświadczeń używanych do zarządzania usługą.

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

Get-Credential wyświetla monit o podanie nazwy użytkownika i hasła oraz przechowuje poświadczenia w zmiennej $credential . Set-Service używa parametru Name , aby określić usługę Schedule . Parametr Credential używa zmiennej $credential i aktualizuje usługę Schedule .

Przykład 9. Zmiana klasy SecurityDescriptor usługi

W tym przykładzie wprowadzono zmiany klasy SecurityDescriptor usługi.

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

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

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

Polecenie Set-Service cmdlet akceptuje tylko jedną nazwę usługi jednocześnie. Można jednak przekazać wiele usług, aby Set-Service 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

Monituje o potwierdzenie przed uruchomieniem polecenia Set-Service.

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 usługi.

Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential, taki jak jeden 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?.

Ten parametr został wprowadzony w programie PowerShell 6.0.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Określa nowy opis usługi.

Opis usługi jest wyświetlany w obszarze Zarządzanie komputerem, Usługi. Opis nie jest właściwością Get-Serviceobiektu ServiceController. Aby wyświetlić opis usługi, użyj Get-CimInstance polecenia , który zwraca obiekt Win32_Service reprezentujący usługę.

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

-DisplayName

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

Uwaga

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

Type:String
Aliases:DN
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Określa tryb zatrzymania usługi. Ten parametr działa tylko wtedy, gdy -Status Stopped jest używany. 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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

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

-Name

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

Uwaga

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

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

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecurityDescriptorSddl

Określa klasy SecurityDescriptor dla usługi w formacie Sddl . Konto wywołujące Set-Service przy użyciu tego parametru musi mieć uprawnienia WRITE_DAC i WRITE_OWNER. Aby uzyskać więcej informacji, zobacz Zabezpieczenia usługi i prawa dostępu.

Type:String
Aliases:sd
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartupType

Określa tryb uruchamiania usługi.

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

  • 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 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żna jej uruchomić przez użytkownika lub aplikację.
  • InvalidValue — nie ma wpływu. Polecenie cmdlet nie zwraca błędu, ale typ startupu 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ę.
Type:Microsoft.PowerShell.Commands.ServiceStartupType
Aliases:StartMode, SM, ST, StartType
Accepted values:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Status

Określa stan usługi.

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

  • Wstrzymano. Zawiesza usługę.
  • Działanie. Uruchamia usługę.
  • Zatrzymany. Zatrzymuje usługę.
Type:String
Accepted values:Paused, Running, Stopped
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Pokazuje, co się stanie w przypadku Set-Service uruchomienia. Polecenie cmdlet nie jest uruchamiane.

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 potokować 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 .

Uwagi

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

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

Set-Service usługi mogą kontrolować 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 polecenia Get-Service. Nazwy usług znajdują się w kolumnie Nazwa , a nazwy wyświetlane znajdują się w kolumnie DisplayName .