Rozpakuj gdziekolwiek i uruchom
Wersja 0.1.0. Bez instalatora, bez pisania do rejestru i bez praw administratora do samego patrzenia. Darmowe i otwarte na licencji GPL-3.0.
Co jest w wydaniu
| Plik | Co to jest |
|---|---|
BetterWindowsServices-win-x64.zip | Okno: BetterWindowsServices.exe, jeden samodzielny plik wykonywalny z własnym środowiskiem .NET w środku |
bws-cli-win-x64.zip | Wiersz poleceń: bws.exe, jeden samodzielny plik wykonywalny, do skryptów, zadań harmonogramu i CI |
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.
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.
- Nic do instalowania. 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, i to nie jest ostateczne: 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, nic nie instaluje 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 810 usługami. Twoje liczby będą inne - liczba usług, dysk i procesor przesuwają każdą z nich.
Około jednej czwartej sekundy
zajmuje bws list odczytanie całej maszyny.
Około ośmiu dziesiątych sekundy
od uruchomienia okna do listy na ekranie.
Około 100 MB
bierze okno - połowa tego to biblioteka interfejsu Windowsa, zanim ruszy jakikolwiek własny kod tego programu.
Około 16 MB
bierze wiersz poleceń na tej samej maszynie.