Pobieranie

Rozpakuj i uruchom albo zainstaluj

Wersja 0.5.0. Archiwa nie potrzebują instalatora i nie piszą do rejestru, a do samego patrzenia nie trzeba praw administratora. Podpisany instalator kładzie za to oba programy na całą maszynę. Darmowe i otwarte na licencji GPL-3.0.

Co jest w wydaniu

PlikCo to jest
BetterWindowsServices-win-x64.zipOkno: BetterWindowsServices.exe, jeden samodzielny plik wykonywalny z własnym środowiskiem .NET w środku
bws-cli-win-x64.zipWiersz poleceń: bws.exe, jeden samodzielny plik wykonywalny, do skryptów, zadań harmonogramu i CI
BetterWindowsServices-win-x64.msiInstalator: oba programy w Program Files dla wszystkich kont na maszynie, okno w menu Start i bws na ścieżce PATH maszyny

Weź jeden albo oba - to dwaj klienci tego samego silnika i żaden nie potrzebuje drugiego. Na serwerze wiersz poleceń jest mniejszy z tych dwóch i robi wszystko, co okno.

Instalator niesie dokładnie to, co dwa archiwa. Instaluje się po cichu przez msiexec /i BetterWindowsServices-win-x64.msi /qn, nowsza wersja wchodzi na miejsce starszej, a instalator nie zamyka niczego, co działa - dlatego przed aktualizacją zamknij okno i działający bws, bo kopia zostawiona w działaniu może zakończyć się błędem. Odinstalowanie w Ustawieniach, Aplikacje usuwa programy, wpis w menu Start i wpis w PATH, a Twoich własnych plików nie rusza.

Pliki wykonywalne noszą podpis Authenticode, więc Windows podaje wydawcę zamiast ostrzegać przed nieznanym.

Wymagania

  • Windows 10 w wersji 1809 lub nowszy, albo Windows Server 2019 lub nowszy. Tylko 64 bity - proces 32-bitowy czyta przekierowane ścieżki i klucze rejestru, co po cichu dawałoby złe odpowiedzi.
  • Bez instalowania .NET-a. Oba pliki wykonywalne niosą własne środowisko .NET.
  • Prawa administratora do zmieniania czegokolwiek. Czytanie, szukanie, snapshoty i porównania działają bez nich, z mniejszą liczbą widocznych wpisów - a program mówi to na górze, zamiast udawać, że lista jest całą maszyną.

Okno trzyma jeden własny plik - układ, w jakim zostawiłeś listę - pod %APPDATA%\BetterWindowsServices. Snapshot ląduje tam, gdzie każesz bws snapshot create, a bez wskazania w katalogu bieżącym.

Program mówi po angielsku. Okno czyta plik językowy languages\gui.<kod>.json położony obok siebie, wybierany według języka systemu, bez żadnego przełącznika. Tłumaczenie jest więc wkładem, który da się dodać bez przebudowy - CONTRIBUTING.md mówi jak.

Antywirus i EDR

Ten program robi to, co administrator robi z usługami, a część tego jest tym, czego pilnuje oprogramowanie ochronne.

Zatrzymuje i uruchamia usługi, potrafi zakończyć stojący za usługą proces i czyta deskryptor bezpieczeństwa oraz wymagane przywileje każdej z nich. EDR, który reaguje na zakończenie procesu svchost.exe, robi swoją robotę - a wymuszone zatrzymanie wygląda tu dokładnie tak.

Czego nie robi, żebyś mógł to sprawdzić: nie wstrzykuje niczego do żadnego procesu, niczego nie pakuje ani nie zaciemnia, nie instaluje żadnej usługi ani sterownika i nic po sobie nie zostawia, i nie otwiera żadnego połączenia sieciowego. Jest otwarty na licencji GPL-3.0 i oba pliki wykonywalne możesz zbudować sam.

Jeśli Twoja polityka wymaga wyjątku, wyklucz te dwa pliki wykonywalne, a nie folder. Jedyna rzecz warta takiej samej ostrożności co sam program to plik snapshotu: opisuje całą maszynę.

Budowanie ze źródeł

.NET 10 SDK, na Windowsie.

git clone https://github.com/donislawdev/BetterWindowsServices
cd BetterWindowsServices
dotnet build BetterWindowsServices.slnx -c Release
dotnet test BetterWindowsServices.slnx -c Release

Część testów czyta prawdziwy menedżer usług maszyny, na której biegnie, i porównuje to, co mówi ten program, z tym, co mówi sc.exe. Są tylko do odczytu. Jednoplikowe pliki wykonywalne z wydania to te dwie publikacje, każda jeden plik ze środowiskiem w środku:

dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true

Lądują jako bws.exe i BetterWindowsServices.exe pod bin/Release/.../win-x64/publish/ każdego projektu. Pliki .pdb obok nich to symbole do debugowania i nic ich nie potrzebuje do działania.

Ile kosztuje uruchomienie

Zmierzone na jednej maszynie z 804 usługami. Twoje liczby będą inne - liczba usług, dysk i procesor przesuwają każdą z nich.

Około jednej piątej sekundy

zajmuje bws list odczytanie całej maszyny.

Około 19 MB

bierze wiersz poleceń na tej samej maszynie.