W systemie Windows można zarządzać usługami nie tylko z poziomu konsoli graficznej services.msc lub narzędzia wiersza polecenia Sc.exe (pierwotnie zawartego w zestawie zasobów), ale także za pomocą programu PowerShell. W tym artykule przyjrzymy się różnym scenariuszom zarządzania usługami Windows za pomocą PowerShell..
Treść
- Podstawowe polecenia cmdlet programu PowerShell do zarządzania usługami systemu Windows
- Zatrzymaj, uruchom, wstrzymaj i uruchom ponownie usługi z PowerShell
- Set-Service - zmiana ustawień usługi Windows
- Tworzenie i usuwanie usług systemu Windows za pomocą programu PowerShell
- Zmień konto, aby uruchomić usługę
Podstawowe polecenia cmdlet programu PowerShell do zarządzania usługami systemu Windows
Istnieje osiem podstawowych poleceń cmdlet Service zaprojektowanych do wyświetlania statusu i zarządzania usługami Windows.
Aby uzyskać całą listę poleceń cmdlet Service, wprowadź polecenie:
Get-Help \ * - Usługa
- Uzyskaj usługę - umożliwia uzyskanie usług na komputerze lokalnym lub zdalnym, zarówno uruchomionych, jak i zatrzymanych;
- Nowa usługa - stworzyć usługę. Tworzy nowy wpis dla usługi Windows w bazie danych rejestru i usług;
- Uruchom ponownie usługę - uruchom ponownie usługę. Wysyła komunikat o ponownym uruchomieniu usługi za pośrednictwem kontrolera usług systemu Windows
- Wznów usługę - wznowić usługę. Wysyła wiadomość wznowienia do Menedżera usług systemu Windows;
- Zestaw serwisowy - Zmień ustawienia usług lokalnych lub zdalnych, w tym stan, opis, nazwę wyświetlaną i tryb uruchamiania. Tego polecenia cmdlet można także użyć do uruchomienia, zatrzymania lub wstrzymania usługi;
- Uruchom usługę - uruchomić usługę;
- Zatrzymaj usługę - zatrzymać usługę (wysyła komunikat zatrzymania do Menedżera usług systemu Windows);
- Zawieś usługę wstrzymaj usługę. Zawieszona usługa jest nadal uruchomiona, ale przestaje działać do momentu wznowienia usługi, na przykład za pomocą polecenia cmdlet Resume-Service.
Aby uzyskać szczegółowy opis i przykłady użycia określonego polecenia cmdlet, skorzystaj z pomocy Get:
Uzyskaj pomoc Start-Service
Get-Service: uzyskaj listę usług i ich status
Za pomocą polecenia cmdlet można pobrać listę i status (Uruchomiony / Zatrzymany) usługi na komputerze lokalnym lub zdalnym. Uzyskaj usługę. Opcja -Name umożliwia wybór według nazwy usługi. Nazwę usługi można określić za pomocą znaku wieloznacznego *.
Jeśli nie znasz dokładnej nazwy usługi, możesz znaleźć usługi według nazwy wyświetlanej za pomocą parametru -Nazwa wyświetlana. Możesz użyć listy wartości i symboli wieloznacznych.
.
Cmdlet Uzyskaj usługę można użyć do uzyskania statusu usług na komputerach zdalnych poprzez określenie parametru -Nazwa komputera. Możesz natychmiast sprawdzić status usługi na wielu komputerach zdalnych; ich nazwy muszą być oznaczone przecinkiem. Na przykład następujące polecenie pobiera status usługi buforowania na komputerach zdalnych RM1 i RM2.
Spooler Get-Service - nazwa_komputera RM1, RM2
Status Nazwa DisplayName ------ ---- ----------- Uruchomiony bufor Bufor wydruku Bufor zatrzymany Bufor wydruku
Aby wyświetlić wszystkie właściwości usługi, polecenie cmdlet Select-Object pozwoli:
Spooler Get-Service | Wybierz obiekt *
Cmdlet Wybierz obiekt wyświetli niektóre właściwości usługi. Na przykład musimy wyświetlić nazwę, status i dostępne funkcje usługi buforowania:
Get-Service Spooler | Wybierz DisplayName, Status, ServiceName, Can *
Cmdlet Uzyskaj usługę ma dwa parametry, które pozwalają uzyskać zależności usługi:
- Parametr -DependentServices umożliwia wyświetlanie usług zależnych od tej usługi;
- Parametr -RequiredServices pozwala wyświetlić usługi, od których zależy ta usługa.
Następujące polecenie wyświetla usługi potrzebne do uruchomienia usługi buforowania:
Get-Service -Name Spooler -RequiredServices
Następujące polecenie wyświetla usługi zależne od usługi buforowania:
Get-Service -Name Spooler -DependentServices
Jeśli chcesz znaleźć usługi o określonym stanie lub ustawieniach, użyj polecenia cmdlet Gdzie obiekt. Na przykład otrzymujemy listę uruchomionych usług ze statusem Uruchomienie:
Get-Service | Where-Object $ _. Status -eq „running”
Aby wyświetlić usługi z typem uruchamiania Ręcznie, uruchom polecenie
Get-Service | Where-Object $ _. Starttype -eq „Manual”
Sprawdź, czy system ma określoną usługę:
if (Get-Service „ServiceTest” -ErrorAction SilentlyContinue)
Host zapisu „ServiceTest istnieje”
Zatrzymaj, uruchom, wstrzymaj i uruchom ponownie usługi z PowerShell
Możesz zatrzymać usługę za pomocą polecenia cmdlet Zatrzymaj usługę. Aby zatrzymać usługę drukowania, uruchom polecenie:
Bufor Stop-Service -Name
Polecenie cmdlet Stop-Service nie wyświetla żadnych danych po wykonaniu. Aby zobaczyć wynik polecenia, użyj parametru -PassThru.
Pamiętaj, że nie wszystkie usługi można zatrzymać. Jeśli istnieją usługi zależne, uzyskaj błąd
Nie można zatrzymać usługi, ponieważ ma ona usługi zależne. Można go zatrzymać tylko wtedy, gdy ustawiona jest flaga wymuszenia.
Aby wymusić zatrzymanie, użyj parametru -Siła. Musisz pamiętać, że wszystkie usługi zależne również przestaną:
Stop-Service samss -Force -Passthru
Następujące polecenie zatrzyma wymienione usługi (bity, bufor) o statusie „Uruchomiony”:
bity serwisowe, bufor | gdzie $ _. status -eq „running” | stop-service -passthru
Cmdlet Uruchom usługę uruchamia zatrzymane usługi:
Start-Service -Nazwa buforowania -PassThru
Usługa nie uruchomi się, jeśli zostaną zatrzymane usługi zależne. Aby je znaleźć i włączyć:
get-service samss | Foreach start-service $ _. Nazwa -passthru; start-service $ _. DependentServices -passthru
Cmdlet Zawieś usługę może zawiesić usługi umożliwiające tymczasowe zawieszenie i wznowienie. Użyj polecenia cmdlet, aby uzyskać informacje o możliwości tymczasowego zawieszenia określonej usługi Uzyskaj usługę z własnością ”CanPauseAndContinue„.
Get-Service samss | Nazwa listy formatów, można wstrzymać i kontynuować
Aby wyświetlić listę wszystkich usług, które mogą zostać wstrzymane, wprowadź polecenie:
Get-Service | Where-Object $ _. Canpauseandcontinue -eq „True”
Zawieś usługę SQLBrowser:
Suspend-Service -Name SQLBrowser
Aby wznowić zawieszoną usługę, użyj polecenia cmdlet Wznów usługę:
Resume-Service -Name SQLBrowser
Następujące polecenie wznawia wszystkie wstrzymane usługi:
uzyskać usługę | gdzie-obiekt $ _. Status -eq „Wstrzymany” | usługa resume
Cmdlet Uruchom ponownie usługę ponownie uruchamia usługę:
Restart-Service -Nazwa bufor
To polecenie uruchamia wszystkie zatrzymane usługi sieciowe komputera:
get-service net * | gdzie-obiekt $ _. Status -eq "Zatrzymany" | usługa restartu
Parametr -Nazwa komputera tych poleceń cmdlet brakuje, ale można je uruchomić na komputerze zdalnym za pomocą polecenia cmdlet Wywołaj polecenie lub za pomocą rury:
Na przykład, aby ponownie uruchomić kolejkę wydruku na komputerze zdalnym RM1, uruchom polecenie:Get-Service Spooler -ComputerName RM1 | Uruchom usługę
Set-Service - zmiana ustawień usługi Windows
Cmdlet Zestaw serwisowy umożliwia zmianę ustawień lub ustawień usług na komputerze lokalnym lub zdalnym. Ponieważ status usługi jest właściwością, tego polecenia cmdlet można używać do uruchamiania, zatrzymywania i wstrzymywania usługi. Cmdlet Zestaw serwisowy ma parametr -Typ startowy, umożliwiając zmianę rodzaju uruchomienia usługi.
Zmień typ uruchamiania usługi buforowania na automatyczny:
Zestaw buforowania usług -startuptype automatic -passthru
Możesz przenieść usługę na ręczne uruchamianie:
Zestaw bufor usługi -startuptype manual -passthru
Tworzenie i usuwanie usług systemu Windows za pomocą programu PowerShell
Nowa usługa - polecenia cmdlet, aby utworzyć nową usługę w systemie Windows. W przypadku nowej usługi musisz podać nazwę i plik wykonywalny (możesz uruchomić skrypt PowerShell jako usługę Windows).
W tym przykładzie utwórz nową usługę o nazwie TestService.
new-service -name TestService -binaryPathName "C: \ WINDOWS \ System32 \ svchost.exe -k netsvcs"
Za pomocą parametru Get-WmiObject uzyskujemy informacje o trybie uruchamiania i opisie usługi
get-wmiobject win32_service -filter "name = 'testservice'"
Możesz zmienić parametry nowej usługi za pomocą polecenia
Set-Service -Nazwa TestService -Opis „My Service” -StartupType Manual
Aby usunąć usługę, użyj polecenia
(Get-WmiObject win32_service -Filter "name = 'TestService'"). Usuń ()
Zmień konto, aby uruchomić usługę
Możesz zmienić konto, na którym usługa się uruchamia. Uzyskaj nazwę konta używanego do uruchomienia usługi TestService
get-wmiobject win32_service -filter "name = 'TestService'" | Wybierz nazwę, nazwę początkową
Aby zmienić nazwę konta i hasło, wykonaj polecenia.
$ svc = get-wmiobject win32_service -filter "name = 'TestService'"
$ svc.GetMethodParameters („zmiana”)
W rezultacie otrzymujemy listę parametrów metody Change (). Rozważamy, gdzie znajdują się parametry StartName i StartPassword - odpowiednio 20 i 21 miejsc.
$ svc | Invoke-WmiMethod -Name Change -ArgumentList @ ($ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, $ null, „Administrator”, „P @ ssw0rd”)
Lub możesz podać nazwę konta gMSA. Hasło nie jest określone.
Jak widać, PowerShell ułatwia zarządzanie usługami Windows. Możesz tworzyć, zatrzymywać, uruchamiać i wznawiać usługi, zmieniać ich właściwości. Większość poleceń cmdlet umożliwia zarządzanie usługami na komputerach zdalnych..