Tìm trong các dịch vụ Windows, xem trước mọi thay đổi và biết điều gì đã lệch kể từ hôm qua
Better Windows Services là services.msc được xây dựng lại cho những người quản trị máy Windows - một cửa sổ và một dòng lệnh trên cùng một lõi. Hãy đặt câu hỏi cho máy thay vì cuộn qua tám trăm dòng. Xem một thay đổi sẽ làm gì trước khi bạn nhấn bất cứ thứ gì. Và phần mà services.msc chưa bao giờ có: đóng băng mọi dịch vụ vào một tệp, rồi một tuần sau hỏi điều gì đã thay đổi.
- Miễn phí và mã nguồn mở, GPL-3.0
- Một tệp, hoặc một trình cài đặt
- Không cần quyền quản trị để xem
- Không bao giờ kết nối với internet
bws yêu cầu chính xác điều tương tự. Chương trình nói tiếng Anh - cửa sổ đọc một tệp ngôn ngữ đặt bên cạnh nó, nên có thể dịch mà không cần biên dịch lại.Nó trông ra sao khi dùng
Một phiên thật, trên Windows cài bằng tiếng Ba Lan - tên hiển thị đến từ Windows, nên bằng ngôn ngữ của nó. Bản thân cửa sổ nói tiếng Anh.
services.msc hầu như không thay đổi kể từ Windows 2000
Quản trị viên mất hàng giờ mỗi tuần trong đó và va vào cùng những bức tường.
- Không có tìm kiếm. Cách điều hướng duy nhất là nhảy tới chữ cái đầu của một tên hiển thị.
- Không có bộ lọc. Không có cách nào để hỏi cho tôi xem những gì được đặt tự khởi động mà không chạy.
- Mỗi lần một dòng. Khởi động lại mười hai dịch vụ là mười hai lần nhấp chuột phải và mười hai lần chờ.
- "Stopping..." mãi mãi, không có lối thoát nào ngoài Task Manager và đoán tiến trình.
- Không có lịch sử. Không ai biết ai đã đặt kiểu khởi động đó thành Disabled, hay khi nào.
- Dữ liệu bị ẩn. Tiến trình, trình kích hoạt, đặc quyền, bộ mô tả bảo mật, ai đã ký tệp thực thi - tất cả đều cần
sc.exegõ theo trí nhớ, hoặc registry. - Không có tương đương trên dòng lệnh.
sc.execó cú pháp từ thập niên chín mươi, vàGet-Serviceđi kèm Windows, trong Windows PowerShell 5.1, không hiển thị tài khoản mà dịch vụ chạy, nói gì đến mô tả. PowerShell 7 hiển thị cả hai và được cài riêng.
Các công cụ khác mỗi cái sửa một phần
Process Hacker và System Informer hiển thị một danh sách phong phú và có thể buộc kết thúc tiến trình, nhưng không có kiểm toán và không có dòng lệnh. sc.exe và PsService có thể làm mọi thứ và không cho bạn biết gì. Các cmdlet *-Service của PowerShell viết script được và nông cạn.
Không ai kết hợp một danh sách có thể tìm kiếm, một bản xem trước trước mỗi thay đổi, và một bản ghi về những gì đã thay đổi theo thời gian - và bản ghi đó là lý do để giữ công cụ này trên máy sau buổi chiều đầu tiên.
So sánh đầy đủMột cửa sổ và một dòng lệnh trên cùng một lõi
Hỏi thay vì cuộn
start:auto !status:running nghĩa là những gì lẽ ra phải chạy mà không chạy. Một ngôn ngữ, trong ô tìm kiếm và trong bws list --query, với các trường được gợi ý khi bạn gõ.
Cho xem kế hoạch trước khi có gì xảy ra
Mỗi lần dừng, khởi động, khởi động lại và đổi kiểu khởi động đều được xem trước cùng với các dịch vụ bị kéo theo, và bản xem trước chính là thứ sẽ chạy.
Cho biết điều gì đã lệch, và ai đã thay đổi
bws snapshot create đóng băng máy vào một tệp, và bws snapshot diff cho biết điều gì đã thay đổi từ đó, cấu hình tách riêng khỏi những gì chỉ vừa khởi động hoặc dừng. bws history cho biết, từ nhật ký System, ai đã đổi kiểu khởi động và ai đã cài một dịch vụ. Cửa sổ làm cả ba dưới Audit....
Sửa một sự cố phổ biến chỉ bằng một lần nhấn
Thẻ Tools và bws tool fix khởi động lại dịch vụ đằng sau máy in không in, âm thanh biến mất hoặc tìm kiếm bị treo, cùng với những gì phụ thuộc vào nó, qua cùng một kế hoạch như mọi thứ khác.
Dừng một dịch vụ không chịu dừng
Nó hỏi lịch sự trước và chỉ kết thúc tiến trình nếu điều đó thất bại, nêu tên mọi dịch vụ khác sống trong đó.
Cho xem những gì services.msc giấu
Ai đã ký tệp thực thi và Windows có tin nó không, trình kích hoạt, đặc quyền, bộ mô tả bảo mật, tiến trình và bộ nhớ của nó. Dưới dạng cột, và dưới dạng thứ để tìm kiếm.
Nói khi không đọc được điều gì
Một trường không đọc được sẽ được báo là chưa đọc, không bao giờ hiển thị là trống. Một bản chụp lấy khi không có quyền quản trị nói điều đó ngay trong tệp.
Khớp với script
--json ở mọi lệnh, một mã thoát cho mọi kết cục, và 5 khi một lần so sánh phát hiện sai lệch.
Chạy từ một tệp, ngoại tuyến
Giải nén và chạy, hoặc cài cho cả máy. Không có .NET để cài, và nó không bao giờ kết nối với internet. Đọc không cần quyền quản trị. GPL-3.0.
Điều gì đã thay đổi kể từ hôm qua
Một bản chụp là cả máy tại một thời điểm - mọi dịch vụ và trình điều khiển, với kiểu khởi động, tài khoản, đường dẫn khởi chạy, mã băm và người ký của tệp, các phụ thuộc, trình kích hoạt, đặc quyền và bộ mô tả bảo mật. Nó là JSON với một trường mỗi dòng, nên có thể đưa vào kho mã và git diff đọc được nó.
$ bws snapshot diff before.json --live --exit-code
Changed (2):
Spooler Print Spooler
startType: Manual -> Automatic
status: Stopped -> Running (running state, not configuration)
wlidsvc Microsoft Account Sign-in Assistant
status: Stopped -> Running (running state, not configuration)
Added 0, removed 0, changed 2. Fields differing: 1 in configuration, 2 in running state.
- Cấu hình và trạng thái chạy được báo riêng. Hai bản chụp cách nhau một ngày khác nhau ở những gì tình cờ đang chạy và hầu như không có gì trong đó là sai lệch - kiểu khởi động đã thay đổi mới là dòng cần đọc.
- Những gì không thể so sánh được liệt kê, không bị giấu. Một trường mà một bản chụp chưa bao giờ đọc sẽ hiện ra là not compared, nên một lần so sánh nói không có gì thay đổi nghĩa là không có gì thay đổi trong những gì cả hai phía đều thấy được.
--exit-codekết thúc bằng5khi cấu hình khác nhau, để một tác vụ theo lịch có thể chụp lúc triển khai và gọi ai đó vào đêm đầu tiên máy bị lệch.- Hai máy, hai tệp. Chụp một bản trên môi trường thử nghiệm và một bản trên môi trường sản xuất rồi so sánh chúng ở bất cứ đâu.
Bản xem trước chính là việc thực thi
Mọi thao tác ghi đều dựng một kế hoạch trước, và chính kế hoạch ấy là bản xem trước, chuỗi các dịch vụ phụ thuộc, lời từ chối trước khi bạn nhấn bất cứ thứ gì, dòng lệnh yêu cầu điều tương tự, và đường quay lại sau đó.
$ bws stop Winmgmt --dry-run --dependents
Plan: stop Winmgmt (2 steps)
1. stop vmms (would break otherwise)
2. stop Winmgmt (asked for)
Warnings:
- Stopping Winmgmt also stops one other entry: vmms
- Winmgmt starts automatically, so it will be back after the next restart.
- Chạy không có
--dry-runvà đây là các bước, theo thứ tự đó, với cùng những lý do bên cạnh. Không có đường mã thứ hai cho việc thực thi thật. - Những gì bị kéo theo đều nằm trong kế hoạch. Các dịch vụ sẽ hỏng là những bước riêng, và một kế hoạch sẽ hạ gục thứ mà máy cần sẽ nói điều đó trong phần cảnh báo.
- Lời từ chối đến trước nút bấm. Một trình điều khiển, một dịch vụ mà trình quản lý không chấp nhận lệnh dừng, một tiến trình mà hệ thống bảo vệ - bị từ chối khi kế hoạch được dựng, kèm lý do. Cửa sổ làm xám nút và nói lý do ngay bên cạnh.
- Dừng cưỡng bức gồm hai bước, và bước thứ hai có điều kiện.
bws killyêu cầu dịch vụ dừng và chỉ kết thúc tiến trình của nó nếu điều đó không có tác dụng, nêu tên mọi dịch vụ khác sống trong đó.
Từ dòng lệnh
Cùng lõi với cửa sổ, cho script, tác vụ theo lịch và CI. Dữ liệu đi tới đầu ra chuẩn và mọi thứ khác đi tới lỗi chuẩn, nên bws list --json | jq hoạt động và một cảnh báo không bao giờ rơi vào JSON của bạn.
bws list --query "start:auto !status:running" những gì lẽ ra phải chạy mà không chạy
bws list --query "file:missing" các dịch vụ có tệp thực thi đã mất
bws list --query "signed:no peruser:no" chưa ký, không kể các bản sao theo phiên
bws show Spooler mọi thứ đã biết về một mục
bws stop Winmgmt --dry-run --dependents việc dừng nó sẽ kéo theo những gì
bws kill Spooler --dry-run việc kết thúc tiến trình của nó sẽ cuốn theo những gì
bws start-type Spooler manual --dry-run việc bỏ nó khỏi chế độ tự động sẽ gây ra gì
bws snapshot create before.json đóng băng máy trước một thay đổi
bws snapshot diff before.json --live --exit-code điều gì đã thay đổi từ đó, 5 nếu cấu hình đã đổi
bws history Spooler ai đã đổi kiểu khởi động của nó, và khi nào
bws tool fix printer --dry-run cách sửa nhanh cho máy in bị treo sẽ làm gì
Mọi lệnh, tùy chọn và mã thoát
Giải nén và chạy, hoặc cài đặt
Windows 10 1809 hoặc Windows Server 2019 trở lên, 64-bit. Các bản nén không cần trình cài đặt và không ghi gì vào registry, và việc xem không cần quyền quản trị. Thay đổi bất cứ thứ gì cần một phiên nâng quyền, và cả hai nửa đều nói điều đó thay vì lặng lẽ thất bại - cửa sổ đề nghị Restart as admin.
| Tệp | Đó là gì |
|---|---|
BetterWindowsServices-win-x64.zip | Cửa sổ, một tệp thực thi độc lập - không có .NET để cài |
bws-cli-win-x64.zip | Dòng lệnh, một tệp thực thi độc lập, cho script và CI |
BetterWindowsServices-win-x64.msi | Trình cài đặt: cả hai chương trình cho mọi tài khoản trên máy, cửa sổ trong menu Start và bws trong PATH |
Các tệp thực thi mang chữ ký Authenticode, nên Windows nêu tên nhà phát hành thay vì cảnh báo về một nhà phát hành không rõ.

