Windows hizmetlerinizi arayın, her değişikliği önizleyin ve dünden beri neyin saptığını görün

Better Windows Services, Windows makinelerini yönetenler için yeniden kurulmuş services.msc'dir - tek bir motorun üzerinde bir pencere ve bir komut satırı. Sekiz yüz satırı kaydırmak yerine makineye bir soru sorun. Bir değişikliğin ne yapacağını hiçbir şeye basmadan önce görün. Bir de services.msc'nin hiç sahip olmadığı şey: her hizmeti bir dosyaya dondurun ve bir hafta sonra neyin değiştiğini sorun.

  • Özgür ve ücretsiz, GPL-3.0
  • Tek dosya ya da bir yükleyici
  • Bakmak için yönetici hakları gerekmez
  • İnternete asla bağlanmaz
Beş öğenin seçildiği ve bunları başlatma planının listenin üstünde gösterildiği pencere: beş adım, ikisinin zaten o durumda olduğunu belirten bir not, her öğe için bir bws start satırı ve Start 5 entries düğmesi.
Seçilen öğeler, hiçbir şey olmadan önce gösterilen bir plan ve tam olarak aynı şeyi isteyen bws satırı. Program İngilizce konuşur - pencere yanında duran bir dil dosyasını okur, yani yeniden derlemeden çeviri mümkündür.
Yarım dakika boyunca

Kullanımda nasıl görünür

Lehçe kurulu bir Windows'ta gerçek bir oturum - görünen adlar Windows'tan gelir, yani onun dilindedir. Pencerenin kendisi İngilizce konuşur.

Dört öğe seçili ve bunları başlatma planı, planı makinenin onsuz çalışmadığı konusunda uyaran ve düğme çalışmadan önce adını isteyen Local Session Manager'ın zorla yeniden başlatılması, boş arama kutusunun altındaki başlangıç soruları ve adının bir kısmı yazılarak bulunup başlatılan Print Spooler.
Dört öğe seçili ve bunları başlatma planı, makinenin ihtiyaç duyduğu bir hizmetin adını isteyen zorla yeniden başlatma, boş bir arama kutusunun altındaki sorular ve yazılarak bulunup başlatılan Print Spooler.
Açılış ekranı: bu makineyle ilgili sayılardan oluşan üç kart - çalışan hizmetler, otomatik başlayacak şekilde ayarlanıp açılmayan hizmetler ve otomatik başlayacak şekilde ayarlanıp dosyası kaybolan hizmetler - ve bir Show the list düğmesi.
Bu makineyle ilgili birkaç sayıyla açılır. Her biri bir sorudur - tıklayın, soru arama kutusuna gider.
Arama kutusunun üstünde üç listenin olduğu hizmet listesi, boş bir arama kutusu, durum, başlangıç türü, imza, uyumsuzluklar ve tetikleyiciler için satırlar halinde açık filtre düğmeleri ve altında liste.
Filtre düğmeleri arama kutusuna yazar, yani tıkladığınız şey okuyup düzenleyebileceğiniz bir sorgudur.
Neden var

services.msc Windows 2000'den beri neredeyse hiç değişmedi

Yöneticiler haftada saatlerini onunla geçirip aynı duvarlara toslar.

  • Arama yok. Tek gezinme, bir görünen adın ilk harfine atlamaktır.
  • Filtreleme yok. Otomatik başlayacak şekilde ayarlanıp çalışmayanları göster diye sormanın yolu yok.
  • Seferinde tek satır. On iki hizmeti yeniden başlatmak, on iki sağ tık ve on iki bekleme demektir.
  • Sonsuza dek "Stopping...", Görev Yöneticisi ve işlemi tahmin etmekten başka çıkış yolu olmadan.
  • Geçmiş yok. O başlangıç türünü kimin Disabled yaptığını ya da ne zaman yaptığını kimse bilmez.
  • Gizli veriler. İşlem, tetikleyiciler, ayrıcalıklar, güvenlik tanımlayıcısı, yürütülebilir dosyayı kimin imzaladığı - hepsi için ezberden sc.exe ya da kayıt defteri gerekir.
  • Komut satırında denklik yok. sc.exe'nin sözdizimi doksanlardan kalmadır; Windows'la gelen Get-Service ise Windows PowerShell 5.1'de bir hizmetin hangi hesapla çalıştığını, açıklamasını bir yana, göstermez. PowerShell 7 ikisini de gösterir ve ayrıca kurulur.

Diğer araçlar her biri bir kısmını çözer

Process Hacker ve System Informer zengin bir liste gösterir ve zorla sonlandırabilir, ama denetimleri ve komut satırları yoktur. sc.exe ve PsService her şeyi yapabilir ve size hiçbir şey söylemez. PowerShell'in *-Service cmdlet'leri betiklenebilir ve yüzeyseldir.

Hiç kimse aranabilir bir listeyi, her değişiklikten önce bir önizlemeyi ve zaman içinde neyin değiştiğinin kaydını birleştirmez - ve bu kayıt, bu aracı ilk öğleden sonradan sonra da bir makinede tutmanın nedenidir.

Tam karşılaştırma
Ne yapar

Tek motor üzerinde bir pencere ve bir komut satırı

Kaydırmak yerine sorun

start:auto !status:running, açık olması gereken ve olmayan demektir. Hem arama kutusunda hem bws list --query içinde tek bir dil; alanlar siz yazarken önerilir.

Hiçbir şey olmadan önce planı gösterin

Her durdurma, başlatma, yeniden başlatma ve başlangıç türü değişikliği, beraberinde indirdiği hizmetlerle birlikte önizlenir ve çalışan şey önizlemenin ta kendisidir.

Neyin saptığını ve kimin değiştirdiğini söyleyin

bws snapshot create makineyi bir dosyaya dondurur, bws snapshot diff ise o zamandan beri neyin değiştiğini söyler; yapılandırmayı yalnızca başlayan ya da duran şeyden ayrı tutar. bws history, System günlüğünden bir başlangıç türünü kimin değiştirdiğini ve bir hizmeti kimin kurduğunu söyler. Pencere üçünü de Audit... altında yapar.

Yaygın bir sorunu tek basışta düzeltin

Tools sekmesi ve bws tool fix, yazdırmayan bir yazıcının, kaybolmuş sesin ya da takılmış bir aramanın arkasındaki hizmeti, ona bağlı olanlarla birlikte, her şeyle aynı plan üzerinden yeniden başlatır.

Durmayan bir hizmeti durdurun

Önce kibarca ister ve süreci yalnızca bu başarısız olursa sonlandırır; içinde yaşayan diğer her hizmetin adını söyler.

services.msc'nin gizlediklerini gösterin

Yürütülebilir dosyayı kimin imzaladığı ve Windows'un ona güvenip güvenmediği, tetikleyiciler, ayrıcalıklar, güvenlik tanımlayıcısı, işlem ve belleği. Sütun olarak ve üzerinde arama yapılacak şeyler olarak.

Bir şeyi okuyamadığında söyleyin

Okuyamadığı bir alan okunmadı olarak bildirilir, asla boş gösterilmez. Yönetici hakları olmadan alınan bir anlık görüntü bunu dosyanın içinde söyler.

Betiklere uyum sağlayın

Her komutta --json, her son için bir çıkış kodu ve bir karşılaştırma sapma bulduğunda 5.

Tek dosyadan, çevrimdışı çalışın

Açıp çalıştırın ya da tüm makine için kurun. Kurulacak .NET yok ve internete asla bağlanmaz. Okumak yönetici hakları gerektirmez. GPL-3.0.

services.msc'nin hiç yapmadığı kısım

Dünden beri ne değişti

Anlık görüntü, tek bir andaki tüm makinedir - her hizmet ve sürücü; başlangıç türü, hesap, başlatma yolu, dosyasının karması ve imzalayanı, bağımlılıkları, tetikleyicileri, ayrıcalıkları ve güvenlik tanımlayıcısıyla birlikte. Satır başına bir alan içeren bir JSON'dur, yani bir depoya girer ve git diff onu okur.

$ 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.
  • Yapılandırma ve çalışma durumu ayrı bildirilir. Bir gün arayla alınan iki anlık görüntü, tesadüfen neyin çalıştığı bakımından farklıdır ve bunun neredeyse hiçbiri sapma değildir - okunacak satır, değişen başlangıç türüdür.
  • Karşılaştırılamayanlar listelenir, gizlenmez. Bir anlık görüntünün hiç okumadığı bir alan not compared olarak çıkar; yani hiçbir şey değişmedi diyen bir karşılaştırma, iki tarafın da görebildiği şeyde hiçbir şeyin değişmediği anlamına gelir.
  • --exit-code, yapılandırma farklı olduğunda 5 ile biter; böylece zamanlanmış bir görev dağıtım sırasında bir anlık görüntü alabilir ve makinenin saptığı ilk gece birini uyarabilir.
  • İki makine, iki dosya. Test ortamında bir, üretimde bir anlık görüntü alın ve bunları herhangi bir yerde karşılaştırın.
Anlık görüntüler ve sapma nasıl çalışır
Plansız hiçbir şey olmaz

Önizleme, çalıştırmanın kendisidir

Yazan her işlem önce bir plan kurar ve aynı plan; önizleme, bağımlı hizmetlerin zinciri, hiçbir şeye basmadan önceki ret, aynı şeyi isteyen komut satırı ve sonrasında geri dönüş yoludur.

$ 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.
  • --dry-run olmadan çalıştırın, adımlar bunlardır, bu sırayla ve yanlarındaki aynı gerekçelerle. Gerçek çalıştırma için ikinci bir kod yolu yoktur.
  • Onunla birlikte inenler plandadır. Bozulacak hizmetler kendi başına birer adımdır; makinenin ihtiyaç duyduğu bir şeyi indirecek plan bunu uyarılarında söyler.
  • Ret, düğmeden önce gelir. Bir sürücü, yöneticinin durdurmayı kabul etmediği bir hizmet, sistemin koruduğu bir işlem - plan kurulurken, gerekçesiyle birlikte reddedilir. Pencere düğmeyi griye çevirir ve yanında nedenini söyler.
  • Zorla durdurma iki adımdır ve ikincisi koşulludur. bws kill hizmetten durmasını ister ve süreci yalnızca bu işe yaramazsa sonlandırır; içinde yaşayan diğer her hizmetin adını söyler.
Bir hizmet durmadığında
İki dakika boyunca

Komut satırından

Pencereyle aynı motor; betikler, zamanlanmış görevler ve CI için. Veriler standart çıktıya, geri kalan her şey standart hataya gider; böylece bws list --json | jq çalışır ve bir uyarı asla JSON'unuzun içine düşmez.

bws list --query "start:auto !status:running"     açık olması gereken ve olmayan
bws list --query "file:missing"                   yürütülebilir dosyası kaybolan hizmetler
bws list --query "signed:no peruser:no"           imzasız, oturum başına kopyalar hariç
bws show Spooler                                  bir öğe hakkında bilinen her şey
bws stop Winmgmt --dry-run --dependents           durdurmanın nelere mal olacağı
bws kill Spooler --dry-run                        sürecini sonlandırmanın beraberinde neleri götüreceği
bws start-type Spooler manual --dry-run           otomatikten çıkarmanın ne yapacağı
bws snapshot create before.json                   bir değişiklikten önce makineyi dondur
bws snapshot diff before.json --live --exit-code  o zamandan beri ne değişti, yapılandırma değiştiyse 5
bws history Spooler                               başlangıç türünü kimin ve ne zaman değiştirdiği
bws tool fix printer --dry-run                    takılmış bir yazıcı için hızlı düzeltmenin ne yapacağı
Her komut, seçenek ve çıkış kodu
Edinin

Açıp çalıştırın ya da kurun

Windows 10 1809 veya Windows Server 2019 ve sonrası, 64 bit. Arşivler yükleyici gerektirmez ve kayıt defterine hiçbir şey yazmaz; bakmak yönetici hakları gerektirmez. Herhangi bir şeyi değiştirmek yükseltilmiş bir oturum gerektirir ve iki yarı da sessizce başarısız olmak yerine bunu söyler - pencere Restart as admin sunar.

DosyaNedir
BetterWindowsServices-win-x64.zipPencere, tek bir bağımsız yürütülebilir dosya - kurulacak .NET yok
bws-cli-win-x64.zipKomut satırı, tek bir bağımsız yürütülebilir dosya; betikler ve CI için
BetterWindowsServices-win-x64.msiYükleyici: makinedeki her hesap için iki program, Başlat menüsünde pencere ve PATH'te bws

Yürütülebilir dosyalar bir Authenticode imzası taşır; böylece Windows bilinmeyen bir yayımcı konusunda uyarmak yerine yayımcıyı adıyla anar.