Sorgu dili

Makineye bir soru sorun

Tek bir dil; hem pencerenin arama kutusunda hem bws list --query içinde. Çıplak bir sözcük adı, görünen adı, hesabı ve başlatma yolunu arar. Bir alan onu daraltır. 21 alan ve aynı metin aracın iki yarısında da aynı anlama gelir.

Gerçek bir soruyu yanıtlayan altı sorgu

Açık olması gereken ve olmayan

start:auto !status:running

Çoğu insanın yazdığı ilk sorgu ve services.msc'nin hiç yanıtlayamadığı.

Dosyası kaybolan hizmetler

file:missing

Diskte olmayan bir yürütülebilir dosyaya işaret eden bir öğe. Genellikle kaydı geride bırakan bir kaldırma.

İmzasız, oturum gürültüsü olmadan

signed:no peruser:no

Kullanıcı başına aileler oturum başına bir kopya yapar ve listeyi neredeyse aynı öğelerle doldurur. Bu, geri kalanı sorar.

Devre dışıyken çalışan

mismatch:running

Birbiriyle uyuşmayan yapılandırma ve durum - yöneticinin hiç başlatmamaya ayarladığı bir öğe, yine de çalışıyor.

Hata ayıklama hakkı isteyen her şey

privilege:SeDebugPrivilege

Bir işlemin diğer herhangi birini açmasına izin veren bir ayrıcalık. Hangi hizmetlerin onu istediğini bilmeye değer.

Aracın okuyamadığı

account:?

Bu oturumun hesabı okuyamadığı öğeler. services.msc'nin soramayacağı bir soru.

Bir sorgu nasıl yazılır

Terimler

  • Terimler boşlukla ayrılır ve hepsi eşleşmelidir - and anahtar sözcüğü yoktur, çünkü başka bir anlama gelemezdi.
  • Aynı alanın iki kez yazılması tek istisnadır: status:running status:stopped ikisinden biri demektir, çünkü iki filtreyi işaretlemek bunu yazar. Bir sayı üzerindeki iki sınır yine de daraltır - pid:>1000 pid:<2000 ikisi arasındaki aralıktır.
  • Bir terimin önündeki ! onu olumsuzlar: !status:running. setlocal EnableDelayedExpansion içeren bir toplu iş dosyasında cmd bu ! işaretini tek kelime etmeden yer ve sorgu sessizce başka bir anlama gelir - orada tırnakların içine ^! yazın.
  • Bir alanın içindeki virgül veya demektir: start:manual,disabled.
  • Tırnaklar boşluk ya da iki nokta içeren her şeyi korur: account:"NT SERVICE\McmSvc".
  • Olduğu gibi yapıştırılan bir yol - C:\Windows\System32\svchost.exe - aranır, C adlı bir alan olarak okunmaz.

Metin nasıl eşleştirilir

  • name:spool onu içeren her şeyle eşleşir - varsayılan budur, çünkü insanlar bir arama kutusundan bunu bekler.
  • name:=spooler tam eşleşmedir.
  • name:spool* joker karakterleri, * ve ?, kabul eder.
  • name:/^Sql.*/ bir düzenli ifadedir ve eğik çizgilerin içinde düzenli ifadelerin yazıldığı gibi yazılır: \?, \\ ve virgül orada ne anlama geliyorsa onu ifade eder. Hiç kapanmayan bir eğik çizgi hatadır - eğik çizginin kendisini aramak için \/ yazın ya da tırnak kullanın.
  • Büyük/küçük harf ASCII dışında da yok sayılır - Lehçe ya da Yunanca bir görünen ad nasıl yazılırsa yazılsın eşleşir.

Her alanın kabul ettiği üç sözcük

  • any - bir değer var, ne olursa olsun
  • none - gerçekten hiç değer yok - öğenin değeri yok
  • ? - araç bu alanı okuyamadı ya da okumadı; bu, services.msc'nin soramayacağı bir sorudur

Yanlış yazılmış bir değer hatadır, asla boş bir sonuç değildir. status:runing, Did you mean running? yanıtını verir ve 2 koduyla biter. Boş bir liste yanıt gibi görünürdü ve "hiçbir şey eşleşmiyor" ile "yanlış yazdınız" arasındaki fark, temiz bir makine ile hiçbir şeyi kanıtlamayan bir denetim arasındaki farktır. Hiçbir şeyi daraltmayacak bir sorgu komut satırında da reddedilir; böylece bir betik bir yazım hatası yüzünden tüm makine üzerinde işlem yapmaz.

Daha fazla örnek

Her biri pencerenin arama kutusunda ve bws list --query sonrasında aynı çalışır ve her biri buraya yazılmadan önce gerçek bir Windows'ta çalıştırıldı. Ne bulduğu makineye bağlıdır - ve sorunla ilgili bir soruda, boş bir yanıt istediğiniz yanıttır.

Durum ve başlangıç türü

SorguNe bulur
status:stopPending,startPendingDurdurulurken ya da başlatılırken takılmış - ek bileşenin gösterdiği ve asla bitmeyen bekleme.
start:auto status:stopped trigger:noneOtomatik başlayacak şekilde ayarlı, durmuş ve bir tetikleyici beklemeyen - yeniden başlatmadan sonra okumaya değen kısa liste.
start:delayedOtomatik, diğer otomatik öğelerden biraz sonra başlatılan.
start:manual,disabled status:runningAçılışta hiçbir şey onu başlatmadığı halde çalışan - biri istedi, bir tetikleyici başlattı ya da birisi başlattı.

Hesaplar

SorguNe bulur
account:localsystem !publisher:microsoftEn güçlü hesap olan LocalSystem olarak, Microsoft'un imzalamadığı bir dosyadan çalışan. Yayımcı sorgusu imzaları kendiliğinden okur, bu yüzden birkaç saniye sürer.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessBaşka herhangi bir hesap altında çalışan hizmetler - sanal bir hesap, yönetilen bir hesap ya da bir kişinin kendi hesabı.
account:"NT SERVICE"Hizmetin kendi sanal hesabı. Boşluk yüzünden tırnaklar sözcükleri bir arada tutar.

Dosyalar ve imzalar

SorguNe bulur
signed:notSigned,untrustedRoot,tamperedİmza yok, Windows'un güvenmediği bir zincir ya da imzalandıktan sonra değiştirilmiş bir dosya.
signed:trusted !publisher:microsoftİmzalı, güvenilir ve Microsoft tarafından olmayan - diğer şirketlerin bu makineye koyduğu yazılım.
type:driver start:boot,system !signed:trustedWindows başlarken yüklenen ve imzasına Windows'un güvenmediği sürücüler. Sağlıklı bir makinede hiç yok.
!path:C:\Windows type:ownProcessDosyası Windows klasörünün dışında duran, kendi işlemi olan bir hizmet.
path:\AppData\Birinin profilinin içinden başlatılan; bir hizmetin beklendiği son yer.
path:\System32\\ type:ownProcessBoşluğun önündeki bir ters eğik çizgi boşluğu sözcüğün parçası yapar; bu yüzden ters eğik çizgiyle biten bir yol, ardından başka bir terim geldiğinde iki tane ile yazılır. Sorgunun sonunda bir tane yeter.

Tetikleyiciler ve bağımlılıklar

SorguNe bulur
trigger:device status:stoppedBir aygıtın gelmesini bekleyen, yani bir nedenle durmuş.
trigger:networkBir ağ uç noktasına - bir bağlantı noktasına, adlandırılmış bir kanala ya da bir RPC arayüzüne - bir istek geldiğinde başlatılan.
trigger:stopBir tetikleyicinin yalnızca başlatmakla kalmayıp durdurabildiği öğeler.
dependson:WinmgmtÇalışmak için WMI'ye ihtiyaç duyan öğeler.
requiredby:SpoolerPrint Spooler'ın çalışmak için ihtiyaç duyduğu her şey ve onların da sırayla ihtiyaç duyduğu şeyler.

Ayrıcalıklar ve işlemler

SorguNe bulur
privilege:SeTcbPrivilegeİşletim sisteminin parçası olarak davranmayı ister.
privilege:SeImpersonatePrivilege !account:localsystemLocalSystem dışında bir hesap altında çalışırken bir istemci adına hareket edebilir.
sidtype:unrestrictedİşleminde kendine ait bir hizmet SID'i taşır; böylece izinler yalnızca onu adlandırabilir. sidtype:restricted, işlemi ayrıca yazma kısıtlı olanları sorar.
type:sharedProcess status:runningOrtak bir svchost içinde, diğerleriyle birlikte çalışan.
memory:>200MB200 MB'tan fazla kullanan bir işlem. Bir sorgu bunu sorduğunda bellek kendiliğinden okunur.
pid:1000-2000Kimliği 1000 ile 2000 arasında olan bir işlemde.

Adlar ve metin

SorguNe bulur
spoolAdda, görünen adda, hesapta ve başlatma yolunda aranan çıplak bir sözcük.
name:=wuauservTam olarak bu ad, onu yalnızca içeren hiçbir şey değil.
name:win*win ile başlayan adlar, joker karakterle yazılmış.
name:/svc$/svc ile biten adlar, düzenli ifade olarak yazılmış.
description:noneHiç açıklaması olmayan; sürücülerin çoğu böyledir.
description:?Windows'un teslim edemediği bir açıklama; genellikle var olmayan bir dil dosyasına işaret ettiği için.
peruser:templateWindows'un oturum açmış her oturum için kopyaladığı kullanıcı başına şablonlar.

Her alan

Programın kendisinden üretilir, bu yüzden bu tablo aracın kabul ettiğinden sapamaz. Değer listesi olmayan bir alan metin, sayı ya da boyut alır - üçüncü sütun hangisi olduğunu söyler.

AlanNeyi sorarDeğerler
namehizmet adı, Windows'un onu tanıdığı admetin
displaygörünen ad, bu Windows'un yazdığı şekildemetin
descriptionöğenin kendisi hakkında söylediklerimetin
typene tür bir öğe olduğudriver, kernelDriver, fileSystemDriver, ownProcess, sharedProcess, unknown
peruserWindows'un oturum başına kopyasını oluşturduğu kullanıcı başına ailelerden biri olup olmadığıyes, no, template, instance
statusşu anda ne yaptığırunning, stopped, paused, pending, startPending, stopPending, pausePending, continuePending, unknown
startyöneticinin bir sonraki açılışta onunla ne yaptığıautomatic, auto, delayed, manual, disabled, boot, system, unknown
accountçalıştığı hesap, yöneticinin yazdığı şekildemetin, ör. localsystem
pidiçinde çalıştığı işlembir sayı: 1234, >1000, 100-200
triggeronu başlatan ya da durduran bir koşuldevice, ip, domain, firewall, policy, network, custom, state, aggregate, unknown, start, stop
pathyöneticinin başlattığı komut satırımetin
fileçalıştırdığı dosyanın diskte olup olmadığıpresent, missing
signedWindows'un dosyanın imzası hakkında düşündüğü, iptal denetlenmedenyes, no, trusted, notSigned, untrustedRoot, expired, revoked, tampered, unknown
publisherdosyayı kimin imzaladığı - yalnızca güvenilir bir imzayla kanıtlanırmetin
privilegeöğenin istediği bir ayrıcalıkmetin, ör. SeDebugPrivilege
dependsonbunun neye ihtiyacı olduğubir hizmet adı
requiredbybu durursa neyin bozulduğubir hizmet adı
sidtypehizmet SID türüunrestricted, restricted, unknown
sddlgüvenlik tanımlayıcısı, metin olarakmetin
memoryişleminin ne kullandığıbirimli bir boyut: 500MB, >1GB, 100MB-1GB
mismatchbirbiriyle uyuşmayan yapılandırma ve durumstopped, running

Bilmeye değer iki şey

Bazı alanlar pahalıdır ve onları istemek okumayı açar

İmzalar tüm bir makinede birkaç saniye sürer ve bellek bir ayar değil bir ölçümdür; bu yüzden istenmedikçe bir liste için ikisi de okunmaz. Birinden söz eden bir sorgu o okumayı kendiliğinden açar - signed:no yanında --signatures'ı da hatırlamanız gerekmez. Pencerede imzalarla ilgili bir sorgu, imzalar gelene kadar yanıtın eksik olduğunu söyler; daha kısa bir listeyi yanıtmış gibi göstermek yerine.

Okunamayan bir şeye göre yargılanan sonuç bunu söyler

Öğeler bu oturumun okuyamadığı bir alana göre yargılandıysa sonuç, kaç tane olduğunu söyleyen bir satır taşır - çünkü böyle bir sonuçta öğe eksik olabilir ya da ait olmayanlar bulunabilir. Bu, aracın tamamının uyduğu aynı kuraldır: başarısız bir okuma yanıtta görünür, asla yutulmaz. Bir yayımcı, onu yalnızca sertifika iddia ettiğinde aynı muameleyi görür: trusted dışındaki herhangi bir hükmün yanında ad not verified olarak gösterilir ve publisher: öğeyi kendi satırında belirsiz sayar - böylece !publisher:microsoft, birinin imzalandıktan sonra değiştirdiği bir Microsoft dosyasını tutar.

Komut satırı başvurusu