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

Anlık görüntüler ve sapma

Diğer her araç size bir makinenin şimdi nasıl göründüğünü söyler. Bir yöneticinin asıl sorusu çalışırken olandan ne farklı sorusudur - ve düz bir Windows'ta bunu yanıtlayan hiçbir şey yoktur.

Bir anlık görüntü ne içerir

Tek bir andaki tüm makine: her hizmet ve sürücü; başlangıç türü, hesap, başlatma yolu ve bağımsız değişkenleri, çalıştırdığı dosyanın karması ve imzalayanı, bağımlılıkları ve ona bağlı olanlar, tetikleyicileri, gereken ayrıcalıkları, SID türü ve güvenlik tanımlayıcısıyla birlikte - artı makinenin adı, onu alan hesap ve o hesabın yönetici olup olmadığı.

bws snapshot create before.json --note "before the patch"

Satır başına bir alan içeren bir JSON'dur. Bu bilinçlidir: bir anlık görüntü bir depoya girer ve git diff onu okur; yani aracın kendi karşılaştırması, bir tanesine bakmanın tek yolu değildir.

Onu olduğu şey olarak dosyalayın. Bir anlık görüntü, her başlatma yoluna ve her güvenlik tanımlayıcısına kadar tüm makineyi anlatır. Dizininin zaten sahip olduğu izinlerle yazılır ve araç hiçbir şeyi daraltmaz - yani başkalarının okuyabildiği bir dizin, bunların hepsini okuyabilecekleri bir dizindir.

Sonra neyin farklı olduğunu sorun

$ 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. Birbirine karıştırılınca, önemli olan tek satır - birinin değiştirdiği bir başlangıç türü - önemli olmayan kırkın altında gömülür.
  • Karşılaştırılamayanlar listelenir, gizlenmez. İki anlık görüntüden birinin, o oturumun hakkı olmadığı için hiç okumadığı bir alan, öğesinin altında not compared olarak çıkar ve özet bu öğeleri sayar. 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.
  • Yükseltilmiş bir anlık görüntüyü yükseltilmemiş biriyle karşılaştırmak yalan söylerdi; kimsenin kaldırmadığı öğeleri kaldırılmış olarak bildirirdi. Her dosya, onu alan hesabın yönetici olup olmadığını kaydeder ve karşılaştırma bunu söyler.
  • Yalnızca bir dosya ve bu makine değil, iki dosya. Test ortamında bir, üretimde bir tane alın ve bunları herhangi bir yerde karşılaştırın - test ortamı neden farklı sorusunun yanıtı makinelerin hiçbirinin orada olmasını gerektirmez.

Pencere aynısını Audit... altında yapar. Take snapshot... aynı dosyayı yazar, bir not yazarsanız onunla birlikte; Compare with this machine... ya da Compare two snapshots... ise listenin yerine neyin değiştiğini gösterir, alan başına bir satır, karşılaştırmayı tam olmaktan çıkaran her şey tablonun üstünde söylenmiş olarak. Show bunu farklılıklara ya da tek bir alana daraltır ve Export... onu bir CSV dosyasına yazar.

Çıkış kodu asıl mesele

--exit-code, yapılandırma farklı olduğunda 5 ile biter - eklenmiş ya da kaldırılmış bir öğe veya farklı kurulmuş biri. Yalnızca kendiliğinden duran ya da başlayan bir hizmet bildirilir ve sayılmaz; Windows'un oturum açmış her oturum için yaptığı kullanıcı başına kopyalar da sayılmaz: onlar dışarıda bırakılır ve sayılır. Bir başarısızlık değil - sapma bu aracın bulmak için var olduğu şeydir ve onu bulmak bir başarısızlık değildir - bu yüzden bir şeyin ters gittiğini anlatan numarayı ödünç almak yerine kendi numarası vardır.

# makinenin hizmete girdiği gün
bws snapshot create C:\baselines\web01.json --note "after the build"

# her gece, zamanlanmış bir görevden
bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
#   0 - yapılandırma sapması yok
#   5 - yapılandırma saptı ve drift.json neyin olduğunu söyler
#   3 - çalıştı ve her şeyi okuyamadı, yani yanıt kısmi

Mekanizmanın tamamı bu: makine iyi olduğu bilindiğinde alınmış bir temel durum ve her gece sorulan bir soru. 5 yanıtını verdiği ilk gece, birisi bir şeylerin bozulduğu sabah değil, ilk gece öğrenir.

Bunu bir denetim için kullanmak