Розпакуйте й запустіть або встановіть
Версія 0.5.0. Архівам не потрібен інсталятор, і вони нічого не пишуть у реєстр, а для перегляду права адміністратора не потрібні. Підписаний інсталятор натомість ставить обидві програми на всю машину. Безкоштовний і з відкритим кодом за ліцензією GPL-3.0.
Що є у випуску
| Файл | Що це |
|---|---|
BetterWindowsServices-win-x64.zip | Вікно: BetterWindowsServices.exe, один автономний виконуваний файл зі власним середовищем виконання .NET усередині |
bws-cli-win-x64.zip | Командний рядок: bws.exe, один автономний виконуваний файл, для скриптів, запланованих задач і CI |
BetterWindowsServices-win-x64.msi | Інсталятор: обидві програми в Program Files для кожного облікового запису на машині, вікно в меню «Пуск» і bws у PATH машини |
Беріть один або обидва - це два клієнти одного рушія, і жоден не потребує іншого. На сервері командний рядок менший із двох і робить усе, що робить вікно.
Інсталятор несе рівно те, що містять два архіви. Він ставиться тихо командою msiexec /i BetterWindowsServices-win-x64.msi /qn, новіша версія встановлюється поверх старішої, і він нічого не закриває з того, що працює, - тож перед оновленням закрийте вікно та будь-який запущений bws, бо копія, залишена запущеною, може зупинитися з помилкою. Видалення через «Параметри», «Програми» прибирає програми, пункт у меню «Пуск» і запис у PATH, а ваші власні файли не чіпає.
Виконувані файли несуть підпис Authenticode, тому Windows називає видавця, а не попереджає про невідомого.
Вимоги
- Windows 10 версії 1809 або новіша, чи Windows Server 2019 або новіший. Лише 64-розрядні - 32-розрядний процес читає перенаправлені шляхи й розділи реєстру, що мовчки давало б хибні відповіді.
- Ставити .NET не потрібно. Обидва виконувані файли несуть власне середовище виконання .NET.
- Щоб щось змінити, потрібні права адміністратора. Читання, пошук, знімки й порівняння працюють без них, із меншою кількістю видимих записів, і інструмент каже про це нагорі, а не вдає, що список - це вся машина.
Вікно зберігає один власний файл - розкладку, у якій ви залишили список, - у %APPDATA%\BetterWindowsServices. Знімок потрапляє туди, куди ви скажете покласти його команді bws snapshot create, а якщо не скажете - у поточний каталог.
Програма говорить англійською. Вікно читає файл мови, languages\gui.<code>.json, що лежить поруч і вибирається за мовою Windows, без перемикача. Переклад - це тому внесок, який можна додати без перебудови, - як це зробити, пояснює CONTRIBUTING.md.
Антивірус і EDR
Цей інструмент робить зі службами те, що робить адміністратор, а частина цього - саме те, за чим стежить захисне програмне забезпечення.
Він зупиняє й запускає служби, може завершити процес, що стоїть за однією з них, і читає дескриптор безпеки та потрібні привілеї кожної служби. EDR, який позначає процес, що завершує svchost.exe, робить свою роботу, а примусова зупинка тут може виглядати саме так.
Чого він не робить, щоб ви могли перевірити твердження: нічого не впроваджує в жоден процес, нічого не пакує й не обфускує, не встановлює ні служби, ні драйвера й нічого не залишає запущеним, і не відкриває жодного мережевого з'єднання. Він має відкритий код за GPL-3.0, і обидва виконувані файли можна зібрати самому.
Якщо вашій політиці потрібен виняток, виключайте два виконувані файли за файлом, а не за каталогом. Єдине, до чого варто ставитися з такою самою обережністю, як до самого інструмента, - це файл знімка: він описує всю машину.
Збирання з вихідного коду
.NET 10 SDK, у Windows.
git clone https://github.com/donislawdev/BetterWindowsServices
cd BetterWindowsServices
dotnet build BetterWindowsServices.slnx -c Release
dotnet test BetterWindowsServices.slnx -c Release
Деякі тести читають справжній диспетчер керування службами машини, на якій запущені, і порівнюють те, що каже цей інструмент, із тим, що каже sc.exe. Вони лише читають. Однофайлові виконувані файли, які несуть випуски, - це ці дві публікації, кожна в один файл із середовищем виконання всередині:
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
Вони з'являються як bws.exe і BetterWindowsServices.exe у bin/Release/.../win-x64/publish/ кожного проєкту. Файли .pdb поруч із ними - це символи налагодження, і для запуску вони не потрібні.
Скільки коштує його робота
Виміряно на одній машині з 804 службами. Ваші цифри відрізнятимуться: на них впливають кількість служб, диск і процесор.
Близько п'ятої частки секунди
щоб bws list прочитав усю машину.
Близько 19 МБ
для командного рядка на тій самій машині.