Hướng dẫn sử dụng
Nhấp đúp swico.exe là quét đầy đủ và mở báo cáo khi xong. Phần dưới dành cho người cần điều khiển chi tiết hơn: chọn phạm vi quét, chạy im lặng, đọc mã thoát, gom kết quả nhiều máy.
Đánh số phiên bản
Mỗi bản phát hành mang tên tsudev-swico_YY.M.DDNN_x64-setup.exe - CalVer,
phiên bản chính là ngày phát hành, hai chữ số cuối là thứ tự bản trong ngày:
| Tên file cài đặt | Nghĩa |
|---|---|
tsudev-swico_26.8.1901_x64-setup.exe |
bản thứ 01 ngày 19/08/2026 |
tsudev-swico_26.8.1902_x64-setup.exe |
bản thứ 02 cùng ngày 19/08/2026 |
tsudev-swico_26.9.0301_x64-setup.exe |
bản thứ 01 ngày 03/09/2026 |
Ngày và số thứ tự đều đệm đủ hai chữ số. Đó không phải chuyện thẩm mỹ: thành
phần thứ ba được đọc bằng phép chia cho 100, nên 26.9.0901 là ngày 9 bản 1, còn
26.9.91 sẽ đọc ra ngày 0 bản 91 - một số hiệu không tồn tại. Nhờ đệm đủ, thứ tự
so sánh 1901 < 1902 < 2001 luôn khớp thứ tự thời gian.
Ưu điểm: nhìn tên file là biết ngay bản đó cũ hay mới, không cần tra bảng.
Hai bản phát hành đầu tiên (
26.8.18,26.8.18.2) dùng quy ước cũ và giữ nguyên tên. Công cụ đọc được cả hai dạng.
Quy ước đầy đủ, kèm những gì bị cấm và vì sao: docs/VERSIONING.md.
Quy ước gốc của hệ sinh thái: .standards/docs/DESIGN_SYSTEM.md mục 6.
Cách dùng
swico.exe Quét đầy đủ, mở báo cáo khi xong
swico.exe --scope license Chỉ kiểm tra bản quyền
swico.exe --scope hardware Chỉ thu thập phần cứng
swico.exe --silent --sfc Quét sâu, không mở trình duyệt (GPO/RMM)
swico.exe -o D:\BaoCao --silent Lưu vào thư mục chỉ định
swico.exe --rules .\luat-moi.json Quét bằng bộ luật cập nhật
swico.exe --no-verdict-exit Kết luận không ảnh hưởng mã thoát
swico.exe --version Xem phiên bản
swico.exe --help Xem toàn bộ tham số
Công cụ yêu cầu quyền Administrator để đọc trạng thái bản quyền, Defender và chạy DISM/SFC. Windows sẽ tự hiện hộp thoại UAC.
Theo dõi tiến trình khi đang quét
Một lần quét đầy đủ mất từ vài chục giây tới hơn 15 phút (nếu bật --sfc).
Công cụ in từng bước một, ngay khi bước đó chạy xong, kèm thời gian thật của
chính nó - không dồn lại tới cuối:
Dưới đây là đầu ra thật, chép từ log CI chạy trên runner Windows (run 32201733164):
[2] Đang thu thập cấu hình phần cứng...
✓ Tổng quan thiết bị 1.3 s
✓ CPU 1.0 s
✓ RAM 0.0 s
✓ Ổ đĩa 0.0 s
✓ Phân vùng 0.0 s
✓ Card đồ họa 0.0 s
✓ Card mạng 0.0 s
✓ Driver lỗi 0.1 s
DISM CheckHealth đang chạy (thường dưới 5 giây, tối đa 3 phút)...
✓ Toàn vẹn file hệ thống 0.9 s
✓ Windows Defender 0.2 s
✓ Ghi báo cáo ra đĩa 0.0 s
Trên terminal thật, dòng đang chạy còn có con quay (⠹) quay tại chỗ trước
khi được thay bằng ✓ - log CI không thể hiện được điều đó vì đầu ra bị chuyển
hướng nên con quay tự tắt (xem đoạn dưới).
Con quay cho biết công cụ đang chạy chứ không treo - đây là khác biệt mà một
cột thời gian đứng yên không nói được. Những bước chạy lâu (DISM, sfc) còn tự
báo thời gian dự kiến.
Khi đầu ra bị chuyển hướng (ghi ra file log, đưa qua ống dẫn, chạy trong RMM/CI), công cụ tự bỏ con quay và mã màu - chỉ còn mỗi bước một dòng sạch, để không có ký tự điều khiển nào lọt vào file log.
Ctrl+C dừng ngay lập tức, kể cả khi sfc đang chạy dở: tiến trình con bị
kết thúc, con trỏ terminal được trả về bình thường, những mục đã quét xong vẫn
nằm nguyên trên màn hình, và công cụ thoát với mã 130.
Mã thoát (cho tích hợp RMM/giám sát)
Chia hai nhóm có chủ đích, vì hệ thống giám sát cần phân biệt "công cụ đọc thiếu dữ liệu" với "máy này có vấn đề bản quyền".
Sức khoẻ công cụ - công cụ chạy có trọn vẹn không:
| Mã | Ý nghĩa |
|---|---|
| 0 | Hoàn tất, không phát hiện vấn đề |
| 1 | Hoàn tất nhưng thiếu dữ liệu ở một số mục (báo cáo chính vẫn đầy đủ) |
| 2 | Lỗi nghiêm trọng, không tạo được báo cáo |
| 3 | Tham số dòng lệnh không hợp lệ |
Kết luận đánh giá - máy được quét có vấn đề không:
| Mã | Ý nghĩa |
|---|---|
| 10 | Kết luận mức cảnh báo (ví dụ: Office chưa kích hoạt) |
| 20 | Kết luận mức nghiêm trọng (dấu hiệu kích hoạt trái phép) |
| 30 | Cần cập nhật trước khi quét (chỉ ở chế độ --silent) |
| 130 | Người dùng huỷ bằng Ctrl+C (quy ước POSIX 128 + SIGINT) |
Thứ tự ưu tiên khi nhiều điều kiện cùng xảy ra: 2 > 3 > 130 > 20 > 10 > 1 > 0.
Kết luận đánh giá thắng "thiếu dữ liệu" vì nó cần hành động hơn.
Nếu hệ RMM của bạn coi mọi mã khác 0 là script lỗi, thêm --no-verdict-exit
để chỉ dùng nhóm mã sức khoẻ công cụ.
Kết quả đầu ra
Bốn định dạng cùng lúc: HTML để đọc, JSON để tích hợp, XLSX và CSV để xử lý tiếp.
<thư mục chứa exe>/
tsudev-bao-cao-ra-quet-<Máy>-<Ngày>/ ← cấp 2
tsudev-tong-hop.html ← trang tổng hợp mọi máy
tsudev-ket-qua-ra-quet-<Máy>-<Ngày>/ ← cấp 3
Windows_License_Audit_*.html / .json / .xlsx / .csv
Windows_Hardware_Inventory_*.html / .json / .xlsx / .csv
Quét nhiều máy: copy các thư mục cấp 3 từ máy khác vào cấp 2 →
tsudev-tong-hop.html tự đọc đệ quy (không giới hạn độ sâu) và gom lại.
Tự động cập nhật
Khi khởi động, công cụ hỏi GitHub xem đã có phiên bản mới chưa. Nếu có, hiện hộp thoại một nút "Cập nhật" - tải, đối chiếu SHA-256, rồi chạy trình cài đặt. Phải cập nhật xong mới quét tiếp, vì kết luận dựa trên bộ luật phát hiện và một bộ luật lỗi thời có thể bỏ sót dấu hiệu mới.
Nếu không kiểm tra được (mất mạng, tường lửa chặn) thì công cụ vẫn quét bình thường kèm ghi chú. Chặn ở đây sẽ làm công cụ vô dụng đúng ở nơi cần nhất.
Ở chế độ --silent không hiện hộp thoại - thoát với mã 30 để hệ thống triển
khai tự xử lý. Tắt hẳn bằng --no-update-check.
Chi tiết: docs/UPDATES.md.
Nguồn trang: README.md trên GitHub.