Przeszukuj usługi Windows, oglądaj plan każdej zmiany i zobacz, co się rozjechało od wczoraj
Better Windows Services to services.msc zbudowany od nowa dla ludzi, którzy administrują maszynami z Windowsem - okno i wiersz poleceń nad jednym silnikiem. Zadaj maszynie pytanie, zamiast przewijać osiemset wierszy. Zobacz, co zrobi zmiana, zanim cokolwiek naciśniesz. I to, czego services.msc nie miał nigdy: zamroź wszystkie usługi w pliku, a tydzień później zapytaj, co się zmieniło.
- Darmowe i otwarte, GPL-3.0
- Jeden plik albo instalator
- Do czytania bez praw administratora
- Nigdy nie łączy się z siecią
bws, która prosi dokładnie o to samo. Program mówi po angielsku - okno czyta plik językowy położony obok, więc tłumaczenie jest możliwe bez przebudowy.Jak to wygląda w użyciu
Prawdziwa sesja na Windowsie zainstalowanym po polsku - nazwy wyświetlane daje Windows, więc są w jego języku. Samo okno mówi po angielsku.
services.msc prawie nie zmienił się od Windows 2000
Administratorzy spędzają w nim godziny tygodniowo, uderzając w te same ściany.
- Brak wyszukiwania. Jedyna nawigacja to skok do pierwszej litery nazwy wyświetlanej.
- Brak filtrowania. Nie da się zapytać pokaż to, co ma startować automatycznie i nie działa.
- Jeden wiersz naraz. Restart dwunastu usług to dwanaście kliknięć prawym i dwanaście czekań.
- „Zatrzymywanie..." bez końca, bez wyjścia innego niż Menedżer zadań i zgadywanie procesu.
- Brak historii. Nikt nie wie, kto ustawił ten typ uruchomienia na Wyłączony ani kiedy.
- Ukryte dane. Proces, wyzwalacze, przywileje, deskryptor bezpieczeństwa, podpis pliku - po wszystko trzeba iść do
sc.exez pamięci albo do rejestru. - Brak równorzędnego wiersza poleceń.
sc.exema składnię z lat dziewięćdziesiątych, aGet-Servicedostarczany z Windowsem, w Windows PowerShell 5.1, nie pokazuje konta, na którym działa usługa, nie mówiąc o opisie. PowerShell 7 pokazuje jedno i drugie, ale instaluje się go osobno.
Inne narzędzia naprawiają po kawałku
Process Hacker i System Informer pokazują bogatą listę i potrafią ubić proces, i nie mają audytu ani wiersza poleceń. sc.exe i PsService potrafią wszystko i nie mówią nic. Polecenia *-Service w PowerShellu są skryptowalne i płytkie.
Nikt nie łączy przeszukiwalnej listy, podglądu przed każdą zmianą i zapisu tego, co zmieniło się w czasie - a to ten zapis jest powodem, żeby zostawić ten program na maszynie po pierwszym popołudniu.
Pełne porównanieOkno i wiersz poleceń nad jednym silnikiem
Pytaj, zamiast przewijać
start:auto !status:running to co powinno chodzić i nie chodzi. Jeden język, w polu wyszukiwania i w bws list --query, z polami podpowiadanymi w trakcie pisania.
Plan, zanim cokolwiek się stanie
Każde zatrzymanie, uruchomienie, restart i zmiana typu uruchomienia ma podgląd razem z usługami, które pociągnie za sobą - a podgląd jest tym, co się wykona.
Powie, co się rozjechało i kto to zmienił
bws snapshot create zamraża maszynę w pliku, a bws snapshot diff mówi, co się od tego czasu zmieniło - konfiguracja osobno od tego, co się po prostu uruchomiło albo zatrzymało. bws history mówi z dziennika System, kto zmienił typ uruchomienia i kto zainstalował usługę. Okno robi wszystkie trzy rzeczy pod Audit....
Naprawi typowy problem jednym kliknięciem
Zakładka Tools i bws tool fix restartują usługę stojącą za drukarką, która nie drukuje, dźwiękiem, który zniknął, albo wyszukiwaniem, które stanęło - razem z tym, co od niej zależy, przez ten sam plan co wszystko inne.
Zatrzyma usługę, która nie chce się zatrzymać
Najpierw prosi uprzejmie, a proces kończy dopiero wtedy, gdy to nie zadziała - wymieniając po nazwie każdą inną usługę, która w nim mieszka.
Pokaże to, co services.msc ukrywa
Kto podpisał plik i czy Windows temu ufa, wyzwalacze, przywileje, deskryptor bezpieczeństwa, proces i jego pamięć. Jako kolumny i jako rzeczy, po których można szukać.
Powie, czego nie zdołał odczytać
Pole, którego nie dało się odczytać, jest zgłoszone jako nieodczytane, nigdy jako puste. Snapshot zrobiony bez praw administratora mówi to w środku pliku.
Wejdzie do skryptu
--json przy każdej komendzie, kod wyjścia dla każdego zakończenia i 5, gdy porównanie znajdzie różnice.
Jeden plik, bez sieci
Rozpakuj i uruchom albo zainstaluj na całą maszynę. Bez instalowania .NET-a i bez łączenia się z internetem. Do czytania nie trzeba praw administratora. GPL-3.0.
Co zmieniło się od wczoraj
Snapshot to cała maszyna w jednej chwili - każda usługa i sterownik, z typem uruchomienia, kontem, ścieżką uruchomienia, skrótem i podpisem pliku, zależnościami, wyzwalaczami, przywilejami i deskryptorem bezpieczeństwa. To JSON z jednym polem na linię, więc wchodzi do repozytorium i czyta go git diff.
$ bws snapshot diff before.json --live --exit-code
Changed (2):
Spooler Print Spooler
startType: Manual -> Automatic
status: Stopped -> Running (running state, not configuration)
wlidsvc Microsoft Account Sign-in Assistant
status: Stopped -> Running (running state, not configuration)
Added 0, removed 0, changed 2. Fields differing: 1 in configuration, 2 in running state.
- Konfiguracja i stan są zgłaszane osobno. Dwa snapshoty z odstępem doby różnią się tym, co akurat działa, i prawie nic z tego nie jest dryfem - linią do przeczytania jest zmieniony typ uruchomienia.
- To, czego nie dało się porównać, jest wypisane, a nie ukryte. Pole, którego jeden ze snapshotów nigdy nie odczytał, wychodzi jako nieporównane - więc różnica mówiąca nic się nie zmieniło znaczy, że nic się nie zmieniło w tym, co obie strony widziały.
--exit-codekończy kodem5, gdy różni się konfiguracja - więc zadanie harmonogramu może zrobić snapshot przy wdrożeniu i wezwać kogoś pierwszej nocy, w której maszyna się rozjedzie.- Dwie maszyny, dwa pliki. Zrób snapshot na testowej i na produkcyjnej, a potem porównaj je gdziekolwiek.
Podgląd JEST wykonaniem
Każda operacja zapisu buduje najpierw plan, a ten sam plan jest podglądem, kaskadą usług zależnych, odmową zanim cokolwiek naciśniesz, linią wiersza poleceń proszącą o to samo i drogą powrotną.
$ bws stop Winmgmt --dry-run --dependents
Plan: stop Winmgmt (2 steps)
1. stop vmms (would break otherwise)
2. stop Winmgmt (asked for)
Warnings:
- Stopping Winmgmt also stops one other entry: vmms
- Winmgmt starts automatically, so it will be back after the next restart.
- Uruchom bez
--dry-runi to są te kroki, w tej kolejności, z tymi samymi powodami obok. Nie ma drugiej ścieżki kodu dla wersji prawdziwej. - To, co spadnie razem z usługą, jest w planie. Usługi, które przestaną działać, są osobnymi krokami, a plan zdejmujący coś, bez czego maszyna nie działa, mówi to w ostrzeżeniach.
- Odmowa przychodzi przed przyciskiem. Sterownik, usługa, dla której menedżer nie przyjmie zatrzymania, proces chroniony przez system - odmówione przy budowaniu planu, z podanym powodem. Okno wygasza przycisk i pisze dlaczego obok.
- Wymuszone zatrzymanie to dwa kroki, a drugi jest warunkowy.
bws killprosi usługę o zatrzymanie, a proces kończy tylko wtedy, gdy to nie zadziała - wymieniając każdą inną usługę żyjącą w tym procesie.
Z wiersza poleceń
Ten sam silnik co okno, do skryptów, zadań harmonogramu i CI. Dane idą na wyjście standardowe, a cała reszta na wyjście błędów - więc bws list --json | jq działa, a ostrzeżenie nigdy nie ląduje w Twoim JSON-ie.
bws list --query "start:auto !status:running" co powinno chodzić i nie chodzi
bws list --query "file:missing" usługi, których plik zniknął
bws list --query "signed:no peruser:no" niepodpisane, bez kopii per sesja
bws show Spooler wszystko, co wiadomo o jednym wpisie
bws stop Winmgmt --dry-run --dependents co zdjęłoby zatrzymanie
bws kill Spooler --dry-run co zabrałoby zakończenie procesu
bws start-type Spooler manual --dry-run co da zdjęcie z automatu
bws snapshot create before.json zamroź maszynę przed zmianą
bws snapshot diff before.json --live --exit-code co się zmieniło, 5 jeśli konfiguracja
bws history Spooler kto i kiedy zmienił typ uruchomienia
bws tool fix printer --dry-run co zrobiłaby szybka naprawa zablokowanej drukarki
Każda komenda, przełącznik i kod wyjścia
Rozpakuj i uruchom albo zainstaluj
Windows 10 1809 albo Windows Server 2019 i nowsze, 64 bity. Archiwa nie potrzebują instalatora i nie piszą do rejestru, a do samego patrzenia nie trzeba praw administratora. Zmiana czegokolwiek wymaga sesji z podniesionymi uprawnieniami, i obie połowy mówią to wprost, zamiast po cichu zawieść - okno proponuje Restart as admin.
| Plik | Co to jest |
|---|---|
BetterWindowsServices-win-x64.zip | Okno, jeden samodzielny plik wykonywalny - bez instalowania .NET-a |
bws-cli-win-x64.zip | Wiersz poleceń, jeden samodzielny plik wykonywalny, do skryptów i CI |
BetterWindowsServices-win-x64.msi | Instalator: oba programy dla wszystkich kont na maszynie, okno w menu Start i bws na ścieżce PATH |
Pliki wykonywalne noszą podpis Authenticode, więc Windows podaje wydawcę zamiast ostrzegać przed nieznanym.

