압축을 풀어 실행하거나 설치하세요
버전 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.<code>.json을 읽으며, Windows의 언어에 따라 선택하고 스위치는 없습니다. 따라서 번역은 다시 빌드하지 않고 추가할 수 있는 기여입니다. 방법은 CONTRIBUTING.md에 있습니다.
백신과 EDR
이 도구는 관리자가 서비스에 대해 하는 일을 하며, 그중 일부는 보안 소프트웨어가 감시하는 바로 그 동작입니다.
서비스를 중지하고 시작하며, 서비스 뒤의 프로세스를 종료할 수 있고, 모든 서비스의 보안 설명자와 필요한 권한을 읽습니다. svchost.exe를 종료하는 프로세스를 표시하는 EDR은 제 할 일을 하는 것이며, 여기서의 강제 중지는 정확히 그렇게 보일 수 있습니다.
이 도구가 하지 않는 일은 다음과 같습니다. 주장을 직접 확인할 수 있도록 적습니다. 어떤 프로세스에도 아무것도 주입하지 않습니다. 아무것도 패킹하거나 난독화하지 않습니다. 서비스도 드라이버도 설치하지 않고 아무것도 실행 상태로 남기지 않으며, 네트워크 연결을 열지 않습니다. 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
결과는 각 프로젝트의 bin/Release/.../win-x64/publish/ 아래에 bws.exe와 BetterWindowsServices.exe로 생성됩니다. 옆에 있는 .pdb 파일은 디버깅 기호이며, 실행에는 필요하지 않습니다.
실행에 드는 비용
서비스 804개가 있는 컴퓨터 한 대에서 측정했습니다. 서비스 수, 디스크, 프로세서에 따라 수치가 달라집니다.
약 5분의 1초
bws list가 컴퓨터 전체를 읽는 데 걸리는 시간.
약 19MB
같은 컴퓨터에서 명령줄이 사용하는 양입니다.