Распакуйте и запустите или установите
Версия 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.<код>.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 МБ
для командной строки на той же машине.