Ngôn ngữ truy vấn

Đặt câu hỏi cho máy

Một ngôn ngữ, trong ô tìm kiếm của cửa sổ và trong bws list --query. Một từ trần tìm trong tên, tên hiển thị, tài khoản và đường dẫn khởi chạy. Một trường thu hẹp nó. 21 trường, và cùng một văn bản có cùng ý nghĩa ở cả hai nửa của công cụ.

Sáu truy vấn trả lời một câu hỏi thật

Những gì lẽ ra phải chạy mà không chạy

start:auto !status:running

Truy vấn đầu tiên hầu hết mọi người viết, và là truy vấn mà services.msc hoàn toàn không thể trả lời.

Các dịch vụ có tệp đã mất

file:missing

Một mục trỏ tới tệp thực thi không có trên đĩa. Thường là một lần gỡ cài đặt để lại phần đăng ký.

Chưa ký, không có nhiễu từ các phiên

signed:no peruser:no

Các họ theo người dùng tạo một bản sao mỗi phiên và lấp danh sách bằng những mục gần như trùng. Truy vấn này hỏi phần còn lại.

Đang chạy dù bị vô hiệu hóa

mismatch:running

Cấu hình và trạng thái không khớp - một mục mà trình quản lý được đặt để không bao giờ khởi động, vẫn đang chạy.

Bất cứ thứ gì yêu cầu quyền gỡ lỗi

privilege:SeDebugPrivilege

Một đặc quyền cho phép một tiến trình mở bất kỳ tiến trình nào khác. Đáng biết những dịch vụ nào yêu cầu nó.

Những gì công cụ không đọc được

account:?

Các mục mà phiên này không đọc được tài khoản. Một câu hỏi mà services.msc thậm chí không thể đặt ra.

Cách viết một truy vấn

Các thành phần

  • Các thành phần cách nhau bằng dấu cách và tất cả phải khớp - không có từ khóa and vì nó không thể có nghĩa nào khác.
  • Cùng một trường viết hai lần là ngoại lệ duy nhất: status:running status:stopped nghĩa là một trong hai, vì đó là điều việc đánh dấu hai bộ lọc ghi ra. Hai cận trên một con số vẫn thu hẹp - pid:>1000 pid:<2000 là khoảng giữa chúng.
  • ! đứng trước một thành phần sẽ phủ định nó: !status:running. Trong tệp batch có setlocal EnableDelayedExpansion, cmd nuốt ! đó mà không nói một lời và truy vấn lặng lẽ có nghĩa khác - hãy viết ^! bên trong dấu nháy ở đó.
  • Dấu phẩy bên trong một trường nghĩa là hoặc: start:manual,disabled.
  • Dấu nháy bảo vệ mọi thứ có dấu cách hoặc dấu hai chấm: account:"NT SERVICE\McmSvc".
  • Một đường dẫn dán nguyên trạng - C:\Windows\System32\svchost.exe - được tìm kiếm, chứ không bị đọc như một trường tên C.

Cách khớp văn bản

  • name:spool khớp với mọi thứ chứa nó - mặc định, vì đó là điều mọi người mong đợi ở một ô tìm kiếm.
  • name:=spooler là khớp chính xác.
  • name:spool* nhận ký tự đại diện, * và ?.
  • name:/^Sql.*/ là một biểu thức chính quy, và bên trong dấu gạch chéo nó được viết như cách biểu thức chính quy được viết: \?, \\ và dấu phẩy mang ý nghĩa mà chúng mang ở đó. Một dấu gạch chéo không bao giờ đóng là một lỗi - để tìm chính dấu gạch chéo, hãy viết \/ hoặc dùng dấu nháy.
  • Chữ hoa chữ thường bị bỏ qua, kể cả ngoài ASCII - một tên hiển thị bằng tiếng Ba Lan hay Hy Lạp khớp dù gõ thế nào.

Ba từ mà mọi trường đều chấp nhận

  • any - có một giá trị, bất kể là gì
  • none - thực sự không có giá trị - mục không có giá trị nào
  • ? - công cụ không thể đọc trường này, hoặc chưa đọc nó, một câu hỏi mà services.msc thậm chí không thể đặt ra

Một giá trị gõ sai là một lỗi, không bao giờ là một kết quả trống. status:runing trả lời Did you mean running? và kết thúc với mã 2. Một danh sách trống sẽ trông như một câu trả lời, và sự khác biệt giữa "không có gì khớp" và "bạn gõ sai" là sự khác biệt giữa một máy sạch và một cuộc kiểm toán không chứng minh được gì. Một truy vấn không thu hẹp được gì cũng bị từ chối trên dòng lệnh, để một script không thao tác trên cả máy chỉ vì một lỗi gõ.

Thêm ví dụ

Mỗi cái hoạt động giống nhau trong ô tìm kiếm của cửa sổ và sau bws list --query, và mỗi cái đã được chạy trên một Windows thật trước khi viết ở đây. Những gì nó tìm thấy phụ thuộc vào máy - và với một câu hỏi về sự cố, một câu trả lời trống là điều bạn muốn.

Trạng thái và kiểu khởi động

Truy vấnNó tìm thấy gì
status:stopPending,startPendingBị kẹt khi đang dừng hoặc đang khởi động - sự chờ đợi mà snap-in hiển thị và không bao giờ kết thúc.
start:auto status:stopped trigger:noneĐược đặt tự khởi động, đang dừng và không chờ trình kích hoạt - danh sách ngắn đáng đọc sau khi khởi động lại.
start:delayedTự động, được khởi động muộn hơn một chút so với các mục tự động khác.
start:manual,disabled status:runningĐang chạy dù không gì khởi động nó lúc khởi động máy - có thứ yêu cầu nó, một trình kích hoạt đã khởi động nó, hoặc ai đó đã làm.

Tài khoản

Truy vấnNó tìm thấy gì
account:localsystem !publisher:microsoftChạy với tư cách LocalSystem, tài khoản mạnh nhất, từ một tệp mà Microsoft không ký. Một truy vấn về nhà phát hành tự đọc chữ ký, nên mất vài giây.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessCác dịch vụ chạy dưới bất kỳ tài khoản nào khác - tài khoản ảo, tài khoản được quản lý hoặc tài khoản riêng của một người.
account:"NT SERVICE"Một tài khoản ảo riêng của dịch vụ. Dấu nháy giữ các từ lại với nhau, vì có dấu cách.

Tệp và chữ ký

Truy vấnNó tìm thấy gì
signed:notSigned,untrustedRoot,tamperedKhông có chữ ký, một chuỗi mà Windows không tin, hoặc một tệp bị thay đổi sau khi được ký.
signed:trusted !publisher:microsoftĐã ký, đáng tin cậy và không phải của Microsoft - phần mềm mà các công ty khác đặt trên máy này.
type:driver start:boot,system !signed:trustedTrình điều khiển được nạp khi Windows khởi động mà Windows không tin chữ ký. Trên một máy khỏe mạnh, không có cái nào.
!path:C:\Windows type:ownProcessMột dịch vụ có tiến trình riêng mà tệp của nó nằm ngoài thư mục Windows.
path:\AppData\Được khởi chạy từ bên trong hồ sơ của ai đó, nơi cuối cùng người ta mong đợi một dịch vụ.
path:\System32\\ type:ownProcessMột dấu gạch chéo ngược trước dấu cách khiến dấu cách trở thành một phần của từ, nên một đường dẫn kết thúc bằng gạch chéo ngược được viết với hai dấu khi có thành phần khác theo sau. Ở cuối truy vấn, một dấu là đủ.

Trình kích hoạt và phụ thuộc

Truy vấnNó tìm thấy gì
trigger:device status:stoppedĐang chờ một thiết bị xuất hiện, nên dừng có lý do.
trigger:networkĐược khởi động khi một yêu cầu đến một điểm cuối mạng - một cổng, một named pipe hoặc một giao diện RPC.
trigger:stopCác mục mà một trình kích hoạt có thể dừng, không chỉ khởi động.
dependson:WinmgmtCác mục cần WMI để chạy.
requiredby:SpoolerMọi thứ Print Spooler cần để chạy, và những thứ đó lần lượt cần gì.

Đặc quyền và tiến trình

Truy vấnNó tìm thấy gì
privilege:SeTcbPrivilegeYêu cầu được hành động như một phần của hệ điều hành.
privilege:SeImpersonatePrivilege !account:localsystemCó thể hành động thay mặt một máy khách trong khi chạy dưới tài khoản khác LocalSystem.
sidtype:unrestrictedMang SID dịch vụ riêng trong tiến trình của nó, nên các quyền có thể chỉ nêu tên riêng nó. sidtype:restricted hỏi về những cái có tiến trình còn bị hạn chế ghi.
type:sharedProcess status:runningChạy bên trong một svchost dùng chung, cùng với những dịch vụ khác.
memory:>200MBMột tiến trình dùng hơn 200 MB. Bộ nhớ được tự đọc khi truy vấn hỏi về nó.
pid:1000-2000Trong một tiến trình có id nằm giữa 1000 và 2000.

Tên và văn bản

Truy vấnNó tìm thấy gì
spoolMột từ trần, được tìm trong tên, tên hiển thị, tài khoản và đường dẫn khởi chạy.
name:=wuauservChính xác tên này, và không có gì chỉ đơn thuần chứa nó.
name:win*Các tên bắt đầu bằng win, viết bằng ký tự đại diện.
name:/svc$/Các tên kết thúc bằng svc, viết dưới dạng biểu thức chính quy.
description:noneHoàn toàn không có mô tả, điều đúng với hầu hết trình điều khiển.
description:?Một mô tả mà Windows không thể giao ra, thường vì nó trỏ tới một tệp ngôn ngữ không tồn tại.
peruser:templateCác mẫu theo người dùng mà Windows sao chép cho mỗi phiên đã đăng nhập.

Mọi trường

Được dựng từ chính chương trình, nên bảng này không thể lệch khỏi những gì công cụ chấp nhận. Một trường không có danh sách giá trị nhận văn bản, một số hoặc một kích thước - cột thứ ba nói cái nào.

TrườngHỏi vềGiá trị
nametên dịch vụ, tên Windows dùng để nhận ra nóvăn bản
displaytên hiển thị, như Windows này viếtvăn bản
descriptionmục tự nói gì về chính nóvăn bản
typemục thuộc loại nàodriver, kernelDriver, fileSystemDriver, ownProcess, sharedProcess, unknown
perusercó phải một trong các họ theo người dùng mà Windows tạo bản sao cho mỗi phiên hay khôngyes, no, template, instance
statusnó đang làm gì ngay lúc nàyrunning, stopped, paused, pending, startPending, stopPending, pausePending, continuePending, unknown
starttrình quản lý làm gì với nó ở lần khởi động tiếp theoautomatic, auto, delayed, manual, disabled, boot, system, unknown
accounttài khoản nó chạy dưới, như trình quản lý viếtvăn bản, ví dụ localsystem
pidtiến trình nó đang chạy trong đómột số: 1234, >1000, 100-200
triggermột điều kiện khởi động hoặc dừng nódevice, ip, domain, firewall, policy, network, custom, state, aggregate, unknown, start, stop
pathdòng lệnh mà trình quản lý khởi chạyvăn bản
filetệp mà nó chạy có nằm trên đĩa khôngpresent, missing
signedWindows nghĩ gì về chữ ký của tệp, không kiểm tra thu hồiyes, no, trusted, notSigned, untrustedRoot, expired, revoked, tampered, unknown
publisherai đã ký tệp - chỉ được chứng minh bởi một chữ ký đáng tin cậyvăn bản
privilegemột đặc quyền mà mục yêu cầuvăn bản, ví dụ SeDebugPrivilege
dependsonđiều mà mục này cầntên một dịch vụ
requiredbyđiều gì hỏng nếu mục này dừngtên một dịch vụ
sidtypekiểu SID của dịch vụunrestricted, restricted, unknown
sddlbộ mô tả bảo mật, dạng văn bảnvăn bản
memorytiến trình của nó đang dùng gìmột kích thước kèm đơn vị: 500MB, >1GB, 100MB-1GB
mismatchcấu hình và trạng thái không khớp nhaustopped, running

Hai điều đáng biết

Một số trường tốn kém, và yêu cầu chúng sẽ bật việc đọc

Chữ ký mất vài giây trên cả máy và bộ nhớ là một phép đo chứ không phải một thiết lập, nên cả hai đều không được đọc cho một danh sách trừ khi được yêu cầu. Một truy vấn nhắc tới một trong hai sẽ tự bật việc đọc đó - bạn không phải nhớ thêm --signatures bên cạnh signed:no. Trong cửa sổ, một truy vấn về chữ ký nói rằng câu trả lời chưa đầy đủ cho đến khi chúng tới, thay vì hiển thị một danh sách ngắn hơn như thể đó là câu trả lời.

Một kết quả được đánh giá dựa trên điều không đọc được sẽ nói điều đó

Nếu các mục được đánh giá dựa trên một trường mà phiên này không đọc được, kết quả mang một dòng nói có bao nhiêu mục - vì một kết quả như vậy có thể thiếu mục, hoặc chứa những mục không thuộc về nó. Đó là cùng quy tắc mà toàn bộ công cụ giữ: một lần đọc thất bại hiện rõ trong câu trả lời, không bao giờ bị nuốt. Một nhà phát hành nhận cùng cách đối xử khi chỉ chứng chỉ khẳng định nó: bên cạnh bất kỳ phán quyết nào khác ngoài trusted, tên được hiển thị là not verified, và publisher: tính mục đó là không chắc chắn trên một dòng riêng - nên !publisher:microsoft giữ lại một tệp Microsoft bị ai đó thay đổi sau khi ký.

Tham chiếu dòng lệnh