ダウンロード

展開して実行、またはインストール

バージョン 0.5.0。アーカイブにインストーラーは不要で、レジストリには何も書き込みません。見るだけなら管理者権限は不要です。署名付きインストーラーを使うと、代わりに両方のプログラムがマシン全体にインストールされます。GPL-3.0 の下で、無料でオープンソースです。

リリースの内容

ファイル内容
BetterWindowsServices-win-x64.zipウィンドウです。BetterWindowsServices.exe という 1 つの自己完結型の実行ファイルで、.NET ランタイムが内蔵されています
bws-cli-win-x64.zipコマンドラインです。bws.exe という 1 つの自己完結型の実行ファイルで、スクリプト、スケジュールされたタスク、CI 向けです
BetterWindowsServices-win-x64.msiインストーラーです。マシン上のすべてのアカウント向けに、両方のプログラムを Program Files にインストールし、ウィンドウをスタート メニューに、bws をマシンの PATH に追加します

どちらか一方、または両方をお使いください。同じエンジンの 2 つのクライアントであり、どちらも相手を必要としません。サーバーでは、コマンドラインのほうが小さく、ウィンドウができることはすべて行えます。

インストーラーには、2 つのアーカイブの内容がそのまま入っています。msiexec /i BetterWindowsServices-win-x64.msi /qn でサイレントインストールでき、新しいバージョンは古いバージョンに上書きインストールされます。実行中のものは閉じないため、アップグレード前にウィンドウと実行中の bws を閉じてください。実行したままのコピーはエラーで停止することがあります。「設定」の「アプリ」からアンインストールすると、プログラム、スタート メニューの項目、PATH の項目が削除され、ご自身のファイルには手を触れません。

実行ファイルには Authenticode 署名があるため、Windows は不明な発行元として警告せず、発行元の名前を表示します。

要件

  • Windows 10 バージョン 1809 以降、または Windows Server 2019 以降。64 ビットのみです。32 ビットのプロセスはリダイレクトされたパスとレジストリキーを読むため、静かに誤った答えを出してしまいます。
  • .NET のインストールは不要です。どちらの実行ファイルも、独自の .NET ランタイムを内蔵しています。
  • 何かを変更するには管理者権限が必要です。読み取り、検索、スナップショット、差分は権限なしでも動作しますが、見えるエントリは少なくなります。ツールは、一覧がマシン全体であるかのように装わず、画面上部でそのことを伝えます。

ウィンドウは独自のファイルを 1 つだけ保持します。一覧を最後に置いたレイアウトで、場所は %APPDATA%\BetterWindowsServices です。スナップショットは、bws snapshot create に指定した場所に保存され、指定しない場合はカレントディレクトリに保存されます。

プログラムは英語で表示されます。ウィンドウは、隣に置かれた言語ファイル languages\gui.<code>.json を読み込み、Windows の言語で選択します。切り替えスイッチはありません。したがって翻訳は、再ビルドなしで追加できる貢献です。方法は CONTRIBUTING.md に書かれています。

ウイルス対策と EDR

このツールは、管理者がサービスに対して行うことを行います。その一部は、セキュリティソフトが監視している動作そのものです。

サービスを停止・開始し、その背後のプロセスを終了でき、すべてのサービスのセキュリティ記述子と必要な特権を読み取ります。svchost.exe を終了するプロセスを検知する EDR は、役目を果たしています。ここでの強制停止は、まさにそのように見えることがあります。

このツールが行わないことを挙げます。確認できるようにするためです。どのプロセスにも何も注入しません。何かをパックしたり難読化したりしません。サービスもドライバーもインストールせず、何も常駐させません。ネットワーク接続も開きません。GPL-3.0 のオープンソースであり、2 つの実行ファイルは自分でビルドできます。

ポリシーで除外が必要な場合は、フォルダーではなく、2 つの実行ファイルをファイル単位で除外してください。ツール自体と同じ注意を払う価値があるものが 1 つあります。スナップショットファイルです。マシン全体を記述しているからです。

ソースからのビルド

.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 の出力と比較します。これらは読み取り専用です。リリースに含まれる単一ファイルの実行ファイルは、次の 2 つのパブリッシュで作られます。それぞれ、ランタイムを内蔵した 1 つのファイルです。

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

出力は、各プロジェクトの bin/Release/.../win-x64/publish/ の下に bws.exe と BetterWindowsServices.exe として生成されます。隣にある .pdb ファイルはデバッグ用シンボルで、実行には必要ありません。

実行にかかるコスト

804 個のサービスがある 1 台のマシンで計測しました。サービスの数、ディスク、プロセッサーによって数値は変わります。

約 5 分の 1 秒

bws list がマシン全体を読み取るまで。

約 19 MB

同じマシンでのコマンドラインの場合です。