展開して実行、またはインストール
バージョン 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
同じマシンでのコマンドラインの場合です。