Скачать

Распакуйте и запустите или установите

Версия 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 МБ

для командной строки на той же машине.