질문

질문과 한계

무언가를 조용히 다루지 못하는 도구는, 못 하는 일을 말해 주는 도구보다 나쁩니다. 한계도 이 페이지에 두 부류로 적었습니다. 설계상 거부하는 일과, Windows가 하는 일 중 이 도구가 있는 그대로 보고하는 것입니다.

sc.exe, Get-Service, services.msc와 무엇이 다른가요?

sc query와 Get-Service는 무엇이 실행 중인지 알려 줍니다. services.msc는 그것을 한 행씩 바꾸게 해 주지만, 질문을 할 방법도 없고 나중에 남는 기록도 없습니다. 이 도구는 질문(start:auto !status:running)을 하고, 실행하기 전에 계획을 보여 주며, 일주일 뒤에 차이를 볼 수 있는 스냅샷을 보관합니다. 서비스에 대해 sc.exe와 다르게 나온다면 그것은 버그입니다. 테스트 모음의 일부가 둘을 모두 실행해 항목별로 비교합니다. 더 자세한 비교는 여기에 있습니다.

인터넷이 필요한가요?

전혀 필요하지 않습니다. 원격 측정도, 업데이트 확인도, 충돌 보고도, 계정도, 어떤 것의 클라이언트도 없습니다. 네트워크에 닿을 수 있는 유일한 경우는 --follow-network를 전달할 때입니다. 그러면 다른 컴퓨터의 공유에 있는 시작 경로를 살펴보거나, 이 컴퓨터에 아직 없는 인증서를 Windows가 가져오게 할 수 있습니다. 기본값은 꺼짐이며, 도움말이 그 이유를 설명합니다. 창의 GitHub 버튼과 Donate 버튼, 그리고 Help 메뉴의 페이지는 누를 때 각각 고정된 주소 하나를 브라우저에 넘길 뿐이며, 연결하는 것은 브라우저입니다.

관리자 권한이 필요한가요?

보기만 할 때는 필요 없습니다. 변경할 때는 필요합니다. 관리자 권한이 없으면 서비스 관리자가 보여 주는 항목이 적고 더 많이 거부하며, 두 쪽 모두 목록이 컴퓨터 전체인 것처럼 가장하지 않고 맨 위에서 그 사실을 알려 줍니다. 창은 Restart as admin을 제공합니다. 스스로 권한을 올리는 일은 절대 없습니다.

무료인가요? 직장에서 써도 되나요?

둘 다 그렇습니다. GPL-3.0이며 아무 조건도 없습니다. 만든 스냅샷은 사용자의 파일입니다.

서버를 망가뜨리지 않나요?

도구 자체가 망가뜨리지는 않습니다. 본 적 없는 계획 없이는 아무것도 바뀌지 않고, 드라이버는 거부되며, 컴퓨터에 필요한 것을 내릴 계획은 그 사실을 알려 줍니다. 막아 줄 수 없는 것은 읽지 않은 계획을 실행하는 것입니다. 컴퓨터에 필요한 서비스 목록은 일곱 개로 이루어진 시작용 목록입니다. RPC의 두 부분과 DCOM 실행기, 계정 관리자, 키 격리, 세션 관리자, 플러그 앤 플레이이며, 원격 데스크톱은 들어 있지 않으므로 원격 세션에서는 계획을 읽으세요.

Microsoft 제품인가요?

아니요. Better Windows Services는 독립적인 오픈 소스 프로젝트이며 Microsoft와 제휴하거나 Microsoft의 승인 또는 후원을 받지 않았습니다. Windows는 Microsoft 그룹 회사의 상표입니다.

프로그램이 내 언어로 되어 있나요?

아니요. 프로그램은 영어로 표시되며, 이 사이트를 번역한 이유도 그것입니다. 창은 실행 파일 옆에 놓인 언어 파일 languages\gui.<code>.json을 읽고, Windows의 언어에 따라 선택하며 스위치는 없으므로, 번역은 프로그램을 다시 빌드하지 않고 추가할 수 있는 기여입니다. 목록에 있는 서비스 이름은 사용 중인 Windows가 말하는 그대로이며, 곧 Windows가 설정된 언어입니다.

Windows는 밝은데 창은 왜 어두운가요?

창은 어둡고, Windows 설정이 무엇이든 고대비 테마를 포함해 계속 어둡습니다. 가정이 아니라 확인한 사실입니다. 자체 색을 유지하며 읽기 쉬운 상태를 유지하고, 그 설정을 따르지 않습니다.

설계상 한계

  • 로컬 컴퓨터만 지원합니다. 이 버전에는 원격 관리가 없습니다. 컴퓨터 두 대를 비교하려면 각각에서 스냅샷을 만들고 두 파일의 차이를 보세요.
  • Windows 전용, 64비트 전용이며 Windows 10 1809 또는 Windows Server 2019 이상입니다.
  • 드라이버에 대한 작업은 시도하지 않고 거부합니다. 커널 드라이버를 중지하면 다시 시작하지 않고는 되돌릴 수 없는 경우가 많기 때문입니다.
  • 도구는 스스로 권한을 올리지 않습니다. 서비스 관리자가 거부하면 그 사실을 알리고 종료 코드 3으로 끝납니다. 창은 관리자 권한으로 스스로를 다시 시작하자고 제안할 뿐 그 밖에는 아무것도 하지 않습니다.
  • 인증서 해지는 확인하지 않습니다. 확인하려면 네트워크에 접속해야 하는데 이 도구는 절대 그러지 않습니다. 따라서 Trusted는 이 컴퓨터에서 체인이 유효했다는 뜻이지, 그 후 아무도 인증서를 해지하지 않았다는 뜻이 아닙니다.
  • 창은 시작하기 전에 Windows 사용자 인터페이스 프레임워크의 일부를 풉니다. 파일 하나로서, Windows가 디스크에서만 불러올 수 있는 네이티브 라이브러리 몇 개를 담고 있기 때문입니다. 관리자 권한이 없으면 각 버전을 처음 시작할 때 이를 계정의 임시 폴더 아래 .net 폴더에 쓰고 거기서 불러옵니다. 관리자 권한이 있으면 대신 Windows 드라이브의 ProgramData\BetterWindowsServices를 씁니다. 관리자만 바꿀 수 있도록 만들고 시작할 때마다 확인하는 폴더입니다. 이 폴더를 만들 수 없거나 다른 사람이 바꿀 수 있으면 창은 시작하지 않고 어떤 폴더인지, 무엇을 해야 하는지 알려 줍니다. 그곳으로 옮기면 상승된 창이 스스로를 두 번째로 시작하게 되며 이는 1초도 걸리지 않지만, 각 버전은 누군가 폴더를 지울 때까지 그곳에 라이브러리(약 8MB)를 남깁니다. 명령줄에는 그런 라이브러리가 없으며 아무것도 풀지 않습니다.
  • 상승된 세션은 물려받은 .NET 설정을 거부하지 않고 이름으로 알려 줍니다. 프로파일러, 추적 또는 덤프 스위치, 환경에 설정된 진단 포트는 .NET 프로그램 안에서는 끌 수 없으므로, 관리자 권한이 있으면 두 쪽 모두 찾은 것을 나열합니다. 시작 후크는 아예 꺼집니다.

Windows가 하는 일 중 이 도구가 있는 그대로 보고하는 것

  • svchost 안에서 호스팅되는 서비스는 시작 경로가 호스트를 가리키므로, 파일이 있다와 누가 서명했는가는 자체 프로세스를 가진 서비스보다 알려 주는 것이 적습니다.
  • 파일 자체 서명과 Windows 카탈로그 항목을 모두 가진 파일은 서로 다른 서명자 두 명을 가리킬 수 있습니다. 표시되는 게시자는 파일 안에 있는 쪽이며, 다른 컴퓨터에서 파일을 살펴보아도 같은 쪽이고, PowerShell이 보고하는 것과 다를 수 있습니다.
  • 관리자 권한이 없으면 서비스 관리자가 나열하는 항목이 더 적고, 나열한 것 중 더 많은 부분을 거부합니다. 두 쪽 모두 맨 위에서 그 사실을 알리고 스냅샷이 이를 기록합니다. 상승된 스냅샷을 권한 없이 만든 스냅샷과 비교하면, 아무도 제거하지 않은 항목이 제거되었다고 보고될 것이기 때문입니다.

문제를 찾았거나, 이 도구가 sc.exe와 다르게 보고하는 서비스를 찾았나요? 이슈 트래커가 열려 있으며, 둘의 차이를 붙여 넣는 것이 가장 도움이 됩니다.