Téléchargement

Décompresser et lancer, ou installer

Version 0.5.0. Les archives n'ont pas besoin d'installeur et n'écrivent rien dans le Registre, et consulter ne demande aucun droit d'administrateur. Un installeur signé place à la place les deux programmes sur toute la machine. Libre et gratuit sous GPL-3.0.

Ce que contient la version

FichierCe que c'est
BetterWindowsServices-win-x64.zipLa fenêtre : BetterWindowsServices.exe, un exécutable autonome avec son propre runtime .NET à l'intérieur
bws-cli-win-x64.zipLa ligne de commande : bws.exe, un exécutable autonome, pour les scripts, les tâches planifiées et la CI
BetterWindowsServices-win-x64.msiL'installeur : les deux programmes dans Program Files pour chaque compte de la machine, la fenêtre dans le menu Démarrer et bws dans le PATH de la machine

Prenez l'un ou l'autre, ou les deux - ce sont deux clients du même moteur et aucun n'a besoin de l'autre. Sur un serveur, la ligne de commande est la plus petite des deux et fait tout ce que fait la fenêtre.

L'installeur contient exactement ce que contiennent les deux archives. Il s'installe en silence avec msiexec /i BetterWindowsServices-win-x64.msi /qn, une version plus récente s'installe par-dessus une plus ancienne, et il ne ferme rien de ce qui tourne - fermez donc la fenêtre et tout bws en cours avant la mise à jour, car une copie laissée en marche peut s'arrêter avec une erreur. La désinstallation depuis Paramètres, Applications supprime les programmes, l'entrée du menu Démarrer et l'entrée du PATH, et ne touche pas à vos propres fichiers.

Les exécutables portent une signature Authenticode, de sorte que Windows nomme l'éditeur au lieu d'avertir d'un éditeur inconnu.

Prérequis

  • Windows 10 version 1809 ou ultérieure, ou Windows Server 2019 ou ultérieur. 64 bits uniquement - un processus 32 bits lit des chemins et des clés de Registre redirigés, ce qui donnerait discrètement de mauvaises réponses.
  • Aucun .NET à installer. Les deux exécutables portent leur propre runtime .NET.
  • Des droits d'administrateur pour modifier quoi que ce soit. Lire, chercher, les instantanés et les comparaisons fonctionnent sans eux, avec moins d'entrées visibles et l'outil qui le dit en haut au lieu de faire comme si la liste était la machine entière.

La fenêtre garde un fichier à elle - la disposition dans laquelle vous avez laissé la liste - sous %APPDATA%\BetterWindowsServices. Un instantané va là où vous dites à bws snapshot create de le mettre, et dans le répertoire courant quand vous ne dites rien.

Le programme parle anglais. La fenêtre lit un fichier de langue, languages\gui.<code>.json, placé à côté d'elle et choisi selon la langue de Windows, sans option. Une traduction est donc une contribution qui peut s'ajouter sans recompiler - CONTRIBUTING.md explique comment.

Antivirus et EDR

Cet outil fait ce que fait un administrateur avec les services, et une partie de cela est ce que surveillent les logiciels de sécurité.

Il arrête et démarre des services, il peut terminer le processus derrière l'un d'eux, et il lit le descripteur de sécurité et les privilèges requis de chaque service. Un EDR qui signale un processus terminant svchost.exe fait son travail, et un arrêt forcé ici peut ressembler exactement à cela.

Ce qu'il ne fait pas, pour que vous puissiez vérifier l'affirmation : il n'injecte rien dans aucun processus, il ne compresse ni n'obfusque rien, il n'installe ni service ni pilote et ne laisse rien en marche, et il n'ouvre aucune connexion réseau. Il est libre sous GPL-3.0 et vous pouvez compiler vous-même les deux exécutables.

Si votre politique exige une exclusion, excluez les deux exécutables par fichier plutôt qu'un dossier. La seule chose à traiter avec le même soin que l'outil lui-même est un fichier d'instantané : il décrit la machine entière.

Compiler depuis les sources

SDK .NET 10, sous Windows.

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

Certains tests lisent le vrai gestionnaire de contrôle des services de la machine sur laquelle ils tournent et comparent ce que dit cet outil avec ce que dit sc.exe. Ils sont en lecture seule. Les exécutables à fichier unique que contiennent les versions sont ces deux publications, chacune un fichier avec le runtime à l'intérieur :

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

Ils atterrissent sous les noms bws.exe et BetterWindowsServices.exe dans bin/Release/.../win-x64/publish/ de chaque projet. Les fichiers .pdb à côté sont des symboles de débogage, et rien n'en a besoin pour s'exécuter.

Ce que coûte son fonctionnement

Mesuré sur une machine de 804 services. Vos chiffres seront différents - le nombre de services, le disque et le processeur les font tous varier.

Environ un cinquième de seconde

pour que bws list lise toute la machine.

Environ 19 Mo

pour la ligne de commande sur la même machine.