diff --git a/site/assets/style.css b/site/assets/style.css index 8ede580..5457dd1 100644 --- a/site/assets/style.css +++ b/site/assets/style.css @@ -870,6 +870,15 @@ html:lang(hi) { --font: "Segoe UI Variable Text", "Segoe UI", "Nirmala UI", "Koh html:lang(ar) { --font: "Segoe UI Variable Text", "Segoe UI", "Tahoma", "Geeza Pro", "Noto Sans Arabic", system-ui, sans-serif; --lh-body: 1.8; --lh-tight: 1.4; } html:lang(vi) { --lh-body: 1.7; --lh-tight: 1.3; } +/* + Korean is written with spaces between words, and the browser's default is to break a line + between any two syllables, which splits a word in half at every edge (seen on the home page + headline at 1024 px). keep-all breaks at the spaces, the way a Korean reader expects. The + cost is that a long run of syllables with no space can no longer wrap, so every Korean page + is checked for horizontal overflow at 375 px when it is added. +*/ +html:lang(ko) { word-break: keep-all; } + @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } } diff --git a/site/i18n/cs.json b/site/i18n/cs.json new file mode 100644 index 0000000..e81dbd8 --- /dev/null +++ b/site/i18n/cs.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "Přeskočit na obsah", + "chrome.nav": "Web", + "chrome.language": "Jazyk", + + "chrome.footer.product": "Produkt", + "chrome.footer.guides": "Průvodci", + "chrome.footer.project": "Projekt", + "chrome.footer.source": "Zdrojový kód na GitHubu", + "chrome.footer.releases": "Vydání", + "chrome.footer.issues": "Sledování problémů", + "chrome.footer.security": "Nahlášení bezpečnostního problému", + "chrome.footer.support": "Podpořit projekt", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. Vydáno pod licencí GNU General Public License, verze 3. Vytvořeno s pracovním postupem podporovaným umělou inteligencí.", + "chrome.legal.trademark": "{{product}} není přidružen k Microsoftu, schválen jím ani jím sponzorován. Windows je ochranná známka skupiny společností Microsoft a název je zde použit jen k tomu, aby řekl, co nástroj spravuje.", + "chrome.legal.privacy": "Tento web nenastavuje cookies, nespouští skripty a nic nenačítá odjinud.", + + "table.head.code": "Kód", + "table.head.meaning": "Význam", + "table.head.switch": "Přepínač", + "table.head.what": "Co dělá", + "table.head.where": "Kde funguje", + "table.head.field": "Pole", + "table.head.asks": "Ptá se na", + "table.head.values": "Hodnoty", + + "exit.ok": "Hotovo a všechno dorazilo tam, kam mělo.", + "exit.runtime": "Nástroj selhal - nemohl udělat, co se po něm chtělo, z důvodu, který se týká nástroje, a ne plánu.", + "exit.usage": "Příkazový řádek byl chybný. Při překlepu v příkazu se nabídne ten, který jste pravděpodobně měli na mysli.", + "exit.incomplete": "Plán byl dobrý, proběhl a něco v něm nedorazilo tam, kam mělo - správce odmítl, nebo relace na to neměla práva.", + "exit.interrupted": "Někdo běh zastavil ručně. Nenulový, i když každý krok ještě dorazil, aby obalový skript nepovažoval přerušený běh za čistý.", + "exit.differences": "Porovnání proběhlo a zjistilo, že se konfigurace odchýlila - položka přidána nebo odebrána, nebo nastavená jinak. Samotný stav běhu drift není. Jen s --exit-code, protože drift je to, co tento nástroj má nacházet, a jeho nalezení není selhání.", + + "switch.query": "Zúží výpis pomocí dotazovacího jazyka.", + "switch.signatures": "Přečte, kdo podepsal každý spustitelný soubor a jestli mu Windows důvěřuje. Na celém stroji několik sekund, takže je vypnuto, pokud se o to nepožádá - a dotaz na podpisy to zapne sám.", + "switch.memory": "Přečte, co používá proces každé běžící položky. Ve výchozím stavu vypnuto, protože jde o měření, ne o nastavení: o vteřinu později je jiné.", + "switch.required-by": "Přečte, které položky se rozbijí, když se jedna zastaví, zeptáním přímo Windows, a ne odvozením z toho, co všechno deklaruje. Jedno volání na položku, takže vypnuto, pokud se o to nepožádá. show a snapshot create to čtou pokaždé.", + "switch.follow-network": "Nechá nástroj vůbec sáhnout mimo tento stroj - cesta ke spuštění ležící na cizí sdílené složce a certifikát, který tento stroj ještě nemá. Ve výchozím stavu vypnuto z bezpečnostních důvodů: jedna nedostupná sdílená složka stojí jedenadvacet sekund a ověřuje se jako ten, kdo nástroj spustil, a stažení certifikátu je spojení s třetí stranou uprostřed běžného výpisu. Bez tohoto přepínače se podpis kontroluje proti tomu, co je zde, a výsledek, který mohlo způsobit nehledání, se hlásí jako nepřečtený, a ne jako verdikt.", + "switch.force": "U kill ukončí proces hned, bez zdvořilého ptaní - náhled pak ukazuje jeden krok místo dvou. U snapshot create nahradí již existující snímek - soubor, který snímkem není, se nikdy nenahradí.", + "switch.restart": "U kill vrátí položku zpět, jakmile je proces pryč, spolu se vším, co ho sdílelo.", + "switch.stop": "U start-type a jen vedle disabled zastaví položku ve stejném plánu, jakmile je nastavení zapsáno. Typ spouštění mění příští start a nic teď, takže bez tohoto přepínače běžící položka nastavená na disabled běží dál.", + "switch.full": "U show vypíše i pole, která jsou opravdu prázdná. Pole, které nikdo nemohl přečíst, se vypíše vždy.", + "switch.components": "U license změní upozornění na každou součást uvnitř tohoto spustitelného souboru s její verzí, licencí a původem. Stejná sada, jakou nese soupis součástí zveřejněný vedle stažení, protože oba vznikají z jednoho registru.", + "switch.json": "Stejný dokument, strojově čitelný, na standardním výstupu.", + "switch.note": "K čemu byl snímek pořízen, uloženo uvnitř souboru.", + "switch.exit-code": "Skončí kódem 5, když se konfigurace liší - položka přidána nebo odebrána, nebo nastavená jinak. Samotný stav běhu se nepočítá. Ve výchozím stavu vypnuto, aby skript, který chce jen vypsat rozdíly, nezakopl o to, že nějaké našel.", + "switch.live": "Porovná soubor s tímto strojem, jaký je teď, místo s druhým souborem.", + "switch.timing": "Jak dlouho trvala každá část čtení, na standardním chybovém výstupu.", + "switch.dry-run": "Vypíše plán a nic nezmění. Je to týž plán, který provedení spustí - pro skutečné provedení neexistuje druhá cesta v kódu.", + "switch.dependents": "Zařadí do plánu služby, které by se rozbily, jako samostatné kroky.", + "switch.timeout": "Jak dlouho smí jeden krok zůstat bez pokroku, než se vzdá, počítáno znovu při každém hlášení pokroku služby. Šedesát sekund, pokud neřeknete jinak. Služba, která pokrok neustále hlásí, je sledována, jak dlouho je potřeba. Vypršení je konec sledování, ne selhání, a hlášení říká, kde položka zůstala.", + + "field.name": "název služby, podle kterého ji Windows identifikuje", + "field.display": "zobrazovaný název, tak jak ho tento Windows píše", + "field.description": "co položka říká sama o sobě", + "field.type": "o jaký druh položky jde", + "field.peruser": "zda jde o jednu z rodin pro jednotlivé uživatele, jejichž kopii Windows vytváří pro každou relaci", + "field.status": "co právě dělá", + "field.start": "co s ní správce udělá při příštím startu", + "field.account": "účet, pod kterým běží, tak jak ho správce píše", + "field.pid": "proces, ve kterém běží", + "field.trigger": "podmínka, která ji spouští nebo zastavuje", + "field.path": "příkazový řádek, který správce spouští", + "field.file": "zda soubor, který spouští, je na disku", + "field.signed": "co si Windows myslí o podpisu souboru, bez kontroly odvolání", + "field.publisher": "kdo soubor podepsal - prokázáno jen důvěryhodným podpisem", + "field.privilege": "privilegium, o které položka žádá", + "field.dependson": "co tato položka potřebuje", + "field.requiredby": "co se rozbije, když se tato zastaví", + "field.sidtype": "typ SID služby", + "field.sddl": "popisovač zabezpečení jako text", + "field.memory": "co používá její proces", + "field.mismatch": "konfigurace a stav, které si odporují", + + "field.open.name": "text", + "field.open.display": "text", + "field.open.description": "text", + "field.open.account": "text, např. localsystem", + "field.open.pid": "číslo: 1234, >1000, 100-200", + "field.open.path": "text", + "field.open.publisher": "text", + "field.open.privilege": "text, např. SeDebugPrivilege", + "field.open.dependson": "název služby", + "field.open.requiredby": "název služby", + "field.open.sddl": "text", + "field.open.memory": "velikost s jednotkou: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "hodnota existuje, ať je jakákoli", + "reserved.none": "opravdu žádná hodnota není - položka žádnou nemá", + "reserved.unreadable": "nástroj toto pole nemohl přečíst nebo ho nepřečetl, což je otázka, kterou services.msc neumí ani položit" +} diff --git a/site/i18n/id.json b/site/i18n/id.json new file mode 100644 index 0000000..afc203e --- /dev/null +++ b/site/i18n/id.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "Lompat ke konten", + "chrome.nav": "Situs", + "chrome.language": "Bahasa", + + "chrome.footer.product": "Produk", + "chrome.footer.guides": "Panduan", + "chrome.footer.project": "Proyek", + "chrome.footer.source": "Kode sumber di GitHub", + "chrome.footer.releases": "Rilis", + "chrome.footer.issues": "Pelacak masalah", + "chrome.footer.security": "Melaporkan masalah keamanan", + "chrome.footer.support": "Dukung proyek ini", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. Dirilis di bawah GNU General Public License, versi 3. Dibuat dengan alur kerja berbantuan AI.", + "chrome.legal.trademark": "{{product}} tidak berafiliasi dengan, didukung oleh, atau disponsori oleh Microsoft. Windows adalah merek dagang dari grup perusahaan Microsoft, dan namanya dipakai di sini hanya untuk menyatakan apa yang dikelola alat ini.", + "chrome.legal.privacy": "Situs ini tidak menetapkan cookie, tidak menjalankan skrip, dan tidak memuat apa pun dari tempat lain.", + + "table.head.code": "Kode", + "table.head.meaning": "Arti", + "table.head.switch": "Opsi", + "table.head.what": "Apa yang dilakukannya", + "table.head.where": "Tempat berfungsi", + "table.head.field": "Bidang", + "table.head.asks": "Menanyakan tentang", + "table.head.values": "Nilai", + + "exit.ok": "Selesai, dan semuanya sampai ke tujuannya.", + "exit.runtime": "Alat ini gagal - ia tidak dapat melakukan apa yang diminta, karena alasan yang menyangkut alatnya, bukan rencananya.", + "exit.usage": "Baris perintahnya salah. Perintah yang salah ketik akan ditawari perintah yang kemungkinan Anda maksud.", + "exit.incomplete": "Rencananya bagus, dijalankan, dan ada sesuatu di dalamnya yang tidak sampai ke tujuannya - manajer menolak, atau sesi tidak punya hak atasnya.", + "exit.interrupted": "Seseorang menghentikan proses secara manual. Bukan nol bahkan ketika setiap langkah masih sampai, agar pembungkus tidak menganggap proses yang terputus sebagai bersih.", + "exit.differences": "Perbandingan dijalankan dan menemukan bahwa konfigurasi menyimpang - sebuah entri ditambah atau dihapus, atau satu yang diatur berbeda. Status berjalan saja bukan penyimpangan. Hanya dengan --exit-code, karena penyimpangan adalah apa yang ingin ditemukan alat ini, dan menemukannya bukanlah kegagalan.", + + "switch.query": "Mempersempit daftar dengan bahasa kueri.", + "switch.signatures": "Membaca siapa yang menandatangani setiap berkas eksekusi dan apakah Windows memercayainya. Beberapa detik pada seluruh mesin, jadi nonaktif kecuali diminta - dan kueri tentang tanda tangan mengaktifkannya sendiri.", + "switch.memory": "Membaca apa yang dipakai proses setiap entri yang berjalan. Nonaktif secara bawaan karena ini pengukuran, bukan pengaturan: sedetik kemudian sudah berbeda.", + "switch.required-by": "Membaca entri mana yang rusak jika satu dihentikan, ditanyakan langsung ke Windows dan bukan disimpulkan dari apa yang dinyatakan semuanya. Satu panggilan per entri, jadi nonaktif kecuali diminta. show dan snapshot create membacanya setiap kali.", + "switch.follow-network": "Membiarkan alat ini menjangkau di luar mesin ini sama sekali - jalur peluncuran yang berada di berbagi milik orang lain, dan sertifikat yang belum dimiliki mesin ini. Nonaktif secara bawaan demi keamanan: satu berbagi yang tidak terjangkau memakan dua puluh satu detik dan mengautentikasi sebagai siapa pun yang menjalankannya, dan mengambil sertifikat adalah koneksi ke pihak ketiga di tengah daftar biasa. Tanpanya tanda tangan diperiksa terhadap apa yang ada di sini, dan hasil yang mungkin disebabkan oleh tidak melihat dilaporkan sebagai tidak terbaca, bukan sebagai putusan.", + "switch.force": "Pada kill, mengakhiri proses seketika tanpa bertanya dengan sopan - pratinjau lalu menampilkan satu langkah, bukan dua. Pada snapshot create, mengganti snapshot yang sudah ada - berkas yang bukan snapshot tidak pernah diganti.", + "switch.restart": "Pada kill, mengembalikan entri setelah proses hilang, bersama semua yang berbagi proses itu.", + "switch.stop": "Pada start-type, dan hanya bersama disabled, menghentikan entri dalam rencana yang sama setelah pengaturan ditulis. Tipe startup mengubah boot berikutnya dan tidak mengubah apa pun sekarang, jadi tanpanya entri yang sedang berjalan yang diatur ke disabled tetap berjalan.", + "switch.full": "Pada show, mencetak juga bidang yang benar-benar kosong. Bidang yang tidak bisa dibaca siapa pun dicetak dalam kedua kasus.", + "switch.components": "Pada license, mengubah pemberitahuan menjadi setiap komponen di dalam berkas eksekusi ini beserta versi, lisensi, dan asalnya. Set yang sama dengan yang dibawa daftar bahan yang dipublikasikan di samping unduhan, karena keduanya dihasilkan dari satu register.", + "switch.json": "Dokumen yang sama, dapat dibaca mesin, pada keluaran standar.", + "switch.note": "Untuk apa snapshot diambil, disimpan di dalam berkas.", + "switch.exit-code": "Berakhir dengan kode 5 ketika konfigurasi berbeda - sebuah entri ditambah atau dihapus, atau satu yang diatur berbeda. Status berjalan saja tidak dihitung. Nonaktif secara bawaan, agar skrip yang hanya ingin perbedaan dicetak tidak tersandung karena menemukan beberapa.", + "switch.live": "Membandingkan berkas dengan mesin ini seperti sekarang, bukan dengan berkas kedua.", + "switch.timing": "Berapa lama setiap bagian pembacaan, pada galat standar.", + "switch.dry-run": "Mencetak rencana dan tidak mengubah apa pun. Ini adalah rencana yang sama yang dijalankan eksekusi - tidak ada jalur kode kedua untuk eksekusi yang sebenarnya.", + "switch.dependents": "Memasukkan layanan yang akan rusak ke dalam rencana sebagai langkah tersendiri.", + "switch.timeout": "Berapa lama satu langkah boleh berjalan tanpa kemajuan sebelum ditinggalkan, dihitung ulang setiap kali layanan melaporkan kemajuan. Enam puluh detik kecuali Anda menyatakan lain. Layanan yang terus melaporkan kemajuan diawasi selama diperlukan. Kehabisan waktu adalah akhir pengawasan, bukan kegagalan, dan laporan menyebutkan di mana entri ditinggalkan.", + + "field.name": "nama layanan, yang dipakai Windows untuk mengenalinya", + "field.display": "nama tampilan, seperti yang dieja Windows ini", + "field.description": "apa yang dikatakan entri tentang dirinya sendiri", + "field.type": "jenis entri apa itu", + "field.peruser": "apakah ini salah satu keluarga per pengguna yang disalin Windows per sesi", + "field.status": "apa yang sedang dilakukannya sekarang", + "field.start": "apa yang dilakukan manajer terhadapnya pada boot berikutnya", + "field.account": "akun tempat ia berjalan, seperti yang dieja manajer", + "field.pid": "proses tempat ia berjalan", + "field.trigger": "kondisi yang memulai atau menghentikannya", + "field.path": "baris perintah yang diluncurkan manajer", + "field.file": "apakah berkas yang dijalankannya ada di disk", + "field.signed": "apa yang dipikirkan Windows tentang tanda tangan berkas, tanpa memeriksa pencabutan", + "field.publisher": "siapa yang menandatangani berkas - terbukti hanya oleh tanda tangan tepercaya", + "field.privilege": "hak istimewa yang diminta entri", + "field.dependson": "apa yang dibutuhkan yang satu ini", + "field.requiredby": "apa yang rusak jika yang satu ini berhenti", + "field.sidtype": "tipe SID layanan", + "field.sddl": "deskriptor keamanan, sebagai teks", + "field.memory": "apa yang dipakai prosesnya", + "field.mismatch": "konfigurasi dan status yang tidak sesuai", + + "field.open.name": "teks", + "field.open.display": "teks", + "field.open.description": "teks", + "field.open.account": "teks, mis. localsystem", + "field.open.pid": "angka: 1234, >1000, 100-200", + "field.open.path": "teks", + "field.open.publisher": "teks", + "field.open.privilege": "teks, mis. SeDebugPrivilege", + "field.open.dependson": "nama layanan", + "field.open.requiredby": "nama layanan", + "field.open.sddl": "teks", + "field.open.memory": "ukuran dengan satuan: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "ada nilai, apa pun itu", + "reserved.none": "benar-benar tidak ada nilai - entri tidak memilikinya", + "reserved.unreadable": "alat ini tidak dapat membaca bidang ini, atau belum membacanya, yang merupakan pertanyaan yang bahkan tidak bisa diajukan services.msc" +} diff --git a/site/i18n/ja.json b/site/i18n/ja.json new file mode 100644 index 0000000..10018ea --- /dev/null +++ b/site/i18n/ja.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "本文へスキップ", + "chrome.nav": "サイト", + "chrome.language": "言語", + + "chrome.footer.product": "製品", + "chrome.footer.guides": "ガイド", + "chrome.footer.project": "プロジェクト", + "chrome.footer.source": "GitHub のソースコード", + "chrome.footer.releases": "リリース", + "chrome.footer.issues": "課題トラッカー", + "chrome.footer.security": "セキュリティ上の問題を報告する", + "chrome.footer.support": "プロジェクトを支援する", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. GNU General Public License バージョン 3 の下で公開されています。AI を活用したワークフローで作成されました。", + "chrome.legal.trademark": "{{product}} は、Microsoft と提携しておらず、Microsoft の承認も後援も受けていません。Windows は Microsoft 企業グループの商標であり、この名称は、このツールが何を管理するかを示すためだけにここで使用しています。", + "chrome.legal.privacy": "このサイトは、Cookie を設定せず、スクリプトを実行せず、ほかの場所から何も読み込みません。", + + "table.head.code": "コード", + "table.head.meaning": "意味", + "table.head.switch": "オプション", + "table.head.what": "動作", + "table.head.where": "使える場所", + "table.head.field": "フィールド", + "table.head.asks": "尋ねる内容", + "table.head.values": "値", + + "exit.ok": "完了し、すべてが行き先に届きました。", + "exit.runtime": "ツールが失敗しました。プランではなく、ツール自体に原因がある理由で、依頼されたことを実行できませんでした。", + "exit.usage": "コマンドラインが正しくありませんでした。入力ミスのあるコマンドには、おそらく意図したものが提示されます。", + "exit.incomplete": "プランは問題なく実行されましたが、その中の何かが行き先に届きませんでした。マネージャーが拒否したか、セッションに権限がありませんでした。", + "exit.interrupted": "誰かが手動で実行を止めました。すべてのステップが届いていても 0 以外になるので、ラッパーが中断された実行を正常なものとして扱いません。", + "exit.differences": "比較が実行され、構成がドリフトしていることがわかりました。エントリが追加または削除された、または設定が異なるものがあります。実行状態だけではドリフトではありません。--exit-code を付けたときのみです。ドリフトはこのツールが見つけるために存在するものであり、見つけることは失敗ではないからです。", + + "switch.query": "クエリ言語で一覧を絞り込みます。", + "switch.signatures": "各実行ファイルを誰が署名したか、Windows がそれを信頼しているかを読み取ります。マシン全体では数秒かかるため、頼まれない限りオフです。署名についてのクエリは、これを自動的にオンにします。", + "switch.memory": "実行中の各エントリのプロセスが使用しているものを読み取ります。設定ではなく計測値であり、1 秒後には異なるため、既定ではオフです。", + "switch.required-by": "1 つを停止すると壊れるエントリを読み取ります。各エントリが宣言している内容から推測するのではなく、Windows に直接尋ねます。エントリごとに 1 回の呼び出しが必要なので、頼まれない限りオフです。show と snapshot create は毎回これを読み取ります。", + "switch.follow-network": "ツールがこのマシンの外に出ることを許可します。ほかの人の共有上にある起動パスと、このマシンにまだない証明書です。安全のため既定ではオフです。到達できない共有が 1 つあると 21 秒かかり、実行した人として認証されます。また、証明書の取得は、通常の一覧の途中で第三者に接続することです。これがない場合、署名はここにあるものに対して確認され、見なかったことが原因かもしれない結果は、判定ではなく読み取れなかったものとして報告されます。", + "switch.force": "kill では、丁寧に尋ねずにすぐにプロセスを終了します。そのため、プレビューには 2 つではなく 1 つのステップが表示されます。snapshot create では、すでにあるスナップショットを置き換えます。スナップショットではないファイルが置き換えられることはありません。", + "switch.restart": "kill では、プロセスが消えたあとに、そのプロセスを共有していたすべてのものとともに、エントリを元に戻します。", + "switch.stop": "start-type で、かつ disabled と組み合わせたときのみ、設定を書き込んだあとに同じプランの中でエントリを停止します。スタートアップの種類は次回の起動を変えるだけで今は何も変えないので、これがないと、disabled に設定された実行中のエントリは実行され続けます。", + "switch.full": "show では、本当に空のフィールドも表示します。誰も読み取れなかったフィールドは、どちらの場合も表示されます。", + "switch.components": "license では、通知を、この実行ファイルの中にあるすべてのコンポーネントとそのバージョン、ライセンス、出所に変えます。ダウンロードの横で公開されている部品表と同じ内容です。どちらも 1 つの台帳から生成されるためです。", + "switch.json": "同じドキュメントを、機械可読な形で標準出力に出します。", + "switch.note": "スナップショットを何のために取ったかを、ファイルの中に保持します。", + "switch.exit-code": "構成が異なる場合に、コード 5 で終了します。エントリが追加または削除された、または設定が異なるものがある場合です。実行状態だけでは数えません。既定ではオフです。差分の表示だけが目的のスクリプトが、差分を見つけたことでつまずかないようにするためです。", + "switch.live": "ファイルを、2 つ目のファイルではなく、現在のこのマシンと比較します。", + "switch.timing": "読み取りの各部分にかかった時間を、標準エラーに出力します。", + "switch.dry-run": "プランを表示するだけで、何も変更しません。実際の実行が行うのと同じプランです。実際の処理のための別のコード経路はありません。", + "switch.dependents": "壊れるサービスを、独立したステップとしてプランに含めます。", + "switch.timeout": "1 つのステップが、進捗なしで断念されるまでに続けられる時間です。サービスが進捗を報告するたびに数え直されます。指定しない場合は 60 秒です。進捗を報告し続けるサービスは、必要なだけ監視されます。時間切れは監視の終了であり、失敗ではなく、レポートはエントリがどこで止まったかを伝えます。", + + "field.name": "サービス名。Windows が識別に使うもの", + "field.display": "表示名。この Windows での表記", + "field.description": "エントリが自分自身について述べていること", + "field.type": "エントリの種類", + "field.peruser": "Windows がセッションごとにコピーを作る、ユーザーごとのファミリーの 1 つかどうか", + "field.status": "今、何をしているか", + "field.start": "次回の起動時に、マネージャーがどう扱うか", + "field.account": "実行しているアカウント。マネージャーでの表記", + "field.pid": "実行されているプロセス", + "field.trigger": "開始または停止する条件", + "field.path": "マネージャーが起動するコマンドライン", + "field.file": "実行するファイルがディスク上にあるかどうか", + "field.signed": "ファイルの署名について Windows が判断していること。失効の確認は行いません", + "field.publisher": "ファイルに署名した人。信頼された署名によってのみ証明されます", + "field.privilege": "エントリが要求する特権", + "field.dependson": "これが必要とするもの", + "field.requiredby": "これが停止すると壊れるもの", + "field.sidtype": "サービス SID の種類", + "field.sddl": "セキュリティ記述子のテキスト表現", + "field.memory": "そのプロセスが使用しているもの", + "field.mismatch": "食い違っている構成と状態", + + "field.open.name": "テキスト", + "field.open.display": "テキスト", + "field.open.description": "テキスト", + "field.open.account": "テキスト(例: localsystem)", + "field.open.pid": "数値: 1234、>1000、100-200", + "field.open.path": "テキスト", + "field.open.publisher": "テキスト", + "field.open.privilege": "テキスト(例: SeDebugPrivilege)", + "field.open.dependson": "サービス名", + "field.open.requiredby": "サービス名", + "field.open.sddl": "テキスト", + "field.open.memory": "単位付きのサイズ: 500MB、>1GB、100MB-1GB", + + "reserved.any": "値があること。その内容は問いません", + "reserved.none": "本当に値がないこと。エントリに値がありません", + "reserved.unreadable": "ツールがこのフィールドを読み取れなかったこと、または読み取っていないこと。services.msc には尋ねることすらできない質問です" +} diff --git a/site/i18n/ko.json b/site/i18n/ko.json new file mode 100644 index 0000000..8bbb226 --- /dev/null +++ b/site/i18n/ko.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "본문으로 건너뛰기", + "chrome.nav": "사이트", + "chrome.language": "언어", + + "chrome.footer.product": "제품", + "chrome.footer.guides": "가이드", + "chrome.footer.project": "프로젝트", + "chrome.footer.source": "GitHub의 소스", + "chrome.footer.releases": "릴리스", + "chrome.footer.issues": "이슈 트래커", + "chrome.footer.security": "보안 문제 신고", + "chrome.footer.support": "프로젝트 후원", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. GNU General Public License 버전 3에 따라 배포됩니다. AI를 활용한 워크플로로 제작되었습니다.", + "chrome.legal.trademark": "{{product}}는 Microsoft와 제휴하거나 Microsoft의 승인 또는 후원을 받지 않았습니다. Windows는 Microsoft 그룹 회사의 상표이며, 이 이름은 도구가 무엇을 관리하는지 설명하기 위해서만 여기에 사용했습니다.", + "chrome.legal.privacy": "이 사이트는 쿠키를 설정하지 않고, 스크립트를 실행하지 않으며, 다른 어느 곳에서도 아무것도 불러오지 않습니다.", + + "table.head.code": "코드", + "table.head.meaning": "의미", + "table.head.switch": "옵션", + "table.head.what": "하는 일", + "table.head.where": "동작하는 곳", + "table.head.field": "필드", + "table.head.asks": "묻는 내용", + "table.head.values": "값", + + "exit.ok": "완료되었고, 모든 것이 가려던 곳에 도착했습니다.", + "exit.runtime": "도구가 실패했습니다. 계획이 아니라 도구 자체에 관한 이유로, 요청받은 일을 할 수 없었습니다.", + "exit.usage": "명령줄이 잘못되었습니다. 잘못 입력한 명령에는 의도했을 법한 명령이 제안됩니다.", + "exit.incomplete": "계획은 올바랐고 실행되었지만, 그 안의 무언가가 가려던 곳에 도착하지 못했습니다. 서비스 관리자가 거부했거나 세션에 그에 대한 권한이 없었습니다.", + "exit.interrupted": "누군가 실행을 직접 멈췄습니다. 모든 단계가 도착했더라도 0이 아니며, 래퍼가 중단된 실행을 정상으로 취급하지 않도록 하기 위함입니다.", + "exit.differences": "비교가 실행되어 구성이 드리프트했음을 발견했습니다. 항목이 추가되거나 제거되었거나, 하나가 다르게 설정되었습니다. 실행 상태만으로는 드리프트가 아닙니다. --exit-code를 줄 때만 해당하는데, 드리프트는 이 도구가 찾아내려고 있는 것이고 그것을 찾는 것은 실패가 아니기 때문입니다.", + + "switch.query": "쿼리 언어로 목록을 좁힙니다.", + "switch.signatures": "각 실행 파일에 누가 서명했는지, Windows가 그것을 신뢰하는지 읽습니다. 컴퓨터 전체에서는 몇 초가 걸리므로 요청하지 않으면 꺼져 있으며, 서명에 대한 쿼리는 이를 스스로 켭니다.", + "switch.memory": "실행 중인 각 항목의 프로세스가 사용하는 것을 읽습니다. 설정이 아니라 측정값이어서 1초 뒤에는 달라지므로 기본값은 꺼짐입니다.", + "switch.required-by": "하나를 중지하면 망가지는 항목을 읽습니다. 모두가 선언한 내용에서 추론하지 않고 Windows에 직접 물어봅니다. 항목마다 호출이 한 번씩 필요하므로 요청하지 않으면 꺼져 있습니다. show와 snapshot create는 매번 이를 읽습니다.", + "switch.follow-network": "도구가 이 컴퓨터 밖으로 나가는 것을 허용합니다. 다른 사람의 공유에 있는 시작 경로와, 이 컴퓨터에 아직 없는 인증서입니다. 안전을 위해 기본값은 꺼짐입니다. 도달할 수 없는 공유 하나가 21초를 쓰고 실행한 사람으로 인증하며, 인증서를 가져오는 것은 일반적인 목록 한가운데에서 제3자에 연결하는 일이기 때문입니다. 이것이 없으면 서명은 여기에 있는 것을 기준으로 확인되고, 살펴보지 않아서 생겼을 수 있는 결과는 판정이 아니라 읽지 못한 것으로 보고됩니다.", + "switch.force": "kill에서는 정중하게 묻지 않고 프로세스를 바로 종료하며, 그러면 미리 보기가 두 단계 대신 한 단계를 보여 줍니다. snapshot create에서는 이미 있는 스냅샷을 바꿉니다. 스냅샷이 아닌 파일은 절대 바꾸지 않습니다.", + "switch.restart": "kill에서는 프로세스가 사라진 뒤, 그 프로세스를 공유하던 모든 것과 함께 항목을 되돌려 놓습니다.", + "switch.stop": "start-type에서, 그리고 disabled 옆에서만, 설정을 쓴 뒤 같은 계획 안에서 항목을 중지합니다. 시작 유형은 다음 부팅을 바꿀 뿐 지금은 아무것도 바꾸지 않으므로, 이것이 없으면 disabled로 설정된 실행 중인 항목은 계속 실행됩니다.", + "switch.full": "show에서는 정말로 비어 있는 필드도 출력합니다. 아무도 읽지 못한 필드는 어느 쪽이든 출력됩니다.", + "switch.components": "license에서는 알림을 이 실행 파일 안에 있는 모든 구성 요소의 버전, 라이선스, 출처로 바꿉니다. 다운로드 옆에 게시된 자재 명세서가 담은 것과 같은 집합이며, 둘 다 하나의 목록에서 만들어지기 때문입니다.", + "switch.json": "같은 문서를 기계가 읽을 수 있는 형태로 표준 출력에 냅니다.", + "switch.note": "스냅샷을 무엇을 위해 만들었는지를 파일 안에 보관합니다.", + "switch.exit-code": "구성이 다르면 코드 5로 끝납니다. 항목이 추가되거나 제거되었거나, 하나가 다르게 설정된 경우입니다. 실행 상태만으로는 세지 않습니다. 기본값은 꺼짐이며, 출력된 차이만 원하는 스크립트가 차이를 발견했다는 이유로 걸리지 않도록 하기 위해서입니다.", + "switch.live": "파일을 두 번째 파일이 아니라 지금 상태의 이 컴퓨터와 비교합니다.", + "switch.timing": "읽기의 각 부분이 얼마나 걸렸는지를 표준 오류에 냅니다.", + "switch.dry-run": "계획을 출력하고 아무것도 바꾸지 않습니다. 실제 실행이 수행하는 것과 같은 계획입니다. 실제 작업을 위한 두 번째 코드 경로는 없습니다.", + "switch.dependents": "망가질 서비스를 별도의 단계로 계획에 넣습니다.", + "switch.timeout": "한 단계가 진행 없이 포기되기 전까지 얼마나 길어질 수 있는지이며, 서비스가 진행을 보고할 때마다 다시 셉니다. 달리 지정하지 않으면 60초입니다. 진행을 계속 보고하는 서비스는 필요한 만큼 지켜봅니다. 시간 초과는 지켜보기의 끝이지 실패가 아니며, 보고서가 항목이 어디에 남겨졌는지 알려 줍니다.", + + "field.name": "서비스 이름으로, Windows가 식별에 쓰는 것", + "field.display": "표시 이름으로, 이 Windows가 쓰는 표기", + "field.description": "항목이 자신에 대해 말하는 것", + "field.type": "어떤 종류의 항목인지", + "field.peruser": "Windows가 세션마다 복사본을 만드는 사용자별 계열 중 하나인지", + "field.status": "지금 무엇을 하고 있는지", + "field.start": "다음 부팅 때 서비스 관리자가 어떻게 다루는지", + "field.account": "실행되는 계정으로, 서비스 관리자가 쓰는 표기", + "field.pid": "실행 중인 프로세스", + "field.trigger": "시작하거나 중지시키는 조건", + "field.path": "서비스 관리자가 시작하는 명령줄", + "field.file": "실행하는 파일이 디스크에 있는지", + "field.signed": "해지 확인 없이, 파일의 서명에 대해 Windows가 판단하는 것", + "field.publisher": "파일에 서명한 주체로, 신뢰된 서명으로만 증명됨", + "field.privilege": "항목이 요청하는 권한", + "field.dependson": "이 항목이 필요로 하는 것", + "field.requiredby": "이 항목이 중지되면 망가지는 것", + "field.sidtype": "서비스 SID 유형", + "field.sddl": "텍스트로 표현한 보안 설명자", + "field.memory": "그 프로세스가 사용하는 것", + "field.mismatch": "서로 어긋나는 구성과 상태", + + "field.open.name": "텍스트", + "field.open.display": "텍스트", + "field.open.description": "텍스트", + "field.open.account": "텍스트, 예: localsystem", + "field.open.pid": "숫자: 1234, >1000, 100-200", + "field.open.path": "텍스트", + "field.open.publisher": "텍스트", + "field.open.privilege": "텍스트, 예: SeDebugPrivilege", + "field.open.dependson": "서비스 이름", + "field.open.requiredby": "서비스 이름", + "field.open.sddl": "텍스트", + "field.open.memory": "단위가 붙은 크기: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "값이 있으며, 무엇이든 상관없음", + "reserved.none": "정말로 값이 없음, 항목에 값이 없음", + "reserved.unreadable": "도구가 이 필드를 읽지 못했거나 읽지 않았음, services.msc는 물을 수조차 없는 질문" +} diff --git a/site/i18n/nl.json b/site/i18n/nl.json new file mode 100644 index 0000000..bb3f398 --- /dev/null +++ b/site/i18n/nl.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "Naar de inhoud", + "chrome.nav": "Site", + "chrome.language": "Taal", + + "chrome.footer.product": "Product", + "chrome.footer.guides": "Gidsen", + "chrome.footer.project": "Project", + "chrome.footer.source": "Broncode op GitHub", + "chrome.footer.releases": "Releases", + "chrome.footer.issues": "Issuetracker", + "chrome.footer.security": "Een beveiligingsprobleem melden", + "chrome.footer.support": "Het project steunen", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. Uitgebracht onder de GNU General Public License, versie 3. Gebouwd met een door AI ondersteunde werkwijze.", + "chrome.legal.trademark": "{{product}} is niet gelieerd aan, goedgekeurd door of gesponsord door Microsoft. Windows is een handelsmerk van de Microsoft-groep van bedrijven, en de naam wordt hier alleen gebruikt om te zeggen wat het hulpmiddel beheert.", + "chrome.legal.privacy": "Deze site plaatst geen cookies, voert geen scripts uit en laadt niets van elders.", + + "table.head.code": "Code", + "table.head.meaning": "Betekenis", + "table.head.switch": "Optie", + "table.head.what": "Wat het doet", + "table.head.where": "Waar het werkt", + "table.head.field": "Veld", + "table.head.asks": "Vraagt naar", + "table.head.values": "Waarden", + + "exit.ok": "Klaar, en alles is aangekomen waar het heen moest.", + "exit.runtime": "Het hulpmiddel is mislukt - het kon niet doen wat werd gevraagd, om een reden die over het hulpmiddel gaat en niet over het plan.", + "exit.usage": "De opdrachtregel was fout. Bij een verkeerd getypte opdracht wordt degene aangeboden die u waarschijnlijk bedoelde.", + "exit.incomplete": "Het plan was goed, het is uitgevoerd, en iets erin is niet aangekomen waar het heen moest - de beheerder weigerde, of de sessie had er geen rechten op.", + "exit.interrupted": "Iemand heeft de uitvoering met de hand gestopt. Niet nul, ook als elke stap nog was aangekomen, zodat een wrapper een onderbroken uitvoering niet als schoon behandelt.", + "exit.differences": "Een vergelijking is uitgevoerd en vond dat de configuratie is afgedreven - een item toegevoegd of verwijderd, of een anders ingesteld item. Alleen de uitvoeringstoestand is geen drift. Alleen met --exit-code, omdat drift is wat dit hulpmiddel moet vinden, en het vinden ervan geen mislukking is.", + + "switch.query": "Beperk de lijst met de querytaal.", + "switch.signatures": "Lees wie elk uitvoerbaar bestand heeft ondertekend en of Windows het vertrouwt. Enkele seconden over een hele machine, dus uit tenzij erom gevraagd wordt - en een query over handtekeningen zet het zelf aan.", + "switch.memory": "Lees wat het proces van elk draaiend item gebruikt. Standaard uit omdat het een meting is en geen instelling: een seconde later is het anders.", + "switch.required-by": "Lees welke items kapotgaan als er een wordt gestopt, rechtstreeks aan Windows gevraagd en niet afgeleid uit wat alles zelf aangeeft. Een aanroep per item, dus uit tenzij erom gevraagd wordt. show en snapshot create lezen het elke keer.", + "switch.follow-network": "Laat het hulpmiddel zich überhaupt buiten deze machine begeven - een opstartpad op de share van iemand anders, en een certificaat dat deze machine nog niet heeft. Standaard uit voor de veiligheid: één onbereikbare share kost eenentwintig seconden en authenticeert als wie het ook uitvoerde, en het ophalen van een certificaat is een verbinding met een derde partij midden in een gewone lijst. Zonder deze optie wordt een handtekening gecontroleerd tegen wat hier is, en een resultaat dat door niet kijken veroorzaakt kan zijn, wordt gemeld als ongelezen en niet als oordeel.", + "switch.force": "Bij kill: beëindig het proces meteen zonder beleefd te vragen - de voorvertoning toont dan één stap in plaats van twee. Bij snapshot create: vervang een momentopname die er al is - een bestand dat geen momentopname is wordt nooit vervangen.", + "switch.restart": "Bij kill: breng het item terug zodra het proces weg is, samen met alles wat het deelde.", + "switch.stop": "Bij start-type, en alleen naast disabled: stop het item in hetzelfde plan zodra de instelling is geschreven. Een opstarttype verandert de volgende opstart en niets nu, dus zonder deze optie blijft een draaiend item dat op disabled is gezet gewoon draaien.", + "switch.full": "Bij show: druk ook de velden af die echt leeg zijn. Een veld dat niemand kon lezen wordt hoe dan ook afgedrukt.", + "switch.components": "Bij license: verander de mededeling in elk onderdeel in dit uitvoerbare bestand met zijn versie, zijn licentie en waar het vandaan kwam. Dezelfde set die de materiaallijst naast de download bevat, omdat beide uit één register worden gemaakt.", + "switch.json": "Hetzelfde document, machineleesbaar, op de standaarduitvoer.", + "switch.note": "Waarvoor de momentopname is gemaakt, bewaard in het bestand.", + "switch.exit-code": "Eindig met code 5 wanneer de configuratie verschilt - een item toegevoegd of verwijderd, of een anders ingesteld item. Alleen de uitvoeringstoestand telt niet. Standaard uit, zodat een script dat alleen de verschillen afgedrukt wil hebben niet struikelt over het vinden ervan.", + "switch.live": "Vergelijk het bestand met deze machine zoals ze nu is, in plaats van met een tweede bestand.", + "switch.timing": "Hoe lang elk deel van het lezen duurde, op de standaardfout.", + "switch.dry-run": "Druk het plan af en wijzig niets. Het is hetzelfde plan dat een uitvoering draait - er is geen tweede codepad voor de echte uitvoering.", + "switch.dependents": "Zet de services die zouden kapotgaan als aparte stappen in het plan.", + "switch.timeout": "Hoe lang één stap zonder voortgang mag gaan voordat ze wordt opgegeven, opnieuw geteld telkens als de service voortgang meldt. Zestig seconden tenzij u iets anders zegt. Een service die voortgang blijft melden wordt zo lang bewaakt als nodig is. Opraken is het einde van het kijken en geen mislukking, en het rapport zegt waar het item is achtergelaten.", + + "field.name": "de servicenaam, waaraan Windows hem herkent", + "field.display": "de weergavenaam, zoals dit Windows hem spelt", + "field.description": "wat het item over zichzelf zegt", + "field.type": "wat voor soort item het is", + "field.peruser": "of het een van de families per gebruiker is waarvan Windows per sessie een kopie maakt", + "field.status": "wat het nu doet", + "field.start": "wat de beheerder bij de volgende opstart met het doet", + "field.account": "het account waaronder het draait, zoals de beheerder het spelt", + "field.pid": "het proces waarin het draait", + "field.trigger": "een voorwaarde die het start of stopt", + "field.path": "de opdrachtregel die de beheerder start", + "field.file": "of het bestand dat het uitvoert op schijf staat", + "field.signed": "wat Windows van de handtekening van het bestand vindt, zonder intrekking te controleren", + "field.publisher": "wie het bestand heeft ondertekend - alleen bewezen door een vertrouwde handtekening", + "field.privilege": "een bevoegdheid die het item aanvraagt", + "field.dependson": "wat dit nodig heeft", + "field.requiredby": "wat kapotgaat als dit stopt", + "field.sidtype": "het SID-type van de service", + "field.sddl": "de beveiligingsdescriptor, als tekst", + "field.memory": "wat het proces gebruikt", + "field.mismatch": "configuratie en toestand die het oneens zijn", + + "field.open.name": "tekst", + "field.open.display": "tekst", + "field.open.description": "tekst", + "field.open.account": "tekst, bijv. localsystem", + "field.open.pid": "een getal: 1234, >1000, 100-200", + "field.open.path": "tekst", + "field.open.publisher": "tekst", + "field.open.privilege": "tekst, bijv. SeDebugPrivilege", + "field.open.dependson": "een servicenaam", + "field.open.requiredby": "een servicenaam", + "field.open.sddl": "tekst", + "field.open.memory": "een grootte met een eenheid: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "er is een waarde, welke het ook is", + "reserved.none": "er is echt geen waarde - het item heeft er geen", + "reserved.unreadable": "het hulpmiddel kon dit veld niet lezen, of heeft het niet gelezen, wat een vraag is die services.msc niet eens kan stellen" +} diff --git a/site/i18n/ro.json b/site/i18n/ro.json new file mode 100644 index 0000000..1949900 --- /dev/null +++ b/site/i18n/ro.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "Salt la conținut", + "chrome.nav": "Site", + "chrome.language": "Limba", + + "chrome.footer.product": "Produs", + "chrome.footer.guides": "Ghiduri", + "chrome.footer.project": "Proiect", + "chrome.footer.source": "Cod sursă pe GitHub", + "chrome.footer.releases": "Versiuni", + "chrome.footer.issues": "Urmăritor de probleme", + "chrome.footer.security": "Raportarea unei probleme de securitate", + "chrome.footer.support": "Susțineți proiectul", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. Publicat sub licența GNU General Public License, versiunea 3. Realizat cu un flux de lucru asistat de IA.", + "chrome.legal.trademark": "{{product}} nu este afiliat, aprobat sau sponsorizat de Microsoft. Windows este o marcă comercială a grupului de companii Microsoft, iar numele este folosit aici doar pentru a spune ce administrează instrumentul.", + "chrome.legal.privacy": "Acest site nu setează cookie-uri, nu rulează scripturi și nu încarcă nimic de altundeva.", + + "table.head.code": "Cod", + "table.head.meaning": "Semnificație", + "table.head.switch": "Opțiune", + "table.head.what": "Ce face", + "table.head.where": "Unde funcționează", + "table.head.field": "Câmp", + "table.head.asks": "Întreabă despre", + "table.head.values": "Valori", + + "exit.ok": "Terminat și totul a ajuns unde trebuia.", + "exit.runtime": "Instrumentul a eșuat - nu a putut face ce i s-a cerut, dintr-un motiv care ține de instrument și nu de plan.", + "exit.usage": "Linia de comandă era greșită. O comandă scrisă greșit primește oferta celei pe care probabil ați vrut-o.", + "exit.incomplete": "Planul era bun, a rulat și ceva din el nu a ajuns unde trebuia - managerul a refuzat sau sesiunea nu avea drepturi asupra lui.", + "exit.interrupted": "Cineva a oprit rularea cu mâna. Diferit de zero chiar dacă fiecare pas a ajuns, ca un script învelitor să nu trateze o rulare întreruptă drept curată.", + "exit.differences": "O comparație a rulat și a constatat că configurația a derivat - o intrare adăugată sau eliminată ori una configurată altfel. Starea de rulare singură nu este derivă. Doar cu --exit-code, pentru că deriva este ceea ce acest instrument există să găsească, iar găsirea ei nu este un eșec.", + + "switch.query": "Restrânge lista cu limbajul de interogare.", + "switch.signatures": "Citește cine a semnat fiecare executabil și dacă Windows are încredere în el. Câteva secunde pe o mașină întreagă, deci este dezactivat dacă nu se cere - iar o interogare despre semnături îl pornește singură.", + "switch.memory": "Citește ce folosește procesul fiecărei intrări care rulează. Dezactivat implicit pentru că este o măsurătoare și nu o setare: o secundă mai târziu este altceva.", + "switch.required-by": "Citește care intrări se defectează dacă una este oprită, întrebat direct Windows și nu dedus din ce declară toate. Un apel pe intrare, deci dezactivat dacă nu se cere. show și snapshot create îl citesc de fiecare dată.", + "switch.follow-network": "Lasă instrumentul să iasă deloc în afara acestei mașini - o cale de lansare aflată pe share-ul altcuiva și un certificat pe care această mașină nu îl are deja. Dezactivat implicit pentru siguranță: un share inaccesibil costă douăzeci și una de secunde și se autentifică drept cel care a rulat instrumentul, iar preluarea unui certificat este o conexiune cu o terță parte în mijlocul unei liste obișnuite. Fără el, o semnătură este verificată față de ce este aici, iar un rezultat care ar fi putut fi cauzat de faptul că nu s-a căutat este raportat ca necitit și nu ca verdict.", + "switch.force": "La kill, încheie procesul imediat fără a cere politicos - previzualizarea arată atunci un pas în loc de doi. La snapshot create, înlocuiește un instantaneu care există deja - un fișier care nu este instantaneu nu este înlocuit niciodată.", + "switch.restart": "La kill, readuce intrarea după ce procesul a dispărut, împreună cu tot ce l-a împărțit.", + "switch.stop": "La start-type, și doar alături de disabled, oprește intrarea în același plan după ce setarea este scrisă. Un tip de pornire schimbă următoarea pornire și nimic acum, deci fără el o intrare care rulează, setată pe disabled, continuă să ruleze.", + "switch.full": "La show, tipărește și câmpurile care sunt cu adevărat goale. Un câmp pe care nimeni nu l-a putut citi este tipărit oricum.", + "switch.components": "La license, transformă mențiunea în fiecare componentă din acest executabil cu versiunea, licența și proveniența ei. Același set pe care îl poartă lista de materiale publicată lângă descărcare, pentru că ambele sunt generate dintr-un singur registru.", + "switch.json": "Același document, citibil de mașină, la ieșirea standard.", + "switch.note": "Pentru ce a fost făcut instantaneul, păstrat în interiorul fișierului.", + "switch.exit-code": "Se încheie cu codul 5 când configurația diferă - o intrare adăugată sau eliminată ori una configurată altfel. Starea de rulare singură nu contează. Dezactivat implicit, ca un script care vrea doar diferențele tipărite să nu fie dat peste cap de faptul că a găsit unele.", + "switch.live": "Compară fișierul cu această mașină așa cum este acum, nu cu un al doilea fișier.", + "switch.timing": "Cât a durat fiecare parte a citirii, la eroarea standard.", + "switch.dry-run": "Tipărește planul și nu schimbă nimic. Este același plan pe care îl rulează o execuție - nu există o a doua cale de cod pentru execuția reală.", + "switch.dependents": "Pune în plan, ca pași de sine stătători, serviciile care s-ar defecta.", + "switch.timeout": "Cât timp poate merge un pas fără progres înainte de a fi abandonat, numărat din nou de fiecare dată când serviciul raportează progres. Șaizeci de secunde dacă nu spuneți altfel. Un serviciu care continuă să raporteze progres este urmărit cât este nevoie. Expirarea este sfârșitul urmăririi, nu un eșec, iar raportul spune unde a fost lăsată intrarea.", + + "field.name": "numele serviciului, cel după care îl identifică Windows", + "field.display": "numele afișat, așa cum îl scrie acest Windows", + "field.description": "ce spune intrarea despre sine", + "field.type": "ce fel de intrare este", + "field.peruser": "dacă este una dintre familiile pe utilizator pe care Windows le copiază pentru fiecare sesiune", + "field.status": "ce face chiar acum", + "field.start": "ce face managerul cu ea la următoarea pornire", + "field.account": "contul sub care rulează, așa cum îl scrie managerul", + "field.pid": "procesul în care rulează", + "field.trigger": "o condiție care o pornește sau o oprește", + "field.path": "linia de comandă pe care o lansează managerul", + "field.file": "dacă fișierul pe care îl execută se află pe disc", + "field.signed": "ce crede Windows despre semnătura fișierului, fără a verifica revocarea", + "field.publisher": "cine a semnat fișierul - dovedit doar de o semnătură de încredere", + "field.privilege": "un privilegiu pe care îl cere intrarea", + "field.dependson": "de ce are nevoie aceasta", + "field.requiredby": "ce se defectează dacă aceasta se oprește", + "field.sidtype": "tipul SID al serviciului", + "field.sddl": "descriptorul de securitate, ca text", + "field.memory": "ce folosește procesul ei", + "field.mismatch": "configurație și stare care nu concordă", + + "field.open.name": "text", + "field.open.display": "text", + "field.open.description": "text", + "field.open.account": "text, de ex. localsystem", + "field.open.pid": "un număr: 1234, >1000, 100-200", + "field.open.path": "text", + "field.open.publisher": "text", + "field.open.privilege": "text, de ex. SeDebugPrivilege", + "field.open.dependson": "un nume de serviciu", + "field.open.requiredby": "un nume de serviciu", + "field.open.sddl": "text", + "field.open.memory": "o dimensiune cu unitate: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "există o valoare, oricare ar fi", + "reserved.none": "chiar nu există nicio valoare - intrarea nu are una", + "reserved.unreadable": "instrumentul n-a putut citi acest câmp sau nu l-a citit, ceea ce este o întrebare pe care services.msc nici măcar nu o poate pune" +} diff --git a/site/i18n/ru.json b/site/i18n/ru.json new file mode 100644 index 0000000..857112b --- /dev/null +++ b/site/i18n/ru.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "Перейти к содержимому", + "chrome.nav": "Сайт", + "chrome.language": "Язык", + + "chrome.footer.product": "Продукт", + "chrome.footer.guides": "Руководства", + "chrome.footer.project": "Проект", + "chrome.footer.source": "Исходный код на GitHub", + "chrome.footer.releases": "Выпуски", + "chrome.footer.issues": "Трекер задач", + "chrome.footer.security": "Сообщить о проблеме безопасности", + "chrome.footer.support": "Поддержать проект", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. Распространяется по лицензии GNU General Public License версии 3. Создан с применением процесса, использующего ИИ.", + "chrome.legal.trademark": "{{product}} не связан с Microsoft, не одобрен и не спонсируется Microsoft. Windows - товарный знак группы компаний Microsoft, и это название используется здесь лишь для того, чтобы сказать, чем управляет инструмент.", + "chrome.legal.privacy": "Этот сайт не устанавливает cookie, не запускает скрипты и ничего не загружает из других мест.", + + "table.head.code": "Код", + "table.head.meaning": "Значение", + "table.head.switch": "Параметр", + "table.head.what": "Что делает", + "table.head.where": "Где работает", + "table.head.field": "Поле", + "table.head.asks": "О чём спрашивает", + "table.head.values": "Значения", + + "exit.ok": "Готово, и всё дошло, куда шло.", + "exit.runtime": "Инструмент дал сбой: он не смог сделать то, о чём его просили, по причине, которая относится к самому инструменту, а не к плану.", + "exit.usage": "Командная строка была неверной. При опечатке в команде предлагается та, которую вы, вероятно, имели в виду.", + "exit.incomplete": "План был хорош, он выполнился, и что-то в нём не дошло, куда шло: диспетчер отказал или у сеанса не было прав на это.", + "exit.interrupted": "Кто-то остановил выполнение вручную. Не ноль, даже если каждый шаг всё же дошёл, чтобы обёртка не считала прерванное выполнение чистым.", + "exit.differences": "Сравнение выполнилось и обнаружило, что конфигурация ушла в дрейф: запись добавлена или удалена, или одна настроена иначе. Одно состояние выполнения дрейфом не является. Только с --exit-code, потому что дрейф - это то, что этот инструмент создан находить, а его нахождение не является отказом.", + + "switch.query": "Сужает список с помощью языка запросов.", + "switch.signatures": "Читает, кто подписал каждый исполняемый файл и доверяет ли ему Windows. На всей машине занимает несколько секунд, поэтому выключено, пока не попросят, - а запрос о подписях включает это само.", + "switch.memory": "Читает, что использует процесс каждой работающей записи. По умолчанию выключено, потому что это измерение, а не настройка: секунду спустя оно уже другое.", + "switch.required-by": "Читает, какие записи сломаются, если остановить одну, спрашивая напрямую у Windows, а не выводя из того, что все объявляют. Один вызов на запись, поэтому выключено, пока не попросят. show и snapshot create читают это каждый раз.", + "switch.follow-network": "Позволяет инструменту вообще выходить за пределы этой машины: путь запуска, лежащий на чужом общем ресурсе, и сертификат, которого на этой машине ещё нет. По умолчанию выключено ради безопасности: один недоступный общий ресурс стоит двадцати одной секунды и аутентифицируется как тот, кто запустил, а получение сертификата - это соединение с третьей стороной посреди обычного списка. Без этого параметра подпись проверяется по тому, что есть здесь, а результат, который мог быть вызван тем, что не смотрели, сообщается как непрочитанный, а не как вердикт.", + "switch.force": "У kill завершает процесс сразу, не прося вежливо: предпросмотр тогда показывает один шаг вместо двух. У snapshot create заменяет уже существующий снимок: файл, не являющийся снимком, не заменяется никогда.", + "switch.restart": "У kill возвращает запись, когда процесса уже нет, вместе со всем, что делило его.", + "switch.stop": "У start-type и только вместе с disabled останавливает запись в том же плане после записи настройки. Тип запуска меняет следующую загрузку и ничего сейчас, поэтому без него работающая запись, переведённая в disabled, продолжает работать.", + "switch.full": "У show печатает и поля, которые действительно пусты. Поле, которое никто не смог прочитать, печатается в любом случае.", + "switch.components": "У license превращает уведомление в каждый компонент внутри этого исполняемого файла с его версией, лицензией и происхождением. Тот же набор, что несёт опубликованная рядом с загрузкой ведомость материалов, потому что обе строятся из одного реестра.", + "switch.json": "Тот же документ, машиночитаемый, в стандартном выводе.", + "switch.note": "Для чего был сделан снимок, хранится внутри файла.", + "switch.exit-code": "Завершается кодом 5, когда конфигурация отличается: запись добавлена или удалена, или одна настроена иначе. Одно состояние выполнения не считается. По умолчанию выключено, чтобы скрипт, которому нужны лишь напечатанные различия, не спотыкался о то, что он их нашёл.", + "switch.live": "Сравнивает файл с этой машиной в её текущем виде, а не со вторым файлом.", + "switch.timing": "Сколько занимала каждая часть чтения, в стандартном потоке ошибок.", + "switch.dry-run": "Печатает план и ничего не меняет. Это тот же план, который выполняет настоящий запуск: второго пути в коде для настоящего выполнения нет.", + "switch.dependents": "Включает в план службы, которые сломались бы, как отдельные шаги.", + "switch.timeout": "Сколько один шаг может идти без прогресса, прежде чем от него откажутся, отсчёт начинается заново каждый раз, когда служба сообщает о прогрессе. Шестьдесят секунд, если не скажете иначе. За службой, которая продолжает сообщать о прогрессе, наблюдают столько, сколько нужно. Истечение времени - это конец наблюдения, а не отказ, и отчёт говорит, где запись была оставлена.", + + "field.name": "имя службы, по которому её опознаёт Windows", + "field.display": "отображаемое имя, как его пишет эта Windows", + "field.description": "что запись говорит о себе", + "field.type": "что это за запись", + "field.peruser": "входит ли она в одно из семейств для каждого пользователя, копию которых Windows создаёт на каждый сеанс", + "field.status": "что она делает прямо сейчас", + "field.start": "что диспетчер делает с ней при следующей загрузке", + "field.account": "учётная запись, под которой она работает, как её пишет диспетчер", + "field.pid": "процесс, в котором она работает", + "field.trigger": "условие, которое запускает или останавливает её", + "field.path": "командная строка, которую запускает диспетчер", + "field.file": "есть ли файл, который она запускает, на диске", + "field.signed": "что Windows думает о подписи файла, без проверки отзыва", + "field.publisher": "кто подписал файл - подтверждено только доверенной подписью", + "field.privilege": "привилегия, которую запрашивает запись", + "field.dependson": "что нужно этой записи", + "field.requiredby": "что сломается, если эта остановится", + "field.sidtype": "тип SID службы", + "field.sddl": "дескриптор безопасности в виде текста", + "field.memory": "что использует её процесс", + "field.mismatch": "конфигурация и состояние, которые расходятся", + + "field.open.name": "текст", + "field.open.display": "текст", + "field.open.description": "текст", + "field.open.account": "текст, напр. localsystem", + "field.open.pid": "число: 1234, >1000, 100-200", + "field.open.path": "текст", + "field.open.publisher": "текст", + "field.open.privilege": "текст, напр. SeDebugPrivilege", + "field.open.dependson": "имя службы", + "field.open.requiredby": "имя службы", + "field.open.sddl": "текст", + "field.open.memory": "размер с единицей измерения: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "значение есть, какое бы оно ни было", + "reserved.none": "значения действительно нет - у записи его нет", + "reserved.unreadable": "инструмент не смог прочитать это поле или не читал его, а это вопрос, который services.msc даже не может задать" +} diff --git a/site/i18n/tr.json b/site/i18n/tr.json new file mode 100644 index 0000000..7d22977 --- /dev/null +++ b/site/i18n/tr.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "İçeriğe geç", + "chrome.nav": "Site", + "chrome.language": "Dil", + + "chrome.footer.product": "Ürün", + "chrome.footer.guides": "Kılavuzlar", + "chrome.footer.project": "Proje", + "chrome.footer.source": "GitHub'da kaynak kod", + "chrome.footer.releases": "Sürümler", + "chrome.footer.issues": "Sorun izleyici", + "chrome.footer.security": "Bir güvenlik sorununu bildirme", + "chrome.footer.support": "Projeyi destekleyin", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. GNU Genel Kamu Lisansı sürüm 3 altında yayımlanmıştır. Yapay zeka destekli bir iş akışıyla geliştirilmiştir.", + "chrome.legal.trademark": "{{product}}, Microsoft ile bağlantılı değildir, Microsoft tarafından onaylanmamış ya da desteklenmemiştir. Windows, Microsoft şirketler grubunun bir ticari markasıdır ve ad burada yalnızca aracın neyi yönettiğini söylemek için kullanılır.", + "chrome.legal.privacy": "Bu site çerez ayarlamaz, betik çalıştırmaz ve başka hiçbir yerden bir şey yüklemez.", + + "table.head.code": "Kod", + "table.head.meaning": "Anlamı", + "table.head.switch": "Seçenek", + "table.head.what": "Ne yapar", + "table.head.where": "Nerede çalışır", + "table.head.field": "Alan", + "table.head.asks": "Neyi sorar", + "table.head.values": "Değerler", + + "exit.ok": "Bitti ve her şey gideceği yere ulaştı.", + "exit.runtime": "Araç başarısız oldu - istenen şeyi yapamadı; nedeni plan değil, aracın kendisiyle ilgili.", + "exit.usage": "Komut satırı yanlıştı. Yanlış yazılmış bir komuta, büyük olasılıkla kastettiğiniz komut önerilir.", + "exit.incomplete": "Plan iyiydi, çalıştı ve içindeki bir şey gideceği yere ulaşmadı - yönetici reddetti ya da oturumun ona hakkı yoktu.", + "exit.interrupted": "Biri çalıştırmayı elle durdurdu. Her adım yine de ulaşmış olsa bile sıfır değildir; böylece bir sarmalayıcı yarıda kesilmiş bir çalıştırmayı temiz saymaz.", + "exit.differences": "Bir karşılaştırma çalıştı ve yapılandırmanın saptığını buldu - eklenmiş ya da kaldırılmış bir öğe veya farklı kurulmuş biri. Çalışma durumu tek başına sapma değildir. Yalnızca --exit-code ile, çünkü sapma bu aracın bulmak için var olduğu şeydir ve onu bulmak bir başarısızlık değildir.", + + "switch.query": "Listeyi sorgu diliyle daraltır.", + "switch.signatures": "Her yürütülebilir dosyayı kimin imzaladığını ve Windows'un ona güvenip güvenmediğini okur. Tüm makinede birkaç saniye sürer, bu yüzden istenmedikçe kapalıdır - ve imzalarla ilgili bir sorgu onu kendiliğinden açar.", + "switch.memory": "Çalışan her öğenin işleminin ne kullandığını okur. Bir ayar değil bir ölçüm olduğu için varsayılan olarak kapalıdır: bir saniye sonra farklıdır.", + "switch.required-by": "Biri durdurulursa hangi öğelerin bozulacağını okur; her şeyin kendi bildirdiğinden çıkarılmaz, doğrudan Windows'a sorulur. Öğe başına bir çağrı olduğundan istenmedikçe kapalıdır. show ve snapshot create bunu her seferinde okur.", + "switch.follow-network": "Aracın bu makinenin dışına hiç uzanmasına izin verir - başkasının paylaşımında duran bir başlatma yolu ve bu makinede henüz olmayan bir sertifika. Güvenlik için varsayılan olarak kapalıdır: ulaşılamayan tek bir paylaşım yirmi bir saniyeye mal olur ve çalıştıran kişi olarak kimlik doğrular; sertifika getirmek de sıradan bir listenin ortasında üçüncü bir tarafa bağlantıdır. Bu olmadan bir imza burada olana göre denetlenir ve bakılmamasından kaynaklanmış olabilecek bir sonuç, hüküm olarak değil okunmadı olarak bildirilir.", + "switch.force": "kill üzerinde, nazikçe sormadan süreci hemen sonlandırır - önizleme o zaman iki yerine bir adım gösterir. snapshot create üzerinde, zaten var olan bir anlık görüntünün yerine yazar - anlık görüntü olmayan bir dosyanın yerine asla yazılmaz.", + "switch.restart": "kill üzerinde, süreç gittikten sonra öğeyi, onunla paylaşılan her şeyle birlikte geri getirir.", + "switch.stop": "start-type üzerinde ve yalnızca disabled ile birlikte, ayar yazıldıktan sonra öğeyi aynı planda durdurur. Başlangıç türü bir sonraki açılışı değiştirir, şimdiyi değil; bu yüzden onsuz, disabled yapılmış çalışan bir öğe çalışmaya devam eder.", + "switch.full": "show üzerinde, gerçekten boş olan alanları da yazdırır. Kimsenin okuyamadığı bir alan her durumda yazdırılır.", + "switch.components": "license üzerinde, bildirimi bu yürütülebilir dosyanın içindeki her bileşene, sürümüyle, lisansıyla ve nereden geldiğiyle açar. İndirmenin yanında yayımlanan malzeme listesinin taşıdığı aynı küme, çünkü ikisi de tek bir kayıttan üretilir.", + "switch.json": "Aynı belge, makine tarafından okunabilir, standart çıktıda.", + "switch.note": "Anlık görüntünün ne için alındığı, dosyanın içinde saklanır.", + "switch.exit-code": "Yapılandırma farklı olduğunda 5 koduyla biter - eklenmiş ya da kaldırılmış bir öğe veya farklı kurulmuş biri. Yalnızca çalışma durumu sayılmaz. Varsayılan olarak kapalıdır; böylece yalnızca farklılıkların yazdırılmasını isteyen bir betik, bazılarını bulduğu için takılmaz.", + "switch.live": "Dosyayı ikinci bir dosyayla değil, bu makineyle şu anki haliyle karşılaştırır.", + "switch.timing": "Okumanın her bölümünün ne kadar sürdüğü, standart hatada.", + "switch.dry-run": "Planı yazdırır ve hiçbir şeyi değiştirmez. Bir çalıştırmanın yürüttüğü aynı plandır - gerçek çalıştırma için ikinci bir kod yolu yoktur.", + "switch.dependents": "Bozulacak hizmetleri plana kendi başlarına birer adım olarak koyar.", + "switch.timeout": "Bir adımın ilerleme olmadan vazgeçilmeden önce ne kadar gidebileceği; hizmet her ilerleme bildirdiğinde yeniden sayılır. Aksini söylemezseniz altmış saniye. İlerleme bildirmeye devam eden bir hizmet gerektiği kadar izlenir. Süre dolması izlemenin sonudur, bir başarısızlık değil; rapor öğenin nerede bırakıldığını söyler.", + + "field.name": "hizmet adı, Windows'un onu tanıdığı ad", + "field.display": "görünen ad, bu Windows'un yazdığı şekilde", + "field.description": "öğenin kendisi hakkında söyledikleri", + "field.type": "ne tür bir öğe olduğu", + "field.peruser": "Windows'un oturum başına kopyasını oluşturduğu kullanıcı başına ailelerden biri olup olmadığı", + "field.status": "şu anda ne yaptığı", + "field.start": "yöneticinin bir sonraki açılışta onunla ne yaptığı", + "field.account": "çalıştığı hesap, yöneticinin yazdığı şekilde", + "field.pid": "içinde çalıştığı işlem", + "field.trigger": "onu başlatan ya da durduran bir koşul", + "field.path": "yöneticinin başlattığı komut satırı", + "field.file": "çalıştırdığı dosyanın diskte olup olmadığı", + "field.signed": "Windows'un dosyanın imzası hakkında düşündüğü, iptal denetlenmeden", + "field.publisher": "dosyayı kimin imzaladığı - yalnızca güvenilir bir imzayla kanıtlanır", + "field.privilege": "öğenin istediği bir ayrıcalık", + "field.dependson": "bunun neye ihtiyacı olduğu", + "field.requiredby": "bu durursa neyin bozulduğu", + "field.sidtype": "hizmet SID türü", + "field.sddl": "güvenlik tanımlayıcısı, metin olarak", + "field.memory": "işleminin ne kullandığı", + "field.mismatch": "birbiriyle uyuşmayan yapılandırma ve durum", + + "field.open.name": "metin", + "field.open.display": "metin", + "field.open.description": "metin", + "field.open.account": "metin, ör. localsystem", + "field.open.pid": "bir sayı: 1234, >1000, 100-200", + "field.open.path": "metin", + "field.open.publisher": "metin", + "field.open.privilege": "metin, ör. SeDebugPrivilege", + "field.open.dependson": "bir hizmet adı", + "field.open.requiredby": "bir hizmet adı", + "field.open.sddl": "metin", + "field.open.memory": "birimli bir boyut: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "bir değer var, ne olursa olsun", + "reserved.none": "gerçekten hiç değer yok - öğenin değeri yok", + "reserved.unreadable": "araç bu alanı okuyamadı ya da okumadı; bu, services.msc'nin soramayacağı bir sorudur" +} diff --git a/site/i18n/uk.json b/site/i18n/uk.json new file mode 100644 index 0000000..a4b8bfb --- /dev/null +++ b/site/i18n/uk.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "Перейти до вмісту", + "chrome.nav": "Сайт", + "chrome.language": "Мова", + + "chrome.footer.product": "Продукт", + "chrome.footer.guides": "Посібники", + "chrome.footer.project": "Проєкт", + "chrome.footer.source": "Вихідний код на GitHub", + "chrome.footer.releases": "Випуски", + "chrome.footer.issues": "Трекер задач", + "chrome.footer.security": "Повідомити про проблему безпеки", + "chrome.footer.support": "Підтримати проєкт", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. Розповсюджується за ліцензією GNU General Public License версії 3. Створено із застосуванням процесу, що використовує ШІ.", + "chrome.legal.trademark": "{{product}} не пов'язаний із Microsoft, не схвалений і не спонсорований Microsoft. Windows - товарний знак групи компаній Microsoft, і ця назва використовується тут лише для того, щоб сказати, чим керує інструмент.", + "chrome.legal.privacy": "Цей сайт не встановлює cookie, не запускає скрипти й нічого не завантажує з інших місць.", + + "table.head.code": "Код", + "table.head.meaning": "Що означає", + "table.head.switch": "Параметр", + "table.head.what": "Що робить", + "table.head.where": "Де працює", + "table.head.field": "Поле", + "table.head.asks": "Про що питає", + "table.head.values": "Значення", + + "exit.ok": "Готово, і все дійшло, куди йшло.", + "exit.runtime": "Інструмент дав збій: він не зміг зробити те, про що його просили, через причину, що стосується самого інструмента, а не плану.", + "exit.usage": "Командний рядок був неправильним. Для помилково набраної команди пропонується та, яку ви, імовірно, мали на увазі.", + "exit.incomplete": "План був добрий, він виконався, і щось у ньому не дійшло, куди йшло: диспетчер відмовив або сеанс не мав на це прав.", + "exit.interrupted": "Хтось зупинив виконання вручну. Не нуль, навіть якщо кожен крок усе ж дійшов, щоб обгортка не вважала перерване виконання чистим.", + "exit.differences": "Порівняння виконалося й виявило, що конфігурація пішла в дрейф: запис додано чи видалено, або один налаштовано інакше. Один лише стан виконання дрейфом не є. Лише з --exit-code, бо дрейф - це те, що цей інструмент створено знаходити, а його знаходження не є збоєм.", + + "switch.query": "Звужує список за допомогою мови запитів.", + "switch.signatures": "Читає, хто підписав кожен виконуваний файл і чи довіряє йому Windows. На всій машині займає кілька секунд, тому вимкнено, доки не попросять, - а запит про підписи вмикає це сам.", + "switch.memory": "Читає, що використовує процес кожного працюючого запису. За замовчуванням вимкнено, бо це вимірювання, а не налаштування: секундою пізніше воно вже інше.", + "switch.required-by": "Читає, які записи зламаються, якщо зупинити один, питаючи безпосередньо в Windows, а не виводячи з того, що всі декларують. Один виклик на запис, тому вимкнено, доки не попросять. show і snapshot create читають це щоразу.", + "switch.follow-network": "Дозволяє інструменту взагалі виходити за межі цієї машини: шлях запуску, що лежить на чужому спільному ресурсі, і сертифікат, якого ця машина ще не має. За замовчуванням вимкнено задля безпеки: один недоступний спільний ресурс коштує двадцяти однієї секунди й автентифікується як той, хто запустив, а отримання сертифіката - це з'єднання з третьою стороною посеред звичайного списку. Без цього параметра підпис перевіряється за тим, що є тут, а результат, який міг бути спричинений тим, що не дивилися, повідомляється як непрочитаний, а не як вердикт.", + "switch.force": "У kill завершує процес одразу, не просячи чемно: попередній перегляд тоді показує один крок замість двох. У snapshot create замінює знімок, який уже існує: файл, що не є знімком, не замінюється ніколи.", + "switch.restart": "У kill повертає запис, коли процесу вже немає, разом з усім, що ділило його.", + "switch.stop": "У start-type і лише поруч із disabled зупиняє запис у тому самому плані після запису налаштування. Тип запуску змінює наступне завантаження і нічого зараз, тому без нього працюючий запис, переведений у disabled, продовжує працювати.", + "switch.full": "У show друкує й поля, які справді порожні. Поле, яке ніхто не зміг прочитати, друкується в будь-якому разі.", + "switch.components": "У license перетворює повідомлення на кожен компонент усередині цього виконуваного файлу з його версією, ліцензією та походженням. Той самий набір, що несе відомість матеріалів, опублікована поруч із завантаженням, бо обидва будуються з одного реєстру.", + "switch.json": "Той самий документ, машиночитаний, у стандартному виводі.", + "switch.note": "Для чого було зроблено знімок, зберігається всередині файлу.", + "switch.exit-code": "Завершується кодом 5, коли конфігурація відрізняється: запис додано чи видалено, або один налаштовано інакше. Один лише стан виконання не враховується. За замовчуванням вимкнено, щоб скрипт, якому потрібні лише надруковані відмінності, не спотикався об те, що він їх знайшов.", + "switch.live": "Порівнює файл із цією машиною в її теперішньому вигляді, а не з другим файлом.", + "switch.timing": "Скільки тривала кожна частина читання, у стандартному потоці помилок.", + "switch.dry-run": "Друкує план і нічого не змінює. Це той самий план, який виконує справжній запуск: другого шляху в коді для справжнього виконання немає.", + "switch.dependents": "Вносить у план служби, які б зламалися, як окремі кроки.", + "switch.timeout": "Скільки один крок може тривати без прогресу, перш ніж від нього відмовляться, відлік починається заново щоразу, коли служба повідомляє про прогрес. Шістдесят секунд, якщо не скажете іншого. За службою, яка й далі повідомляє про прогрес, спостерігають стільки, скільки потрібно. Вичерпання часу - це кінець спостереження, а не збій, і звіт каже, де запис було залишено.", + + "field.name": "ім'я служби, за яким її розпізнає Windows", + "field.display": "відображуване ім'я, як його пише ця Windows", + "field.description": "що запис каже про себе", + "field.type": "що це за запис", + "field.peruser": "чи входить вона до одного з сімейств для кожного користувача, копію яких Windows створює на кожен сеанс", + "field.status": "що вона робить просто зараз", + "field.start": "що диспетчер робить із нею під час наступного завантаження", + "field.account": "обліковий запис, від якого вона працює, як його пише диспетчер", + "field.pid": "процес, у якому вона працює", + "field.trigger": "умова, що запускає або зупиняє її", + "field.path": "командний рядок, який запускає диспетчер", + "field.file": "чи є файл, який вона запускає, на диску", + "field.signed": "що Windows думає про підпис файлу, без перевірки відкликання", + "field.publisher": "хто підписав файл - підтверджено лише довіреним підписом", + "field.privilege": "привілей, який просить запис", + "field.dependson": "що потрібно цьому запису", + "field.requiredby": "що зламається, якщо цей зупиниться", + "field.sidtype": "тип SID служби", + "field.sddl": "дескриптор безпеки у вигляді тексту", + "field.memory": "що використовує її процес", + "field.mismatch": "конфігурація і стан, що розходяться", + + "field.open.name": "текст", + "field.open.display": "текст", + "field.open.description": "текст", + "field.open.account": "текст, напр. localsystem", + "field.open.pid": "число: 1234, >1000, 100-200", + "field.open.path": "текст", + "field.open.publisher": "текст", + "field.open.privilege": "текст, напр. SeDebugPrivilege", + "field.open.dependson": "ім'я служби", + "field.open.requiredby": "ім'я служби", + "field.open.sddl": "текст", + "field.open.memory": "розмір з одиницею виміру: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "значення є, яким би воно не було", + "reserved.none": "значення справді немає - у запису його немає", + "reserved.unreadable": "інструмент не зміг прочитати це поле або не читав його, а це запитання, яке services.msc навіть не може поставити" +} diff --git a/site/i18n/vi.json b/site/i18n/vi.json new file mode 100644 index 0000000..4df909b --- /dev/null +++ b/site/i18n/vi.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "Chuyển đến nội dung", + "chrome.nav": "Trang web", + "chrome.language": "Ngôn ngữ", + + "chrome.footer.product": "Sản phẩm", + "chrome.footer.guides": "Hướng dẫn", + "chrome.footer.project": "Dự án", + "chrome.footer.source": "Mã nguồn trên GitHub", + "chrome.footer.releases": "Bản phát hành", + "chrome.footer.issues": "Trình theo dõi sự cố", + "chrome.footer.security": "Báo cáo sự cố bảo mật", + "chrome.footer.support": "Ủng hộ dự án", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. Phát hành theo Giấy phép Công cộng GNU, phiên bản 3. Được xây dựng với quy trình có AI hỗ trợ.", + "chrome.legal.trademark": "{{product}} không liên kết với, không được chứng thực hay tài trợ bởi Microsoft. Windows là nhãn hiệu của nhóm công ty Microsoft, và tên này chỉ được dùng ở đây để nói công cụ quản lý thứ gì.", + "chrome.legal.privacy": "Trang web này không đặt cookie, không chạy script và không tải gì từ nơi khác.", + + "table.head.code": "Mã", + "table.head.meaning": "Ý nghĩa", + "table.head.switch": "Tùy chọn", + "table.head.what": "Nó làm gì", + "table.head.where": "Nơi nó hoạt động", + "table.head.field": "Trường", + "table.head.asks": "Hỏi về", + "table.head.values": "Giá trị", + + "exit.ok": "Xong, và mọi thứ đã đến nơi cần đến.", + "exit.runtime": "Công cụ đã thất bại - nó không thể làm điều được yêu cầu, vì lý do thuộc về công cụ chứ không phải kế hoạch.", + "exit.usage": "Dòng lệnh sai. Một lệnh gõ nhầm sẽ được đề nghị lệnh mà bạn có khả năng muốn dùng.", + "exit.incomplete": "Kế hoạch tốt, đã chạy, và có thứ trong đó không đến được nơi cần đến - trình quản lý từ chối, hoặc phiên không có quyền đối với nó.", + "exit.interrupted": "Ai đó đã dừng lần chạy bằng tay. Khác không ngay cả khi mọi bước vẫn đã đến nơi, để một lớp bao bọc không coi một lần chạy bị ngắt là sạch.", + "exit.differences": "Một lần so sánh đã chạy và thấy cấu hình đã lệch - một mục được thêm hoặc bị xóa, hoặc một mục được thiết lập khác. Chỉ riêng trạng thái chạy không phải là sai lệch. Chỉ với --exit-code, vì sai lệch là điều công cụ này tồn tại để tìm, và tìm thấy nó không phải là một thất bại.", + + "switch.query": "Thu hẹp danh sách bằng ngôn ngữ truy vấn.", + "switch.signatures": "Đọc ai đã ký mỗi tệp thực thi và Windows có tin nó không. Mất vài giây trên cả máy, nên tắt trừ khi được yêu cầu - và một truy vấn về chữ ký tự bật nó.", + "switch.memory": "Đọc tiến trình của mỗi mục đang chạy đang dùng gì. Mặc định tắt vì đây là một phép đo chứ không phải một thiết lập: một giây sau nó đã khác.", + "switch.required-by": "Đọc những mục nào hỏng nếu dừng một mục, hỏi thẳng Windows chứ không suy ra từ những gì mọi thứ khai báo. Một lệnh gọi cho mỗi mục, nên tắt trừ khi được yêu cầu. show và snapshot create luôn đọc nó.", + "switch.follow-network": "Cho phép công cụ vươn ra ngoài máy này - một đường dẫn khởi chạy nằm trên thư mục chia sẻ của người khác, và một chứng chỉ mà máy này chưa có. Mặc định tắt vì an toàn: một thư mục chia sẻ không truy cập được tốn hai mươi mốt giây và xác thực bằng danh tính của người chạy nó, còn việc lấy chứng chỉ là một kết nối tới bên thứ ba giữa một danh sách bình thường. Không có nó, một chữ ký được kiểm tra với những gì có ở đây, và một kết quả có thể do không nhìn mà ra được báo là chưa đọc chứ không phải một phán quyết.", + "switch.force": "Với kill, kết thúc tiến trình ngay lập tức mà không hỏi lịch sự - bản xem trước khi đó hiển thị một bước thay vì hai. Với snapshot create, thay thế một bản chụp đã có - một tệp không phải bản chụp không bao giờ bị thay thế.", + "switch.restart": "Với kill, đưa mục trở lại khi tiến trình đã mất, cùng mọi thứ đã dùng chung nó.", + "switch.stop": "Với start-type, và chỉ bên cạnh disabled, dừng mục trong cùng kế hoạch sau khi thiết lập được ghi. Kiểu khởi động thay đổi lần khởi động tiếp theo và không thay đổi gì ngay bây giờ, nên không có nó, một mục đang chạy được đặt thành disabled vẫn tiếp tục chạy.", + "switch.full": "Với show, in cả các trường thực sự trống. Một trường không ai đọc được thì được in trong cả hai trường hợp.", + "switch.components": "Với license, biến thông báo thành mọi thành phần bên trong tệp thực thi này cùng phiên bản, giấy phép và nguồn gốc của nó. Cùng tập hợp mà bảng kê vật liệu phát hành bên cạnh bản tải xuống mang, vì cả hai được dựng từ một sổ đăng ký.", + "switch.json": "Cùng tài liệu đó, máy đọc được, trên đầu ra chuẩn.", + "switch.note": "Bản chụp được tạo ra để làm gì, lưu bên trong tệp.", + "switch.exit-code": "Kết thúc bằng mã 5 khi cấu hình khác nhau - một mục được thêm hoặc bị xóa, hoặc một mục được thiết lập khác. Riêng trạng thái chạy không được tính. Mặc định tắt, để một script chỉ muốn in các khác biệt không bị vấp chỉ vì tìm thấy một vài cái.", + "switch.live": "So sánh tệp với máy này như hiện giờ, thay vì với một tệp thứ hai.", + "switch.timing": "Mỗi phần của việc đọc mất bao lâu, trên lỗi chuẩn.", + "switch.dry-run": "In kế hoạch và không thay đổi gì. Đó là cùng một kế hoạch mà lần chạy thật thực thi - không có đường mã thứ hai cho việc thực thi thật.", + "switch.dependents": "Đưa các dịch vụ sẽ hỏng vào kế hoạch dưới dạng những bước riêng.", + "switch.timeout": "Một bước được phép trôi qua bao lâu không có tiến triển trước khi bị bỏ, đếm lại mỗi khi dịch vụ báo tiến triển. Sáu mươi giây trừ khi bạn nói khác. Một dịch vụ cứ báo tiến triển sẽ được theo dõi bao lâu cũng được. Hết thời gian là kết thúc việc theo dõi chứ không phải một thất bại, và báo cáo nói mục đã bị để lại ở đâu.", + + "field.name": "tên dịch vụ, tên Windows dùng để nhận ra nó", + "field.display": "tên hiển thị, như Windows này viết", + "field.description": "mục tự nói gì về chính nó", + "field.type": "mục thuộc loại nào", + "field.peruser": "có 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ông", + "field.status": "nó đang làm gì ngay lúc này", + "field.start": "trình quản lý làm gì với nó ở lần khởi động tiếp theo", + "field.account": "tài khoản nó chạy dưới, như trình quản lý viết", + "field.pid": "tiến trình nó đang chạy trong đó", + "field.trigger": "một điều kiện khởi động hoặc dừng nó", + "field.path": "dòng lệnh mà trình quản lý khởi chạy", + "field.file": "tệp mà nó chạy có nằm trên đĩa không", + "field.signed": "Windows nghĩ gì về chữ ký của tệp, không kiểm tra thu hồi", + "field.publisher": "ai đã ký tệp - chỉ được chứng minh bởi một chữ ký đáng tin cậy", + "field.privilege": "một đặc quyền mà mục yêu cầu", + "field.dependson": "điều mà mục này cần", + "field.requiredby": "điều gì hỏng nếu mục này dừng", + "field.sidtype": "kiểu SID của dịch vụ", + "field.sddl": "bộ mô tả bảo mật, dạng văn bản", + "field.memory": "tiến trình của nó đang dùng gì", + "field.mismatch": "cấu hình và trạng thái không khớp nhau", + + "field.open.name": "văn bản", + "field.open.display": "văn bản", + "field.open.description": "văn bản", + "field.open.account": "văn bản, ví dụ localsystem", + "field.open.pid": "một số: 1234, >1000, 100-200", + "field.open.path": "văn bản", + "field.open.publisher": "văn bản", + "field.open.privilege": "văn bản, ví dụ SeDebugPrivilege", + "field.open.dependson": "tên một dịch vụ", + "field.open.requiredby": "tên một dịch vụ", + "field.open.sddl": "văn bản", + "field.open.memory": "một kích thước kèm đơn vị: 500MB, >1GB, 100MB-1GB", + + "reserved.any": "có một giá trị, bất kể là gì", + "reserved.none": "thực sự không có giá trị - mục không có giá trị nào", + "reserved.unreadable": "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" +} diff --git a/site/i18n/zh-hans.json b/site/i18n/zh-hans.json new file mode 100644 index 0000000..0d4d925 --- /dev/null +++ b/site/i18n/zh-hans.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "跳到内容", + "chrome.nav": "站点", + "chrome.language": "语言", + + "chrome.footer.product": "产品", + "chrome.footer.guides": "指南", + "chrome.footer.project": "项目", + "chrome.footer.source": "GitHub 上的源代码", + "chrome.footer.releases": "发布版本", + "chrome.footer.issues": "问题跟踪器", + "chrome.footer.security": "报告安全问题", + "chrome.footer.support": "支持这个项目", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. 依据 GNU General Public License 第 3 版发布。采用 AI 辅助的工作流程构建。", + "chrome.legal.trademark": "{{product}} 与 Microsoft 没有关联,也未获得 Microsoft 的认可或赞助。Windows 是 Microsoft 公司集团的商标,这个名称在此处仅用于说明该工具管理的是什么。", + "chrome.legal.privacy": "本网站不设置 Cookie,不运行脚本,也不从其他任何地方加载任何内容。", + + "table.head.code": "代码", + "table.head.meaning": "含义", + "table.head.switch": "选项", + "table.head.what": "作用", + "table.head.where": "适用范围", + "table.head.field": "字段", + "table.head.asks": "询问的内容", + "table.head.values": "取值", + + "exit.ok": "完成,一切都到了它该去的地方。", + "exit.runtime": "工具失败了:由于与工具本身而不是与计划有关的原因,它无法完成被要求做的事。", + "exit.usage": "命令行有误。拼错的命令会得到一个你可能想用的命令的提示。", + "exit.incomplete": "计划是好的,也运行了,但其中有些内容没有到达它该去的地方:服务管理器拒绝了,或者会话没有相应的权限。", + "exit.interrupted": "有人手动停止了运行。即使每个步骤都已到达,结果也不是零,这样封装脚本就不会把被中断的运行当作正常结束。", + "exit.differences": "比较已运行,并发现配置发生了漂移:条目被添加或删除,或者某个条目的设置不同。仅有运行状态的变化不算漂移。仅在使用 --exit-code 时才会这样,因为漂移正是这个工具要找的东西,找到它并不是失败。", + + "switch.query": "用查询语言缩小列表范围。", + "switch.signatures": "读取谁给每个可执行文件签了名,以及 Windows 是否信任它。在整台计算机上需要几秒钟,所以除非被要求,否则是关闭的,而关于签名的查询会自动把它打开。", + "switch.memory": "读取每个运行中条目的进程正在使用什么。默认关闭,因为它是一次测量而不是一项设置:一秒钟之后它就不同了。", + "switch.required-by": "读取停止某一个条目后哪些条目会出问题,直接向 Windows 询问,而不是根据各方的声明推算。每个条目需要一次调用,所以除非被要求,否则是关闭的。show 和 snapshot create 每次都会读取它。", + "switch.follow-network": "让工具完全可以访问这台计算机之外的内容:位于别人共享上的启动路径,以及这台计算机尚未持有的证书。出于安全考虑默认关闭:一个无法访问的共享会耗费二十一秒,并以运行者的身份进行身份验证,而获取证书则是在一次普通列表的过程中连接第三方。没有它时,签名会根据这里已有的内容进行检查,而可能是由于没有去查看而导致的结果,会被报告为未读取,而不是给出判定。", + "switch.force": "对 kill 而言,是不再礼貌地询问而直接结束进程:这样预览显示的是一个步骤,而不是两个。对 snapshot create 而言,是替换已经存在的快照:不是快照的文件绝不会被替换。", + "switch.restart": "对 kill 而言,是在进程消失后,把该条目连同与它共用进程的所有内容一起带回来。", + "switch.stop": "对 start-type 而言,并且只能与 disabled 搭配,在写入设置之后,在同一份计划中停止该条目。启动类型改变的是下一次启动,而不是现在,所以没有它时,设为 disabled 的运行中条目会继续运行。", + "switch.full": "对 show 而言,是同时打印真正为空的字段。无人能读取的字段无论如何都会被打印。", + "switch.components": "对 license 而言,是把通知变成这个可执行文件内部的每个组件及其版本、许可证和来源。这与随下载一同发布的物料清单所含的集合相同,因为两者都由同一份登记表生成。", + "switch.json": "同一份文档,以机器可读的形式输出到标准输出。", + "switch.note": "这份快照是为什么而生成的,保存在文件内部。", + "switch.exit-code": "当配置不同时以代码 5 结束:条目被添加或删除,或者某个条目的设置不同。仅有运行状态的变化不计入。默认关闭,这样只想打印差异的脚本,就不会因为发现了差异而被绊住。", + "switch.live": "把文件与这台计算机的当前状态比较,而不是与第二个文件比较。", + "switch.timing": "读取的每个部分花了多长时间,输出到标准错误。", + "switch.dry-run": "打印计划,不做任何更改。它与实际运行所执行的是同一份计划:真正执行时没有第二条代码路径。", + "switch.dependents": "把会出问题的服务作为独立的步骤放进计划。", + "switch.timeout": "一个步骤在没有进展的情况下最多可以持续多久,超过后就会被放弃,服务每次报告进展时都会重新计时。如果你不另行指定,则为六十秒。一直在报告进展的服务会被一直观察下去,直到完成为止。超时只是观察结束,而不是失败,报告会说明该条目被留在了什么状态。", + + "field.name": "服务名称,即 Windows 用来识别它的那个名称", + "field.display": "显示名称,按这台 Windows 的写法", + "field.description": "条目对自身的描述", + "field.type": "这是哪一类条目", + "field.peruser": "它是否属于 Windows 为每个会话生成副本的按用户服务族之一", + "field.status": "它此刻在做什么", + "field.start": "服务管理器在下次启动时如何处理它", + "field.account": "它运行所用的账户,按服务管理器的写法", + "field.pid": "它所在的进程", + "field.trigger": "启动或停止它的条件", + "field.path": "服务管理器启动的命令行", + "field.file": "它所运行的文件是否在磁盘上", + "field.signed": "Windows 对文件签名的判断,不检查吊销", + "field.publisher": "谁给文件签的名,只有受信任的签名才能证明", + "field.privilege": "条目请求的一项特权", + "field.dependson": "它需要什么", + "field.requiredby": "它停止时什么会出问题", + "field.sidtype": "服务 SID 类型", + "field.sddl": "安全描述符,以文本形式表示", + "field.memory": "它的进程正在使用什么", + "field.mismatch": "相互矛盾的配置与状态", + + "field.open.name": "文本", + "field.open.display": "文本", + "field.open.description": "文本", + "field.open.account": "文本,例如 localsystem", + "field.open.pid": "数字:1234、>1000、100-200", + "field.open.path": "文本", + "field.open.publisher": "文本", + "field.open.privilege": "文本,例如 SeDebugPrivilege", + "field.open.dependson": "服务名称", + "field.open.requiredby": "服务名称", + "field.open.sddl": "文本", + "field.open.memory": "带单位的大小:500MB、>1GB、100MB-1GB", + + "reserved.any": "有值,无论是什么", + "reserved.none": "确实没有值,该条目没有值", + "reserved.unreadable": "工具无法读取这个字段,或者没有读取它,而这是 services.msc 连问都问不出的问题" +} diff --git a/site/i18n/zh-hant.json b/site/i18n/zh-hant.json new file mode 100644 index 0000000..fd1d395 --- /dev/null +++ b/site/i18n/zh-hant.json @@ -0,0 +1,95 @@ +{ + "_translated_from": "1867e30d6665", + "_note": "The site's chrome, and the sentences beside the tables the generator builds out of the program. Every language file carries exactly these keys - a missing one fails the build rather than falling back, because a page half in one language looks finished.", + + "chrome.skip": "跳到內容", + "chrome.nav": "網站", + "chrome.language": "語言", + + "chrome.footer.product": "產品", + "chrome.footer.guides": "指南", + "chrome.footer.project": "專案", + "chrome.footer.source": "GitHub 上的原始碼", + "chrome.footer.releases": "發行版本", + "chrome.footer.issues": "問題追蹤器", + "chrome.footer.security": "回報安全性問題", + "chrome.footer.support": "支持這個專案", + + "chrome.legal.licence": "Copyright (C) 2026 DonislawDev. 依據 GNU General Public License 第 3 版發佈。採用 AI 輔助的工作流程建置。", + "chrome.legal.trademark": "{{product}} 與 Microsoft 沒有關聯,也未獲得 Microsoft 的認可或贊助。Windows 是 Microsoft 公司集團的商標,這個名稱在此處僅用於說明該工具管理的是什麼。", + "chrome.legal.privacy": "本網站不設定 Cookie,不執行指令碼,也不從其他任何地方載入任何內容。", + + "table.head.code": "代碼", + "table.head.meaning": "意義", + "table.head.switch": "選項", + "table.head.what": "作用", + "table.head.where": "適用範圍", + "table.head.field": "欄位", + "table.head.asks": "詢問的內容", + "table.head.values": "值", + + "exit.ok": "完成,一切都到了它該去的地方。", + "exit.runtime": "工具失敗了:由於與工具本身而不是與計畫有關的原因,它無法完成被要求做的事。", + "exit.usage": "命令列有誤。拼錯的命令會得到一個你可能想用的命令的提示。", + "exit.incomplete": "計畫是好的,也執行了,但其中有些內容沒有到達它該去的地方:服務管理員拒絕了,或者工作階段沒有相應的權限。", + "exit.interrupted": "有人手動停止了執行。即使每個步驟都已到達,結果也不是零,這樣包裝指令碼就不會把被中斷的執行當作正常結束。", + "exit.differences": "比較已執行,並發現組態發生了漂移:項目被新增或刪除,或者某個項目的設定不同。僅有執行狀態的變化不算漂移。僅在使用 --exit-code 時才會這樣,因為漂移正是這個工具要找的東西,找到它並不是失敗。", + + "switch.query": "用查詢語言縮小清單範圍。", + "switch.signatures": "讀取誰替每個可執行檔簽章,以及 Windows 是否信任它。在整台電腦上需要幾秒鐘,所以除非被要求,否則是關閉的,而關於簽章的查詢會自動把它開啟。", + "switch.memory": "讀取每個執行中項目的處理程序正在使用什麼。預設關閉,因為它是一次測量而不是一項設定:一秒鐘之後它就不同了。", + "switch.required-by": "讀取停止某一個項目後哪些項目會出問題,直接向 Windows 詢問,而不是根據各方的宣告推算。每個項目需要一次呼叫,所以除非被要求,否則是關閉的。show 和 snapshot create 每次都會讀取它。", + "switch.follow-network": "讓工具完全可以存取這台電腦之外的內容:位於別人共用資料夾上的啟動路徑,以及這台電腦尚未持有的憑證。出於安全考量預設關閉:一個無法存取的共用資料夾會耗費二十一秒,並以執行者的身分進行驗證,而取得憑證則是在一次普通清單的過程中連線第三方。沒有它時,簽章會根據這裡已有的內容進行檢查,而可能是由於沒有去查看而導致的結果,會被回報為未讀取,而不是給出判定。", + "switch.force": "對 kill 而言,是不再禮貌地詢問而直接結束處理程序:這樣預覽顯示的是一個步驟,而不是兩個。對 snapshot create 而言,是取代已經存在的快照:不是快照的檔案絕不會被取代。", + "switch.restart": "對 kill 而言,是在處理程序消失後,把該項目連同與它共用處理程序的所有內容一起帶回來。", + "switch.stop": "對 start-type 而言,並且只能與 disabled 搭配,在寫入設定之後,在同一份計畫中停止該項目。啟動類型改變的是下一次啟動,而不是現在,所以沒有它時,設為 disabled 的執行中項目會繼續執行。", + "switch.full": "對 show 而言,是同時列印真正為空的欄位。無人能讀取的欄位無論如何都會被列印。", + "switch.components": "對 license 而言,是把通知變成這個可執行檔內部的每個元件及其版本、授權和來源。這與隨下載一同發行的物料清單所含的集合相同,因為兩者都由同一份登記表產生。", + "switch.json": "同一份文件,以機器可讀的形式輸出到標準輸出。", + "switch.note": "這份快照是為什麼而產生的,儲存在檔案內部。", + "switch.exit-code": "當組態不同時以代碼 5 結束:項目被新增或刪除,或者某個項目的設定不同。僅有執行狀態的變化不計入。預設關閉,這樣只想列印差異的指令碼,就不會因為發現了差異而被絆住。", + "switch.live": "把檔案與這台電腦的目前狀態比較,而不是與第二個檔案比較。", + "switch.timing": "讀取的每個部分花了多長時間,輸出到標準錯誤。", + "switch.dry-run": "列印計畫,不做任何變更。它與實際執行所執行的是同一份計畫:真正執行時沒有第二條程式碼路徑。", + "switch.dependents": "把會出問題的服務作為獨立的步驟放進計畫。", + "switch.timeout": "一個步驟在沒有進展的情況下最多可以持續多久,超過後就會被放棄,服務每次回報進展時都會重新計時。如果你不另行指定,則為六十秒。一直在回報進展的服務會被一直觀察下去,直到完成為止。逾時只是觀察結束,而不是失敗,報告會說明該項目被留在了什麼狀態。", + + "field.name": "服務名稱,即 Windows 用來識別它的那個名稱", + "field.display": "顯示名稱,依這台 Windows 的寫法", + "field.description": "項目對自身的描述", + "field.type": "這是哪一類項目", + "field.peruser": "它是否屬於 Windows 為每個工作階段產生副本的依使用者服務族之一", + "field.status": "它此刻在做什麼", + "field.start": "服務管理員在下次啟動時如何處理它", + "field.account": "它執行所用的帳戶,依服務管理員的寫法", + "field.pid": "它所在的處理程序", + "field.trigger": "啟動或停止它的條件", + "field.path": "服務管理員啟動的命令列", + "field.file": "它所執行的檔案是否在磁碟上", + "field.signed": "Windows 對檔案簽章的判斷,不檢查撤銷", + "field.publisher": "誰替檔案簽章,只有受信任的簽章才能證明", + "field.privilege": "項目要求的一項特殊權限", + "field.dependson": "它需要什麼", + "field.requiredby": "它停止時什麼會出問題", + "field.sidtype": "服務 SID 類型", + "field.sddl": "安全性描述元,以文字形式表示", + "field.memory": "它的處理程序正在使用什麼", + "field.mismatch": "相互矛盾的組態與狀態", + + "field.open.name": "文字", + "field.open.display": "文字", + "field.open.description": "文字", + "field.open.account": "文字,例如 localsystem", + "field.open.pid": "數字:1234、>1000、100-200", + "field.open.path": "文字", + "field.open.publisher": "文字", + "field.open.privilege": "文字,例如 SeDebugPrivilege", + "field.open.dependson": "服務名稱", + "field.open.requiredby": "服務名稱", + "field.open.sddl": "文字", + "field.open.memory": "帶單位的大小:500MB、>1GB、100MB-1GB", + + "reserved.any": "有值,無論是什麼", + "reserved.none": "確實沒有值,該項目沒有值", + "reserved.unreadable": "工具無法讀取這個欄位,或者沒有讀取它,而這是 services.msc 連問都問不出的問題" +} diff --git a/site/pages/404/cs.html b/site/pages/404/cs.html new file mode 100644 index 0000000..eb4ea52 --- /dev/null +++ b/site/pages/404/cs.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

Tato stránka tu není

+

Adresa neodpovídá ničemu na tomto webu. Nic nebylo smazáno, aby se to stalo - adresy se tu nemění, protože přesunutá stránka by rozbila každý odkaz, který na ni kdy ukazoval.

+ +
+
+ +
+
+

Kvůli čemu lidé obvykle přijdou

+
+

Stažení

Dva samostatné spustitelné soubory, nebo instalační program.

+

Dotazovací jazyk

Každé pole a každá hodnota, podle které lze hledat.

+

Reference CLI

Každý přepínač a každý návratový kód.

+

Snímky a drift

Co se na tomto stroji změnilo od včerejška.

+

Otázky a hranice

Včetně toho, co nástroj z návrhu odmítá.

+

Zdrojový kód

Všechno je na GitHubu pod GPL-3.0.

+
+
+
diff --git a/site/pages/404/id.html b/site/pages/404/id.html new file mode 100644 index 0000000..a6df1e4 --- /dev/null +++ b/site/pages/404/id.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

Halaman itu tidak ada di sini

+

Alamat itu tidak cocok dengan apa pun di situs ini. Tidak ada yang dihapus agar hal itu terjadi - alamat di sini tidak berubah, karena halaman yang dipindahkan akan merusak setiap tautan yang pernah menunjuk ke sana.

+ +
+
+ +
+
+

Apa yang biasanya dicari orang

+
+

Unduh

Dua berkas eksekusi mandiri, atau sebuah installer.

+

Bahasa kueri

Setiap bidang dan setiap nilai yang bisa Anda cari.

+

Referensi CLI

Setiap opsi dan setiap kode keluar.

+

Snapshot dan penyimpangan

Apa yang berubah pada mesin ini sejak kemarin.

+

Pertanyaan dan batasan

Termasuk apa yang sengaja ditolak alat ini.

+

Kode sumber

Semuanya ada di GitHub di bawah GPL-3.0.

+
+
+
diff --git a/site/pages/404/ja.html b/site/pages/404/ja.html new file mode 100644 index 0000000..ad8afee --- /dev/null +++ b/site/pages/404/ja.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

ここにページはありません

+

このアドレスは、このサイトのどこにも一致しません。そうなるように削除したものはありません。ここのアドレスは変更されません。ページを移動すると、そのページを指していたすべてのリンクが壊れてしまうからです。

+ +
+
+ +
+
+

よく探されているもの

+
+

ダウンロード

自己完結型の実行ファイル 2 つ、またはインストーラー。

+

クエリ言語

検索できるすべてのフィールドと値。

+

CLI リファレンス

すべてのオプションと終了コード。

+

スナップショットとドリフト

このマシンで昨日から何が変わったか。

+

質問と制限

設計上ツールが拒否することも含みます。

+

ソースコード

すべて GitHub にあり、GPL-3.0 です。

+
+
+
diff --git a/site/pages/404/ko.html b/site/pages/404/ko.html new file mode 100644 index 0000000..388cc9b --- /dev/null +++ b/site/pages/404/ko.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

여기에는 그런 페이지가 없습니다

+

이 주소는 이 사이트의 어떤 것과도 일치하지 않습니다. 그렇게 되도록 삭제한 것은 없습니다. 이곳의 주소는 바뀌지 않는데, 옮겨진 페이지는 그 페이지를 가리키던 모든 링크를 깨뜨리기 때문입니다.

+ +
+
+ +
+
+

사람들이 보통 찾아오는 것

+
+

다운로드

자체 포함 실행 파일 두 개 또는 설치 프로그램.

+

쿼리 언어

검색할 수 있는 모든 필드와 값.

+

CLI 참조

모든 옵션과 모든 종료 코드.

+

스냅샷과 드리프트

어제 이후 이 컴퓨터에서 무엇이 바뀌었는가.

+

질문과 한계

설계상 도구가 거부하는 것도 포함합니다.

+

소스

모든 것이 GPL-3.0으로 GitHub에 있습니다.

+
+
+
diff --git a/site/pages/404/nl.html b/site/pages/404/nl.html new file mode 100644 index 0000000..7da03d2 --- /dev/null +++ b/site/pages/404/nl.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

Die pagina is er niet

+

Het adres komt met niets op deze site overeen. Er is niets verwijderd om dat te laten gebeuren - adressen veranderen hier niet, omdat een verplaatste pagina elke link zou breken die er ooit naar wees.

+ +
+
+ +
+
+

Waarvoor mensen meestal komen

+
+

Download

Twee zelfstandige uitvoerbare bestanden, of een installatieprogramma.

+

Querytaal

Elk veld en elke waarde waarop u kunt zoeken.

+

CLI-naslag

Elke optie en elke afsluitcode.

+

Momentopnamen en drift

Wat er sinds gisteren op deze machine is veranderd.

+

Vragen en grenzen

Ook wat het hulpmiddel bewust weigert.

+

De broncode

Alles staat op GitHub onder GPL-3.0.

+
+
+
diff --git a/site/pages/404/page.json b/site/pages/404/page.json index b77aa65..560cbc1 100644 --- a/site/pages/404/page.json +++ b/site/pages/404/page.json @@ -10,6 +10,12 @@ "fr": "404", "es": "404", "it": "404", - "pt-br": "404" + "pt-br": "404", + "nl": "404", + "cs": "404", + "ro": "404", + "tr": "404", + "id": "404", + "vi": "404" } } diff --git a/site/pages/404/ro.html b/site/pages/404/ro.html new file mode 100644 index 0000000..0a363e8 --- /dev/null +++ b/site/pages/404/ro.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

Pagina aceasta nu există

+

Adresa nu corespunde la nimic de pe acest site. Nu s-a șters nimic ca să se întâmple asta - adresele de aici nu se schimbă, pentru că o pagină mutată ar strica fiecare link care a indicat vreodată spre ea.

+ +
+
+ +
+
+

Pentru ce vin de obicei oamenii

+
+

Descărcare

Două executabile independente sau un program de instalare.

+

Limbaj de interogare

Fiecare câmp și fiecare valoare după care se poate căuta.

+

Referință CLI

Fiecare opțiune și fiecare cod de ieșire.

+

Instantanee și derivă

Ce s-a schimbat pe această mașină de ieri.

+

Întrebări și limite

Inclusiv ce refuză instrumentul prin construcție.

+

Codul sursă

Totul este pe GitHub sub GPL-3.0.

+
+
+
diff --git a/site/pages/404/ru.html b/site/pages/404/ru.html new file mode 100644 index 0000000..f4e7da9 --- /dev/null +++ b/site/pages/404/ru.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

Такой страницы здесь нет

+

Адрес не соответствует ничему на этом сайте. Ничего не удалялось, чтобы так вышло: адреса здесь не меняются, потому что перенесённая страница сломала бы каждую ссылку, которая на неё когда-либо вела.

+ +
+
+ +
+
+

За чем обычно приходят

+
+

Скачать

Два автономных исполняемых файла или установщик.

+

Язык запросов

Каждое поле и каждое значение, по которым можно искать.

+

Справочник CLI

Каждый параметр и каждый код завершения.

+

Снимки и дрейф

Что изменилось на этой машине со вчерашнего дня.

+

Вопросы и ограничения

В том числе от чего инструмент отказывается по замыслу.

+

Исходный код

Всё на GitHub под GPL-3.0.

+
+
+
diff --git a/site/pages/404/tr.html b/site/pages/404/tr.html new file mode 100644 index 0000000..f522da9 --- /dev/null +++ b/site/pages/404/tr.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

Bu sayfa burada yok

+

Adres bu sitedeki hiçbir şeyle eşleşmiyor. Bunun olması için hiçbir şey silinmedi - buradaki adresler değişmez, çünkü taşınmış bir sayfa ona hiç işaret etmiş her bağlantıyı bozardı.

+ +
+
+ +
+
+

İnsanların genellikle aradıkları

+
+

İndir

İki bağımsız yürütülebilir dosya ya da bir yükleyici.

+

Sorgu dili

Üzerinde arama yapabileceğiniz her alan ve her değer.

+

CLI başvurusu

Her seçenek ve her çıkış kodu.

+

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

Dünden beri bu makinede ne değişti.

+

Sorular ve sınırlar

Aracın tasarım gereği neyi reddettiği dahil.

+

Kaynak kod

Her şey GitHub'da GPL-3.0 altında.

+
+
+
diff --git a/site/pages/404/uk.html b/site/pages/404/uk.html new file mode 100644 index 0000000..1156f1a --- /dev/null +++ b/site/pages/404/uk.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

Такої сторінки тут немає

+

Адреса не відповідає нічому на цьому сайті. Нічого не видалялося, щоб так вийшло: адреси тут не змінюються, бо перенесена сторінка зламала б кожне посилання, що будь-коли на неї вело.

+ +
+
+ +
+
+

Чого зазвичай приходять

+
+

Завантажити

Два автономні виконувані файли або інсталятор.

+

Мова запитів

Кожне поле й кожне значення, за якими можна шукати.

+

Довідник CLI

Кожен параметр і кожен код завершення.

+

Знімки й дрейф

Що змінилося на цій машині від учорашнього дня.

+

Запитання й обмеження

Зокрема й від чого інструмент відмовляється за задумом.

+

Вихідний код

Усе на GitHub за GPL-3.0.

+
+
+
diff --git a/site/pages/404/vi.html b/site/pages/404/vi.html new file mode 100644 index 0000000..ef0fc6d --- /dev/null +++ b/site/pages/404/vi.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

Trang đó không có ở đây

+

Địa chỉ không khớp với bất cứ thứ gì trên trang web này. Không có gì bị xóa để điều đó xảy ra - địa chỉ ở đây không thay đổi, vì một trang bị chuyển đi sẽ làm hỏng mọi liên kết từng trỏ tới nó.

+ +
+
+ +
+
+

Những gì mọi người thường tìm

+
+

Tải xuống

Hai tệp thực thi độc lập, hoặc một trình cài đặt.

+

Ngôn ngữ truy vấn

Mọi trường và mọi giá trị bạn có thể tìm kiếm.

+

Tham chiếu CLI

Mọi tùy chọn và mọi mã thoát.

+

Bản chụp và sai lệch

Điều gì đã thay đổi trên máy này kể từ hôm qua.

+

Câu hỏi và giới hạn

Bao gồm những gì công cụ từ chối theo thiết kế.

+

Mã nguồn

Mọi thứ đều trên GitHub theo GPL-3.0.

+
+
+
diff --git a/site/pages/404/zh-hans.html b/site/pages/404/zh-hans.html new file mode 100644 index 0000000..7a6b696 --- /dev/null +++ b/site/pages/404/zh-hans.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

这里没有这个页面

+

这个地址与本网站上的任何内容都不匹配。并没有删除任何东西才导致这样:这里的地址不会改变,因为页面一旦移动,就会让所有曾经指向它的链接失效。

+ +
+
+ +
+
+

人们通常是为了什么而来

+
+

下载

两个自包含的可执行文件,或一个安装程序。

+

查询语言

你可以搜索的每个字段和取值。

+

CLI 参考

每个选项和每个退出代码。

+

快照与漂移

这台计算机自昨天以来发生了什么变化。

+

问题与局限

包括这个工具在设计上拒绝做什么。

+

源代码

一切都在 GitHub 上,采用 GPL-3.0。

+
+
+
diff --git a/site/pages/404/zh-hant.html b/site/pages/404/zh-hant.html new file mode 100644 index 0000000..1d2bc56 --- /dev/null +++ b/site/pages/404/zh-hant.html @@ -0,0 +1,30 @@ + + + + + +
+
+ 404 +

這裡沒有這個頁面

+

這個位址與本網站上的任何內容都不符。並沒有刪除任何東西才導致這樣:這裡的位址不會改變,因為頁面一旦移動,就會讓所有曾經指向它的連結失效。

+ +
+
+ +
+
+

人們通常是為了什麼而來

+
+

下載

兩個獨立式的可執行檔,或一個安裝程式。

+

查詢語言

你可以搜尋的每個欄位和值。

+

CLI 參考

每個選項和每個結束代碼。

+

快照與漂移

這台電腦自昨天以來發生了什麼變化。

+

問題與限制

包括這個工具在設計上拒絕做什麼。

+

原始碼

一切都在 GitHub 上,採用 GPL-3.0。

+
+
+
diff --git a/site/pages/audit-windows-services/cs.html b/site/pages/audit-windows-services/cs.html new file mode 100644 index 0000000..1ef8b8a --- /dev/null +++ b/site/pages/audit-windows-services/cs.html @@ -0,0 +1,64 @@ + + + + + +
+
+ Průvodce +

Audit služeb Windows

+

Audit není seznam toho, co na stroji je. Je to rozdíl mezi tím, co na stroji je, a tím, co tam mělo být - a druhou polovinu na čisté instalaci Windows nezaznamenává nic.

+
+
+ +
+
+

Tři otázky a co na ně odpovídá

+
+
+

Co se změnilo od sestavení tohoto stroje?

+

Snímek pořízený při nasazení a porovnání se strojem dnes večer. Konfigurace se hlásí odděleně od toho, co se jen spustilo nebo zastavilo, takže jeden změněný typ spouštění nezapadne mezi čtyřiceti službami, které náhodou běží.

+

bws snapshot diff baseline.json --live

+
+
+

Proč se testovací prostředí liší od produkčního?

+

Pořiďte na každém snímek a porovnejte oba soubory - kdekoli, bez přítomnosti kteréhokoli stroje. Soubory nesou název stroje a účet, který je pořídil.

+

bws snapshot diff staging.json production.json

+
+
+

Co tu je, co by tu být nemělo?

+

Dotazy, které najdou tvary, na které stojí za to se podívat: služba, jejíž spustitelný soubor je pryč, nepodepsaná, běžící přesto, že je zakázána, nebo žádající o práva ladění.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

Noční tvar

+
# den, kdy stroj jde do provozu
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# každou noc z naplánované úlohy
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - žádný drift konfigurace
+#   5 - konfigurace se odchýlila a drift.json říká co
+#   3 - proběhlo to a nešlo přečíst všechno, takže odpověď je částečná
+

Návratový kód 5 je to, co z toho dělá audit, a ne zprávu, kterou nikdo nečte: úloha mlčí, dokud se stroj neodchýlí, a v noci, kdy se to stane, je někdo upozorněn.

+

Výchozí stav pořizujte ze sezení se zvýšenými oprávněními. Bez práv správce správce vypisuje méně položek a víc z vypsaných odmítá. Snímek zaznamenává, zda účet, který ho pořídil, byl správce, takže porovnání to může říct, místo aby hlásilo jako odstraněné položky, které nikdo neodstranil - ale výchozí stav, kterému chybí půlka stroje, je pořád výchozí stav, kterému chybí půlka stroje.

+
+
+ +
+
+

Co snímek stojí jako důkaz

+ + Jak fungují snímky a porovnání +
+
diff --git a/site/pages/audit-windows-services/id.html b/site/pages/audit-windows-services/id.html new file mode 100644 index 0000000..26dcfd3 --- /dev/null +++ b/site/pages/audit-windows-services/id.html @@ -0,0 +1,64 @@ + + + + + +
+
+ Panduan +

Mengaudit layanan Windows

+

Audit bukan daftar apa yang ada di mesin. Audit adalah selisih antara apa yang ada di mesin dan apa yang seharusnya ada - dan tidak ada apa pun pada Windows standar yang mencatat bagian kedua.

+
+
+ +
+
+

Tiga pertanyaan, dan apa yang menjawabnya

+
+
+

Apa yang berubah sejak mesin ini dibangun?

+

Snapshot yang diambil saat penerapan, dan perbandingan dengan mesin malam ini. Konfigurasi dilaporkan terpisah dari apa yang sekadar mulai atau berhenti, sehingga satu tipe startup yang diubah seseorang tidak terkubur di bawah empat puluh layanan yang kebetulan berjalan.

+

bws snapshot diff baseline.json --live

+
+
+

Mengapa staging berbeda dari produksi?

+

Ambil snapshot di masing-masing dan bandingkan kedua berkas - di mana saja, tanpa kehadiran salah satu mesin. Berkas membawa nama mesin dan akun yang mengambilnya.

+

bws snapshot diff staging.json production.json

+
+
+

Apa yang ada di sini yang seharusnya tidak ada?

+

Kueri yang menemukan bentuk-bentuk yang layak dilihat: layanan yang berkas eksekusinya hilang, yang tidak bertanda tangan, yang berjalan padahal dinonaktifkan, yang meminta hak debug.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

Bentuk malam hari

+
# hari mesin mulai beroperasi
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# setiap malam, dari tugas terjadwal
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - tidak ada penyimpangan konfigurasi
+#   5 - konfigurasi menyimpang, dan drift.json menyatakan apa
+#   3 - berjalan tetapi tidak bisa membaca semuanya, jadi jawabannya sebagian
+

Kode keluar 5 adalah yang menjadikan ini audit dan bukan laporan yang tidak dibaca siapa pun: tugas itu diam sampai mesin menyimpang, dan pada malam hal itu terjadi, seseorang dipanggil.

+

Ambil acuan dasar dari sesi dengan hak tinggi. Tanpa hak administrator, manajer mencantumkan lebih sedikit entri dan menolak lebih banyak dari yang dicantumkannya. Snapshot mencatat apakah akun yang mengambilnya adalah administrator, sehingga perbandingan dapat menyatakannya alih-alih melaporkan entri sebagai dihapus padahal tidak ada yang menghapusnya - tetapi acuan dasar yang kehilangan separuh mesin tetaplah acuan dasar yang kehilangan separuh mesin.

+
+
+ +
+
+

Apa nilai snapshot sebagai bukti

+ + Cara kerja snapshot dan perbandingan +
+
diff --git a/site/pages/audit-windows-services/ja.html b/site/pages/audit-windows-services/ja.html new file mode 100644 index 0000000..80a3e4e --- /dev/null +++ b/site/pages/audit-windows-services/ja.html @@ -0,0 +1,64 @@ + + + + + +
+
+ ガイド +

Windows サービスの監査

+

監査とは、マシンにあるものの一覧ではありません。マシンにあるものと、あるはずだったものとの差です。標準の Windows には、後半を記録するものが何もありません。

+
+
+ +
+
+

3 つの質問と、それに答えるもの

+
+
+

このマシンが構築されてから、何が変わったか。

+

デプロイ時に取ったスナップショットと、今夜のマシンとの差分です。構成は、単に開始や停止をしただけのものとは分けて報告されるので、誰かが変更した 1 つのスタートアップの種類が、たまたま実行されている 40 個のサービスの下に埋もれません。

+

bws snapshot diff baseline.json --live

+
+
+

ステージング環境は、なぜ本番環境と違うのか。

+

それぞれでスナップショットを取り、2 つのファイルの差分を取ります。どこでも、どちらのマシンもその場に必要ありません。ファイルには、マシン名と、取得したアカウントが入っています。

+

bws snapshot diff staging.json production.json

+
+
+

ここにあるべきでないものは何か。

+

見る価値のある形を見つけるクエリです。実行ファイルがなくなったサービス、署名のないもの、無効なのに実行されているもの、デバッグ権限を要求するもの。

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

夜間実行の形

+
# マシンが稼働を開始する日
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 毎晩、スケジュールされたタスクから
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 構成のドリフトなし
+#   5 - 構成がドリフトした。drift.json に内容が書かれる
+#   3 - 実行されたが、すべてを読み取れなかった。そのため答えは部分的
+

終了コード 5 があることで、これは誰も読まないレポートではなく、監査になります。タスクはマシンがドリフトするまで静かで、ドリフトした夜に誰かが呼び出されます。

+

ベースラインは、昇格したセッションから取得してください。管理者権限がないと、マネージャーが一覧するエントリは少なくなり、一覧したもののうち拒否されるものが増えます。スナップショットには、取得したアカウントが管理者だったかどうかが記録されるので、誰も削除していないエントリが削除されたと報告する代わりに、比較がそのことを伝えられます。それでも、マシンの半分が欠けたベースラインは、マシンの半分が欠けたベースラインのままです。

+
+
+ +
+
+

スナップショットは証拠としてどれだけの価値があるか

+ + スナップショットと差分の仕組み +
+
diff --git a/site/pages/audit-windows-services/ko.html b/site/pages/audit-windows-services/ko.html new file mode 100644 index 0000000..7453260 --- /dev/null +++ b/site/pages/audit-windows-services/ko.html @@ -0,0 +1,64 @@ + + + + + +
+
+ 가이드 +

Windows 서비스 감사

+

감사는 컴퓨터에 있는 것의 목록이 아닙니다. 컴퓨터에 있는 것과 있어야 했던 것의 차이이며, 기본 Windows에는 뒤쪽 절반을 기록하는 것이 없습니다.

+
+
+ +
+
+

세 가지 질문과 그에 답하는 것

+
+
+

이 컴퓨터를 구축한 이후 무엇이 바뀌었는가?

+

배포할 때 만든 스냅샷과, 오늘 밤 컴퓨터와의 차이입니다. 구성은 단순히 시작되거나 중지된 것과 따로 보고되므로, 누군가 바꾼 시작 유형 하나가 우연히 실행 중인 서비스 마흔 개 아래에 묻히지 않습니다.

+

bws snapshot diff baseline.json --live

+
+
+

스테이징 환경은 왜 운영 환경과 다른가?

+

각각에서 스냅샷을 만들고 두 파일의 차이를 보세요. 어디서든, 어느 컴퓨터도 그 자리에 없어도 됩니다. 파일에는 컴퓨터 이름과 그것을 만든 계정이 들어 있습니다.

+

bws snapshot diff staging.json production.json

+
+
+

여기에 있으면 안 되는 것은 무엇인가?

+

살펴볼 만한 형태를 찾는 쿼리입니다. 실행 파일이 사라진 서비스, 서명되지 않은 서비스, 사용 안 함인데 실행 중인 서비스, 디버그 권한을 요청하는 서비스.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

야간 실행의 형태

+
# 컴퓨터가 운영에 들어가는 날
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 매일 밤, 예약 작업에서
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 구성 드리프트 없음
+#   5 - 구성이 드리프트했으며, drift.json에 무엇인지 나옴
+#   3 - 실행되었지만 모든 것을 읽지 못했으므로 답이 부분적임
+

종료 코드 5가 이것을 아무도 읽지 않는 보고서가 아니라 감사로 만듭니다. 작업은 컴퓨터가 드리프트할 때까지 조용하며, 드리프트한 밤에 누군가 호출됩니다.

+

기준선은 상승된 세션에서 만드세요. 관리자 권한이 없으면 서비스 관리자가 나열하는 항목이 더 적고, 나열한 것 중 더 많은 부분을 거부합니다. 스냅샷은 그것을 만든 계정이 관리자였는지 기록하므로, 아무도 제거하지 않은 항목이 제거되었다고 보고하는 대신 비교가 그 사실을 알려 줄 수 있습니다. 그래도 컴퓨터의 절반이 빠진 기준선은 여전히 컴퓨터의 절반이 빠진 기준선입니다.

+
+
+ +
+
+

스냅샷이 증거로서 가지는 가치

+ + 스냅샷과 차이의 동작 방식 +
+
diff --git a/site/pages/audit-windows-services/nl.html b/site/pages/audit-windows-services/nl.html new file mode 100644 index 0000000..79aa552 --- /dev/null +++ b/site/pages/audit-windows-services/nl.html @@ -0,0 +1,64 @@ + + + + + +
+
+ Gids +

Windows-services controleren

+

Een audit is geen lijst van wat er op de machine staat. Het is het verschil tussen wat er op de machine staat en wat er hoorde te staan - en niets op een gewone Windows legt de tweede helft vast.

+
+
+ +
+
+

Drie vragen, en wat ze beantwoordt

+
+
+

Wat is er veranderd sinds deze machine werd gebouwd?

+

Een momentopname bij de uitrol, en vanavond een vergelijking met de machine. Configuratie wordt los gemeld van wat alleen is gestart of gestopt, zodat het ene opstarttype dat iemand heeft gewijzigd niet wordt begraven onder veertig services die toevallig draaien.

+

bws snapshot diff baseline.json --live

+
+
+

Waarom verschilt acceptatie van productie?

+

Maak op elk een momentopname en vergelijk de twee bestanden - overal, zonder dat een van beide machines aanwezig is. De bestanden dragen de naam van de machine en het account dat ze maakte.

+

bws snapshot diff staging.json production.json

+
+
+

Wat staat hier dat er niet hoort te staan?

+

Queries die de vormen vinden die het bekijken waard zijn: een service waarvan het uitvoerbare bestand weg is, een die niet is ondertekend, een die draait terwijl hij is uitgeschakeld, een die om foutopsporingsrechten vraagt.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

De nachtelijke vorm

+
# de dag dat de machine in gebruik gaat
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# elke nacht, vanuit een geplande taak
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - geen configuratiedrift
+#   5 - de configuratie is afgedreven, en drift.json zegt wat
+#   3 - het draaide en kon niet alles lezen, dus het antwoord is gedeeltelijk
+

Afsluitcode 5 is wat dit tot een audit maakt in plaats van een rapport dat niemand leest: de taak zwijgt tot de machine afdrijft, en de nacht dat dat gebeurt wordt iemand gewaarschuwd.

+

Maak de basislijn vanuit een sessie met verhoogde rechten. Zonder beheerdersrechten toont de beheerder minder items en weigert hij er meer van wat hij toont. De momentopname legt vast of het account dat hem maakte een beheerder was, zodat de vergelijking dat kan zeggen in plaats van items als verwijderd te melden die niemand heeft verwijderd - maar een basislijn waarvan de helft van de machine ontbreekt, blijft een basislijn waarvan de helft van de machine ontbreekt.

+
+
+ +
+
+

Wat een momentopname waard is als bewijs

+ + Hoe momentopnamen en vergelijkingen werken +
+
diff --git a/site/pages/audit-windows-services/page.json b/site/pages/audit-windows-services/page.json index e5aac2a..31d9cdc 100644 --- a/site/pages/audit-windows-services/page.json +++ b/site/pages/audit-windows-services/page.json @@ -11,6 +11,12 @@ "fr": "auditer-les-services-windows", "es": "auditar-servicios-de-windows", "it": "audit-dei-servizi-windows", - "pt-br": "auditar-servicos-do-windows" + "pt-br": "auditar-servicos-do-windows", + "nl": "windows-services-controleren", + "cs": "audit-sluzeb-windows", + "ro": "auditarea-serviciilor-windows", + "tr": "windows-hizmetlerini-denetleme", + "id": "audit-layanan-windows", + "vi": "kiem-toan-dich-vu-windows" } } diff --git a/site/pages/audit-windows-services/ro.html b/site/pages/audit-windows-services/ro.html new file mode 100644 index 0000000..2432c4c --- /dev/null +++ b/site/pages/audit-windows-services/ro.html @@ -0,0 +1,64 @@ + + + + + +
+
+ Ghid +

Auditarea serviciilor Windows

+

Un audit nu este o listă a ceea ce se află pe mașină. Este diferența dintre ce se află pe mașină și ce trebuia să se afle - iar a doua jumătate nu o înregistrează nimic pe un Windows obișnuit.

+
+
+ +
+
+

Trei întrebări și ce le răspunde

+
+
+

Ce s-a schimbat de când a fost construită această mașină?

+

Un instantaneu făcut la implementare și o comparație cu mașina în această seară. Configurația este raportată separat de ceea ce doar a pornit sau s-a oprit, așa că singurul tip de pornire pe care l-a schimbat cineva nu este îngropat sub patruzeci de servicii care se întâmplă să ruleze.

+

bws snapshot diff baseline.json --live

+
+
+

De ce diferă mediul de testare de producție?

+

Faceți un instantaneu pe fiecare și comparați cele două fișiere - oriunde, fără ca vreuna dintre mașini să fie prezentă. Fișierele poartă numele mașinii și contul care le-a făcut.

+

bws snapshot diff staging.json production.json

+
+
+

Ce se află aici și n-ar trebui?

+

Interogări care găsesc formele care merită privite: un serviciu al cărui executabil a dispărut, unul nesemnat, unul care rulează deși este dezactivat, unul care cere drepturi de depanare.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

Forma nocturnă

+
# ziua în care mașina intră în serviciu
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# în fiecare noapte, dintr-o sarcină programată
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - nicio derivă de configurație
+#   5 - configurația a derivat, iar drift.json spune ce
+#   3 - a rulat și n-a putut citi totul, deci răspunsul este parțial
+

Codul de ieșire 5 este ceea ce face din asta un audit și nu un raport pe care nu-l citește nimeni: sarcina tace până când mașina derivă, iar în noaptea în care se întâmplă, cineva este alertat.

+

Luați starea de referință dintr-o sesiune cu drepturi ridicate. Fără drepturi de administrator, managerul listează mai puține intrări și refuză mai multe din ce listează. Instantaneul consemnează dacă contul care l-a făcut era administrator, astfel încât comparația poate spune asta în loc să raporteze ca eliminate intrări pe care nimeni nu le-a eliminat - dar o stare de referință căreia îi lipsește jumătate din mașină rămâne o stare de referință căreia îi lipsește jumătate din mașină.

+
+
+ +
+
+

Cât valorează un instantaneu ca dovadă

+ + Cum funcționează instantaneele și comparațiile +
+
diff --git a/site/pages/audit-windows-services/ru.html b/site/pages/audit-windows-services/ru.html new file mode 100644 index 0000000..e767495 --- /dev/null +++ b/site/pages/audit-windows-services/ru.html @@ -0,0 +1,64 @@ + + + + + +
+
+ Руководство +

Аудит служб Windows

+

Аудит - это не список того, что есть на машине. Это разница между тем, что есть на машине, и тем, что должно было быть, - а вторую половину на обычной Windows не записывает ничто.

+
+
+ +
+
+

Три вопроса и то, что на них отвечает

+
+
+

Что изменилось с тех пор, как эту машину построили?

+

Снимок, сделанный при развёртывании, и сравнение с машиной сегодня вечером. Конфигурация сообщается отдельно от того, что просто запустилось или остановилось, поэтому единственный тип запуска, который кто-то изменил, не тонет под сорока службами, которые случайно работают.

+

bws snapshot diff baseline.json --live

+
+
+

Почему тестовая среда отличается от рабочей?

+

Сделайте снимок на каждой и сравните два файла - где угодно, без присутствия обеих машин. Файлы несут имя машины и учётную запись, которая их сделала.

+

bws snapshot diff staging.json production.json

+
+
+

Что здесь есть такого, чего быть не должно?

+

Запросы, находящие формы, на которые стоит взглянуть: служба, чей исполняемый файл пропал, неподписанная, работающая, хотя отключена, просящая права отладки.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

Ночная форма

+
# день, когда машина вводится в эксплуатацию
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# каждую ночь, из запланированной задачи
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - дрейфа конфигурации нет
+#   5 - конфигурация ушла в дрейф, и drift.json говорит в чём
+#   3 - выполнилось и не смогло прочитать всё, поэтому ответ частичный
+

Код завершения 5 - это то, что превращает это в аудит, а не в отчёт, который никто не читает: задача молчит, пока машина не уйдёт в дрейф, а в ночь, когда это случится, кого-то зовут.

+

Снимайте эталонное состояние из сеанса с повышенными правами. Без прав администратора диспетчер перечисляет меньше записей и отказывает в большем числе из перечисленных. Снимок записывает, был ли администратором сделавший его аккаунт, чтобы сравнение могло сказать об этом, а не сообщать как удалённые записи, которых никто не удалял, - но эталонное состояние, в котором не хватает половины машины, остаётся эталонным состоянием, в котором не хватает половины машины.

+
+
+ +
+
+

Чего стоит снимок как доказательство

+ + Как работают снимки и сравнения +
+
diff --git a/site/pages/audit-windows-services/tr.html b/site/pages/audit-windows-services/tr.html new file mode 100644 index 0000000..8bb8af6 --- /dev/null +++ b/site/pages/audit-windows-services/tr.html @@ -0,0 +1,64 @@ + + + + + +
+
+ Kılavuz +

Windows hizmetlerini denetleme

+

Bir denetim, makinede olanların listesi değildir. Makinede olanla olması gerekenin arasındaki farktır - ve düz bir Windows'ta ikinci yarıyı hiçbir şey kaydetmez.

+
+
+ +
+
+

Üç soru ve onları yanıtlayan

+
+
+

Bu makine kurulduğundan beri ne değişti?

+

Dağıtım sırasında alınmış bir anlık görüntü ve bu akşam makineyle bir karşılaştırma. Yapılandırma, yalnızca başlayan ya da duran şeyden ayrı bildirilir; böylece birinin değiştirdiği tek başlangıç türü, tesadüfen çalışan kırk hizmetin altında gömülmez.

+

bws snapshot diff baseline.json --live

+
+
+

Test ortamı neden üretimden farklı?

+

Her birinde bir anlık görüntü alın ve iki dosyayı karşılaştırın - herhangi bir yerde, makinelerin hiçbiri orada olmadan. Dosyalar makinenin adını ve onları alan hesabı taşır.

+

bws snapshot diff staging.json production.json

+
+
+

Burada olmaması gereken ne var?

+

Bakmaya değer biçimleri bulan sorgular: yürütülebilir dosyası kaybolmuş bir hizmet, imzasız biri, devre dışıyken çalışan biri, hata ayıklama hakları isteyen biri.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

Gecelik biçim

+
# 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
+

5 çıkış kodu, bunu kimsenin okumadığı bir rapor değil bir denetim yapan şeydir: görev, makine sapana kadar sessizdir ve sapma gecesi birisi uyarılır.

+

Temel durumu yükseltilmiş bir oturumdan alın. Yönetici hakları olmadan yönetici daha az öğe listeler ve listelediklerinin daha fazlasını reddeder. Anlık görüntü, onu alan hesabın yönetici olup olmadığını kaydeder; böylece karşılaştırma, kimsenin kaldırmadığı öğeleri kaldırılmış olarak bildirmek yerine bunu söyleyebilir - ama yarısı eksik bir makinenin temel durumu, yine de yarısı eksik bir makinenin temel durumudur.

+
+
+ +
+
+

Bir anlık görüntünün kanıt olarak değeri

+ + Anlık görüntüler ve karşılaştırmalar nasıl çalışır +
+
diff --git a/site/pages/audit-windows-services/uk.html b/site/pages/audit-windows-services/uk.html new file mode 100644 index 0000000..477a34b --- /dev/null +++ b/site/pages/audit-windows-services/uk.html @@ -0,0 +1,64 @@ + + + + + +
+
+ Посібник +

Аудит служб Windows

+

Аудит - це не список того, що є на машині. Це різниця між тим, що є на машині, і тим, що мало бути, - і нічого в стандартній Windows не записує другої половини.

+
+
+ +
+
+

Три запитання і те, що на них відповідає

+
+
+

Що змінилося від часу, коли цю машину збудували?

+

Знімок, знятий під час розгортання, і порівняння з машиною сьогодні вночі. Конфігурація повідомляється окремо від того, що просто запустилося чи зупинилося, тож єдиний тип запуску, який хтось змінив, не тоне під сорока службами, що випадково працюють.

+

bws snapshot diff baseline.json --live

+
+
+

Чому тестове середовище відрізняється від робочого?

+

Зробіть знімок на кожному й порівняйте два файли - будь-де, без присутності жодної з машин. Файли несуть ім'я машини та обліковий запис, що їх зробив.

+

bws snapshot diff staging.json production.json

+
+
+

Що тут є такого, чого не мало б бути?

+

Запити, що знаходять форми, на які варто подивитися: служба, чий виконуваний файл зник, та, що не підписана, та, що працює, хоча вимкнена, та, що просить права налагодження.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

Нічна форма

+
# день, коли машина вводиться в експлуатацію
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# щоночі, із запланованої задачі
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - немає дрейфу конфігурації
+#   5 - конфігурація пішла в дрейф, і drift.json каже, що саме
+#   3 - виконалося й не змогло прочитати все, тож відповідь часткова
+

Код завершення 5 - це те, що робить це аудитом, а не звітом, який ніхто не читає: задача мовчить, доки машина не піде в дрейф, а тієї ночі, коли піде, когось покличуть.

+

Знімайте еталонний стан із сеансу з підвищеними правами. Без прав адміністратора диспетчер перелічує менше записів і частіше відмовляє щодо того, що перелічує. Знімок записує, чи був обліковий запис, що його зробив, адміністратором, тож порівняння може про це сказати, а не повідомляти про видалення записів, яких ніхто не видаляв, - але еталонний стан без половини машини все одно еталонний стан без половини машини.

+
+
+ +
+
+

Чого знімок вартий як доказ

+ + Як працюють знімки й порівняння +
+
diff --git a/site/pages/audit-windows-services/vi.html b/site/pages/audit-windows-services/vi.html new file mode 100644 index 0000000..f6ec60f --- /dev/null +++ b/site/pages/audit-windows-services/vi.html @@ -0,0 +1,64 @@ + + + + + +
+
+ Hướng dẫn +

Kiểm toán dịch vụ Windows

+

Một cuộc kiểm toán không phải danh sách những gì có trên máy. Nó là hiệu giữa những gì có trên máy và những gì lẽ ra phải có - và không có gì trên một Windows nguyên bản ghi lại nửa thứ hai.

+
+
+ +
+
+

Ba câu hỏi, và điều gì trả lời chúng

+
+
+

Điều gì đã thay đổi kể từ khi máy này được dựng?

+

Một bản chụp lấy lúc triển khai, và một phép so sánh với máy tối nay. Cấu hình được báo riêng với những gì chỉ vừa khởi động hoặc dừng, nên một kiểu khởi động ai đó đã đổi không bị chôn dưới bốn mươi dịch vụ tình cờ đang chạy.

+

bws snapshot diff baseline.json --live

+
+
+

Vì sao môi trường thử nghiệm khác môi trường sản xuất?

+

Chụp một bản trên mỗi môi trường và so sánh hai tệp - ở bất cứ đâu, không cần máy nào có mặt. Các tệp mang tên máy và tài khoản đã chụp chúng.

+

bws snapshot diff staging.json production.json

+
+
+

Có gì ở đây mà lẽ ra không nên có?

+

Các truy vấn tìm ra những dạng đáng xem: một dịch vụ có tệp thực thi đã mất, một dịch vụ chưa ký, một dịch vụ đang chạy dù bị vô hiệu hóa, một dịch vụ yêu cầu quyền gỡ lỗi.

+

file:missing, signed:no, mismatch:running

+
+
+
+
+ +
+
+

Dạng chạy hằng đêm

+
# ngày máy bắt đầu đưa vào hoạt động
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# mỗi đêm, từ một tác vụ theo lịch
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - không có sai lệch cấu hình
+#   5 - cấu hình đã lệch, và drift.json nói là gì
+#   3 - đã chạy và không đọc được hết, nên câu trả lời chỉ là một phần
+

Mã thoát 5 là điều biến việc này thành một cuộc kiểm toán thay vì một báo cáo không ai đọc: tác vụ im lặng cho đến khi máy lệch, và vào đêm nó lệch, có người được gọi.

+

Lấy mốc chuẩn từ một phiên nâng quyền. Khi không có quyền quản trị, trình quản lý liệt kê ít mục hơn và từ chối nhiều hơn những gì nó liệt kê. Bản chụp ghi lại tài khoản đã chụp nó có phải quản trị viên không, nên phép so sánh có thể nói điều đó thay vì báo các mục là bị xóa trong khi không ai xóa - nhưng một mốc chuẩn thiếu nửa cái máy vẫn là một mốc chuẩn thiếu nửa cái máy.

+
+
+ +
+
+

Một bản chụp đáng giá bao nhiêu làm bằng chứng

+ + Bản chụp và phép so sánh hoạt động ra sao +
+
diff --git a/site/pages/audit-windows-services/zh-hans.html b/site/pages/audit-windows-services/zh-hans.html new file mode 100644 index 0000000..0875c04 --- /dev/null +++ b/site/pages/audit-windows-services/zh-hans.html @@ -0,0 +1,64 @@ + + + + + +
+
+ 指南 +

审计 Windows 服务

+

审计不是对计算机上现有内容的罗列。它是计算机上现有内容与本应存在的内容之间的差异,而标准的 Windows 里没有任何东西记录后半部分。

+
+
+ +
+
+

三个问题,以及谁来回答

+
+
+

自这台计算机构建以来发生了什么变化?

+

部署时生成的快照,与今晚这台计算机的差异对比。配置与仅仅是启动或停止的内容分开报告,所以那个被某人更改的启动类型,不会淹没在四十个恰好在运行的服务之下。

+

bws snapshot diff baseline.json --live

+
+
+

为什么暂存环境与生产环境不同?

+

在各自上生成一个快照,然后对比这两个文件:在任何地方都行,不需要任何一台计算机在场。文件中带有计算机名称和生成它的账户。

+

bws snapshot diff staging.json production.json

+
+
+

这里有什么不该有的东西?

+

找出值得一看的形态的查询:可执行文件已丢失的服务、未签名的服务、已禁用却仍在运行的服务、请求调试权限的服务。

+

file:missing、signed:no、mismatch:running

+
+
+
+
+ +
+
+

夜间的形态

+
# 计算机投入使用的那一天
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 每晚,通过计划任务
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 没有配置漂移
+#   5 - 配置发生了漂移,drift.json 会说明具体内容
+#   3 - 已运行但无法读取全部内容,因此答案是部分的
+

退出代码 5 使它成为一次审计,而不是一份没人读的报告:任务在计算机发生漂移之前保持安静,而发生漂移的那一夜,会有人收到通知。

+

请从提升权限的会话生成基线。没有管理员权限时,服务管理器列出的条目更少,对所列条目拒绝的操作更多。快照会记录生成它的账户是否是管理员,因此比较结果可以说明这一点,而不是把没人删除过的条目报告为已删除,但缺了一半计算机的基线,仍然是缺了一半计算机的基线。

+
+
+ +
+
+

快照作为证据的价值

+ + 快照与差异的工作原理 +
+
diff --git a/site/pages/audit-windows-services/zh-hant.html b/site/pages/audit-windows-services/zh-hant.html new file mode 100644 index 0000000..38c0e24 --- /dev/null +++ b/site/pages/audit-windows-services/zh-hant.html @@ -0,0 +1,64 @@ + + + + + +
+
+ 指南 +

稽核 Windows 服務

+

稽核不是對電腦上現有內容的羅列。它是電腦上現有內容與本應存在的內容之間的差異,而標準的 Windows 裡沒有任何東西記錄後半部分。

+
+
+ +
+
+

三個問題,以及誰來回答

+
+
+

自這台電腦建置以來發生了什麼變化?

+

部署時產生的快照,與今晚這台電腦的差異比較。組態與僅僅是啟動或停止的內容分開回報,所以那個被某人變更的啟動類型,不會淹沒在四十個恰好在執行的服務之下。

+

bws snapshot diff baseline.json --live

+
+
+

為什麼預備環境與正式環境不同?

+

在各自上產生一個快照,然後比較這兩個檔案:在任何地方都行,不需要任何一台電腦在場。檔案中帶有電腦名稱和產生它的帳戶。

+

bws snapshot diff staging.json production.json

+
+
+

這裡有什麼不該有的東西?

+

找出值得一看的形態的查詢:可執行檔已遺失的服務、未簽章的服務、已停用卻仍在執行的服務、要求偵錯權限的服務。

+

file:missing、signed:no、mismatch:running

+
+
+
+
+ +
+
+

夜間的形態

+
# 電腦投入使用的那一天
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 每晚,透過排程工作
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 沒有組態漂移
+#   5 - 組態發生了漂移,drift.json 會說明具體內容
+#   3 - 已執行但無法讀取全部內容,因此答案是部分的
+

結束代碼 5 使它成為一次稽核,而不是一份沒人讀的報告:工作在電腦發生漂移之前保持安靜,而發生漂移的那一夜,會有人收到通知。

+

請從提升權限的工作階段產生基準。沒有系統管理員權限時,服務管理員列出的項目更少,對所列項目拒絕的動作更多。快照會記錄產生它的帳戶是否是系統管理員,因此比較結果可以說明這一點,而不是把沒人刪除過的項目回報為已刪除,但缺了一半電腦的基準,仍然是缺了一半電腦的基準。

+
+
+ +
+
+

快照作為證據的價值

+ + 快照與差異的運作方式 +
+
diff --git a/site/pages/cli-reference/cs.html b/site/pages/cli-reference/cs.html new file mode 100644 index 0000000..64ac096 --- /dev/null +++ b/site/pages/cli-reference/cs.html @@ -0,0 +1,193 @@ + + + + + + + +
+
+ Reference +

Reference příkazového řádku

+

Každý příkaz, každý přepínač a každý návratový kód bws, verze {{version}}. Směrodatná je bws --help a ta je delší - tato stránka je tentýž povrch, rozložený tak, aby se dal číst.

+
+
+ +
+
+

Příkazy

+

Jedenáct příkazů. snapshot je podstatné jméno a za sebou bere slovo. tool je také podstatné jméno a samotné vypíše nástroje.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

Špatně napsaný příkaz dostane nabídku toho, který jste pravděpodobně měli na mysli, a běh skončí kódem 2, místo aby udělal něco blízkého tomu, co jste chtěli.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

Co dělá který příkaz

+
+
+

list a show

+

list je celý stroj, zúžený pomocí --query. show je jedna položka se vším, co je o ní známo - podpis, privilegia, popisovač zabezpečení a paměť, vše čtené pokaždé, protože u jedné položky to stojí asi šedesát milisekund, zatímco u celého stroje vteřinu. Pole, která jsou opravdu prázdná, se vynechají, pokud nezadáte --full. Pole, které nikdo nemohl přečíst, se vypíše vždy, protože jeho vynechání by vypadalo jako odpověď.

+
+
+

stop, start a restart

+

Každý sestaví plán a provede ho. --dry-run vypíše plán a nic nezmění, --dependents do něj zařadí služby, které by se rozbily, jako samostatné kroky a --timeout říká, jak dlouho smí jeden krok zůstat bez pokroku. Ovladače se odmítají, ne zkoušejí, protože zastavení ovladače jádra často nelze vrátit bez restartu.

+
+
+

kill - pro službu, která se nechce zastavit

+

Požádá službu o zastavení a proces za ní ukončí, jen když to nezabere, takže položka, která se zastaví sama, se nikdy neukončí. Ukončení procesu vezme s sebou každou další službu žijící v tomto procesu, ať se předtím zastavila, nebo ne, a náhled je pojmenuje a pojmenuje proces číslem. --force přeskočí zdvořilý krok a náhled pak ukazuje jeden krok místo dvou. --restart potom všechno vrátí.

+

Windows tuto myšlenku píše jinak. --force u Stop-Service znamená "i když na tom něco závisí", což je to, co zde dělá --dependents. Proto je tohle samostatný příkaz, a ne přepínač u stop.

+
+
+

start-type - nastavení, ne pohyb

+

Říká, co správce udělá s položkou při příštím startu, a bez --stop nic nepřesouvá: běžící položka běží dál, zastavená zůstane zastavená a plán to říká. disabled je ten, u kterého se vyplatí zastavit, protože správci zabrání položku vůbec spustit, včetně spuštění na vyžádání kvůli něčemu jinému, co ji potřebuje. delayed je automatické, spuštěné o něco později než ostatní automatické položky - slovo, na které se v dotazu ptá start:delayed - a Windows je odmítne u položky ve skupině pořadí načítání, což plán řekne dřív, než se cokoli stane. Každý ze čtyř zapíše, zda položka startuje pozdě, stejně jako sc.exe. --stop, jen vedle disabled, zastaví položku ve stejném plánu, jakmile je nastavení zapsáno.

+
+
+

snapshot create a snapshot diff

+

create vždy čte podpisy a hashe, protože snímek se uchovává a porovnává později a snímek bez nich by se při porovnání se snímkem s nimi tvářil, jako by se stroj změnil. diff říká, co se změnilo od prvního souboru ke druhému, nebo od souboru k tomuto stroji s --live. Stránka o snímcích má formát a úvahy za ním.

+
+
+

history - kdo to změnil, ze systémového protokolu

+

Změny typu spouštění a instalace ze systémového protokolu, nejnovější první, s účtem, který Windows zaznamenal. První řádek říká, jak daleko protokol sahá a zda byl vymazán, protože historie je tak dlouhá jako protokol. S názvem jde o změny typu spouštění dané služby - instalace se vypisují jen bez názvu, protože Windows zaznamenává instalaci pod zobrazovaným názvem a nikdy pod názvem služby. Účet se jmenuje tam, kde ho tento stroj umí pojmenovat sám, a jinak se ukáže jako jeho SID, a typy spouštění přicházejí slovy, jak je Windows zapsal.

+
+
+

tool - hotové odpovědi na běžné problémy

+

Tytéž nástroje, které okno ukazuje na kartě Tools. bws tool je vypíše a bws tool fix vypíše rychlé opravy: printer, sound, indexing a search, každá je restart jedné služby Windows spolu s tím, co na ní závisí, zvolená proto, že ji navrhují vlastní stránky Microsoftu k řešení potíží. bws tool fix printer je přesně bws restart Spooler --dependents - týž plán, týž výstup a tytéž návratové kódy - a jako každý zdejší příkaz, který něco mění, se předem neptá, takže --dry-run je způsob, jak se podívat, než se spustí.

+
+
+

license - co je uvnitř staženého souboru

+

Nečte vůbec nic - žádného správce služeb, žádný disk, žádnou síť - a odpovídá z registru zkompilovaného do spustitelného souboru. --components změní upozornění na každou součást s její verzí, licencí a původem. Stejná sada, jakou nese soupis součástí zveřejněný vedle stažení, protože oba vznikají z jednoho registru, a důvod, proč za to stojí: program je jeden samostatný soubor, takže vedle něj není nic, co by mohl skener číst.

+
+
+
+
+ +
+
+

Příklady

+

Níže uvedené plány byly ověřeny pomocí --dry-run proti programu, který tato stránka popisuje. Příkaz, který něco mění, se předem neptá, takže --dry-run je způsob, jak se podívat, než se spustí. Spooler zastupuje libovolnou službu - dosaďte název té své.

+
+

Najít a přečíst

+
bws list                                       každá služba a ovladač na tomto stroji
+bws list --query "start:auto !status:running"  co by mělo běžet a neběží
+bws list --query "status:running" --memory     co používá proces každé běžící položky
+bws show Spooler                               všechno, co je o jedné položce známo
+bws show Spooler --full                        i pole, která jsou opravdu prázdná
+

Nejdřív se podívat, potom změnit

+
bws restart Spooler --dry-run                plán a nic jiného
+bws restart Spooler --dependents             restartovat spolu s tím, co na ní závisí
+bws stop Spooler --dependents --timeout 120  povolit dvě minuty na krok bez pokroku
+bws start-type WSearch delayed --dry-run     spustit o něco později než ostatní automatické položky
+bws start-type Spooler disabled --stop       zakázat a zastavit v jednom plánu
+

Služba, která se nechce zastavit

+
bws kill Spooler --dry-run          proces a každá služba, která v něm žije
+bws kill Spooler --restart          ukončit proces, jen když zastavení selže, potom vše vrátit
+bws kill Spooler --force --dry-run  jeden krok místo dvou: proces ukončen hned
+

Snímky a drift

+
bws snapshot create before.json --note "before the patch"  zmrazit stroj s poznámkou uloženou uvnitř
+bws snapshot diff before.json after.json                   dva soubory - dva dny, nebo dva stroje
+bws snapshot diff before.json --live                       soubor proti tomuto stroji, jaký je teď
+bws snapshot diff before.json --live --exit-code           totéž, skončí kódem 5, pokud se konfigurace odchýlila
+

Kdo to změnil

+
bws history          každá změna typu spouštění a instalace, kterou systémový protokol obsahuje
+bws history Spooler  změny typu spouštění jedné služby
+bws history --json   totéž jako dokument, s protokolem a změnami
+

Rychlé opravy

+
bws tool                      nástroje, které existují
+bws tool fix                  rychlé opravy a služba za každou z nich
+bws tool fix sound --dry-run  plán restartu dvou zvukových služeb
+bws tool fix printer          restartovat Print Spooler s tím, co na něm závisí
+

Co je uvnitř souboru

+
bws license --components  každá součást, její verze, licence a původ
+bws --version             verze tohoto spustitelného souboru
+

Ve skriptu PowerShellu

+
# položky, které by měly běžet a neběží, jako objekty
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# nepodepsané soubory do tabulky
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# co jedna služba potřebuje
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# noční kontrola, která větví podle návratového kódu
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

V cmd a dávkovém souboru

+
rem druhý příkaz jen když první neskončil čistě
+bws restart Spooler || echo the restart did not end cleanly
+
+rem v dávkovém souboru se zapnutým zpožděným rozvinutím potřebuje ! stříšku
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

Přepínače

+

{{switch_count}} jich je. Třetí sloupec jsou příkazy, ke kterým každý patří - přepínač předaný příkazu, který pro něj nemá využití, je chyba s tímto seznamem uvnitř, a ne tiše ignorovaný příznak.

+ {{table:switches}} +
+
+ +
+
+

Návratové kódy

+

{{exit_code_count}} konců a každý je pro skript jiná věc, kterou udělat. Data jdou na standardní výstup a všechno ostatní na standardní chybový výstup, takže bws list --json | jq funguje a varování nikdy nepřistane ve vašem JSONu.

+

Každý dokument JSON je čisté ASCII: písmeno mimo něj se zapíše jako šestiznakový escape, který každý čtecí program JSON převede zpět na písmeno, takže bws list --json > file.json je platné UTF-8 a | ConvertFrom-Json to přečte správně, ať je konzole nastavena na jakoukoli kódovou stránku. V textu, který čte člověk, se znak, který by terminál posunul, místo aby se vytiskl - tabulátor, zalomení řádku, escape sekvence, přepsání směru - ukáže jako svůj kódový bod, <U+001B>.

+

-- ukončuje přepínače, takže službu, jejíž název začíná pomlčkou, lze přesto pojmenovat: bws show -- -odd. Příkazové řádky, které vám nástroj dává, jsou psané pro PowerShell: název s mezerou jde do dvojitých uvozovek, což cmd čte stejně, a název, který by PowerShell uvnitř nich rozvinul, například MSSQL$SQLEXPRESS, jde do jednoduchých uvozovek.

+ {{table:exit-codes}} +

Ctrl+C má tři úrovně, každá říká, co stojí ta další. První přestane postupovat vpřed a stále vrátí, co bylo odebráno, druhá nechá věci tak, jak jsou, a stále vytiskne zprávu, třetí proces ukončí. Běh zastavený ručně končí kódem 4, i když každý krok ještě dorazil.

+

Zavření okna konzole se počítá jako první Ctrl+C. Windows pak programu dává pět sekund a v nich tento přestane postupovat vpřed a vrátí, co shodil. Odhlášení a vypnutí ho ukončí bez jakéhokoli varování, na které by mohl reagovat, a přerušená vzdálená relace možná také.

+
+
+ +
+
+

V naplánované úloze

+

Tvar, pro který byl tento nástroj vytvořen: zmrazit stroj, když je prokazatelně v pořádku, a pak se každou noc ptát, zda stále je.

+
# den, kdy stroj jde do provozu
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# každou noc z naplánované úlohy
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - žádný drift konfigurace
+#   5 - konfigurace se odchýlila a drift.json říká co
+#   3 - proběhlo to a nešlo přečíst všechno, takže odpověď je částečná
+

Okno je druhá polovina téhož jádra: {{archive_window}} ho obsahuje a stránka ke stažení říká, co který archiv je.

+
+
+ +
+
+

Argument okna

+

BetterWindowsServices.exe bere jeden argument určený člověku: --catalogue otevře vývojářský list zobrazující každou součást okna v každém stavu a nic nečte z vašeho stroje. Druhý, --carry, je způsob, jak okno předá to, co zobrazovalo, vlastní kopii, kterou restartuje jako správce. Nikdo ho nepíše a cokoli v něm, co by toto okno nemohlo napsat, se odmítne.

+
+
diff --git a/site/pages/cli-reference/id.html b/site/pages/cli-reference/id.html new file mode 100644 index 0000000..5bcf3cb --- /dev/null +++ b/site/pages/cli-reference/id.html @@ -0,0 +1,194 @@ + + + + + + + +
+
+ Referensi +

Referensi baris perintah

+

Setiap perintah, setiap opsi, dan setiap kode keluar bws, versi {{version}}. bws --help adalah yang berwibawa dan lebih panjang - halaman ini adalah permukaan yang sama, ditata agar bisa dibaca.

+
+
+ +
+
+

Perintah

+

Sebelas perintah. snapshot adalah kata benda dan diikuti satu kata. tool juga kata benda, dan sendirian ia mencantumkan alat-alat.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

Perintah yang salah ketik akan ditawari perintah yang kemungkinan Anda maksud, dan proses berakhir dengan kode 2 alih-alih melakukan sesuatu yang mirip dengan yang Anda minta.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

Apa yang dilakukan setiap perintah

+
+
+

list dan show

+

list adalah seluruh mesin, dipersempit oleh --query. show adalah satu entri dengan semua yang diketahui tentangnya - tanda tangan, hak istimewa, deskriptor keamanan, dan memori, semuanya dibaca setiap kali, karena pada satu entri itu memakan sekitar enam puluh milidetik sedangkan pada seluruh mesin memakan satu detik. Bidang yang benar-benar kosong dihilangkan kecuali Anda memberikan --full. Bidang yang tidak bisa dibaca siapa pun dicetak dalam kedua kasus, karena menghilangkannya akan tampak seperti jawaban.

+
+
+

stop, start, dan restart

+

Masing-masing membangun rencana dan menjalankannya. --dry-run mencetak rencana dan tidak mengubah apa pun, --dependents memasukkan layanan yang akan rusak ke dalamnya sebagai langkah tersendiri, dan --timeout menyatakan berapa lama satu langkah boleh berjalan tanpa kemajuan. Driver ditolak, bukan dicoba, karena menghentikan driver kernel sering kali tidak dapat dibalikkan tanpa restart.

+
+
+

kill - untuk layanan yang tidak mau berhenti

+

Ia meminta layanan berhenti dan mengakhiri proses di belakangnya hanya jika itu tidak berhasil, sehingga entri yang berhenti sendiri tidak pernah diakhiri. Mengakhiri proses membawa serta setiap layanan lain yang hidup di proses itu, entah mereka berhenti lebih dulu atau tidak, dan pratinjau menyebut mereka serta menyebut prosesnya dengan nomor. --force melewati langkah sopan itu dan pratinjau lalu menampilkan satu langkah, bukan dua. --restart mengembalikan semuanya sesudahnya.

+

Windows mengeja gagasan ini secara berbeda. --force pada Stop-Service berarti "bahkan jika ada yang bergantung padanya", yang dilakukan --dependents di sini. Itulah sebabnya ini adalah perintah tersendiri dan bukan opsi pada stop.

+
+
+

start-type - sebuah pengaturan, bukan gerakan

+

Ia menyatakan apa yang akan dilakukan manajer terhadap sebuah entri pada boot berikutnya, dan tanpa --stop ia tidak memindahkan apa pun: entri yang berjalan tetap berjalan, yang berhenti tetap berhenti, dan rencana menyatakannya. disabled adalah yang layak dipertimbangkan sejenak, karena menghentikan manajer memulai entri sama sekali, termasuk atas permintaan untuk sesuatu yang lain yang membutuhkannya. delayed adalah otomatis, dimulai sedikit setelah entri otomatis lainnya - kata yang ditanyakan start:delayed dalam kueri - dan Windows menolaknya untuk entri dalam grup urutan pemuatan, yang dinyatakan rencana sebelum apa pun terjadi. Masing-masing dari keempatnya menuliskan apakah entri dimulai terlambat, seperti yang dilakukan sc.exe. --stop, hanya bersama disabled, menghentikan entri dalam rencana yang sama setelah pengaturan ditulis.

+
+
+

snapshot create dan snapshot diff

+

create selalu membaca tanda tangan dan hash, karena snapshot disimpan dan dibandingkan kemudian, dan snapshot tanpa keduanya, dibandingkan dengan yang memilikinya, akan tampak seolah-olah mesin berubah. diff menyatakan apa yang berubah dari berkas pertama ke berkas kedua, atau dari berkas ke mesin ini dengan --live. Halaman snapshot memuat formatnya dan penalarannya.

+
+
+

history - siapa yang mengubahnya, dari log System

+

Perubahan tipe startup dan pemasangan dari log System, terbaru lebih dulu, dengan akun yang dicatat Windows. Baris pertama menyatakan seberapa jauh log menjangkau ke belakang dan apakah log pernah dihapus, karena riwayat hanya sepanjang log. Dengan nama, itu adalah perubahan tipe startup layanan tersebut - pemasangan hanya dicantumkan tanpa nama, karena Windows mencatat pemasangan dengan nama tampilan dan tidak pernah dengan nama layanan. Akun disebut namanya di tempat mesin ini dapat menyebutnya sendiri dan ditampilkan sebagai SID-nya jika tidak, dan tipe startup datang dalam kata-kata yang ditulis Windows.

+
+
+

tool - jawaban siap pakai untuk masalah umum

+

Alat-alat yang sama dengan yang ditampilkan jendela di tab Tools. bws tool mencantumkannya dan bws tool fix mencantumkan perbaikan cepat: printer, sound, indexing, dan search, masing-masing adalah restart satu layanan Windows bersama apa yang bergantung padanya, dipilih karena halaman pemecahan masalah Microsoft sendiri menyarankannya. bws tool fix printer persis bws restart Spooler --dependents - rencana yang sama, keluaran yang sama, dan kode keluar yang sama - dan seperti setiap perintah di sini yang mengubah sesuatu, ia tidak bertanya terlebih dahulu, jadi --dry-run adalah cara untuk melihat sebelum dijalankan.

+
+
+

license - apa yang ada di dalam berkas yang Anda unduh

+

Ia tidak membaca apa pun sama sekali - tanpa service manager, tanpa disk, tanpa jaringan - dan menjawab dari register yang dikompilasi ke dalam berkas eksekusi. --components mengubah pemberitahuan menjadi setiap komponen beserta versi, lisensi, dan asalnya. Set yang sama dengan yang dibawa daftar bahan yang dipublikasikan di samping unduhan, karena keduanya dihasilkan dari satu register, dan itulah alasan mengapa hal ini layak dimiliki: program ini adalah satu berkas mandiri, sehingga tidak ada apa pun di sebelahnya yang bisa dibaca pemindai.

+
+
+
+
+ +
+
+

Contoh

+

Rencana di bawah ini diperiksa dengan --dry-run terhadap program yang dijelaskan halaman ini. Perintah yang mengubah sesuatu tidak bertanya terlebih dahulu, jadi --dry-run adalah cara untuk melihat sebelum dijalankan. Spooler mewakili layanan apa pun - taruh nama layanan Anda di tempatnya.

+
+

Mencari dan membaca

+
bws list                                       setiap layanan dan driver di mesin ini
+bws list --query "start:auto !status:running"  apa yang seharusnya hidup dan tidak hidup
+bws list --query "status:running" --memory     apa yang dipakai proses setiap entri yang berjalan
+bws show Spooler                               semua yang diketahui tentang satu entri
+bws show Spooler --full                        juga bidang yang benar-benar kosong
+

Lihat dulu, baru ubah

+
bws restart Spooler --dry-run                rencananya saja, tidak ada yang lain
+bws restart Spooler --dependents             restart bersama apa yang bergantung padanya
+bws stop Spooler --dependents --timeout 120  izinkan dua menit per langkah tanpa kemajuan
+bws start-type WSearch delayed --dry-run     mulai sedikit setelah entri otomatis lainnya
+bws start-type Spooler disabled --stop       nonaktifkan dan hentikan dalam satu rencana
+

Layanan yang tidak mau berhenti

+
bws kill Spooler --dry-run          proses itu, dan setiap layanan yang hidup di dalamnya
+bws kill Spooler --restart          akhiri proses hanya jika penghentian gagal, lalu kembalikan semuanya
+bws kill Spooler --force --dry-run  satu langkah, bukan dua: proses diakhiri seketika
+

Snapshot dan penyimpangan

+
bws snapshot create before.json --note "before the patch"  bekukan mesin, dengan catatan tersimpan di dalamnya
+bws snapshot diff before.json after.json                   dua berkas - dua hari, atau dua mesin
+bws snapshot diff before.json --live                       berkas terhadap mesin ini seperti sekarang
+bws snapshot diff before.json --live --exit-code           sama, berakhir dengan 5 jika konfigurasi menyimpang
+

Siapa yang mengubahnya

+
bws history          setiap perubahan tipe startup dan pemasangan yang dimuat log System
+bws history Spooler  perubahan tipe startup satu layanan
+bws history --json   sama, sebagai dokumen, dengan log dan perubahan
+

Perbaikan cepat

+
bws tool                      alat-alat yang ada
+bws tool fix                  perbaikan cepat, dan layanan di balik masing-masing
+bws tool fix sound --dry-run  rencana me-restart dua layanan audio
+bws tool fix printer          restart Print Spooler bersama apa yang bergantung padanya
+

Apa yang ada di dalam berkas

+
bws license --components  setiap komponen, versinya, lisensinya, dan asalnya
+bws --version             versi berkas eksekusi ini
+

Dalam skrip PowerShell

+
# entri yang seharusnya hidup dan tidak hidup, sebagai objek
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# berkas yang tidak bertanda tangan, ke dalam spreadsheet
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# apa yang dibutuhkan satu layanan
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# pemeriksaan malam yang bercabang pada kode keluar
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

Di cmd dan berkas batch

+
rem perintah kedua hanya bila yang pertama tidak berakhir bersih
+bws restart Spooler || echo the restart did not end cleanly
+
+rem dalam berkas batch dengan delayed expansion aktif, ! membutuhkan tanda ^
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

Opsi

+

{{switch_count}} buah. Kolom ketiga adalah perintah tempat masing-masing berada - opsi yang diberikan kepada perintah yang tidak membutuhkannya adalah galat yang memuat daftar itu, bukan bendera yang diam-diam diabaikan.

+ {{table:switches}} +
+
+ +
+
+

Kode keluar

+

{{exit_code_count}} akhiran, dan masing-masing adalah hal yang berbeda untuk dilakukan skrip. Data masuk ke keluaran standar dan yang lain ke galat standar, sehingga bws list --json | jq berfungsi dan peringatan tidak pernah mendarat di JSON Anda.

+

Setiap dokumen JSON adalah ASCII polos: huruf di luarnya ditulis sebagai escape enam karakter yang diubah kembali oleh setiap pembaca JSON menjadi huruf itu, sehingga bws list --json > file.json adalah UTF-8 yang valid dan | ConvertFrom-Json membacanya dengan benar apa pun code page konsolnya. Dalam teks yang dibaca orang, karakter yang akan menggerakkan terminal alih-alih tercetak - tab, jeda baris, urutan escape, penimpaan arah - ditampilkan sebagai titik kodenya, <U+001B>.

+

-- mengakhiri opsi, sehingga layanan yang namanya diawali tanda hubung tetap bisa disebut: bws show -- -odd. Baris perintah yang diberikan alat ini kepada Anda ditulis untuk PowerShell: nama dengan spasi masuk ke tanda kutip ganda, yang dibaca cmd dengan cara yang sama, dan nama yang akan diperluas PowerShell di dalamnya, seperti MSSQL$SQLEXPRESS, masuk ke tanda kutip tunggal.

+ {{table:exit-codes}} +

Ctrl+C punya tiga tingkat, masing-masing menyatakan apa biaya tingkat berikutnya. Yang pertama berhenti maju dan tetap mengembalikan apa yang diambil, yang kedua membiarkan keadaan apa adanya dan tetap mencetak laporan, yang ketiga mengakhiri proses. Proses yang dihentikan secara manual berakhir dengan 4 bahkan ketika setiap langkah masih sampai.

+

Menutup jendela konsol dihitung sebagai Ctrl+C pertama. Windows memberi program lima detik setelah itu, dan dalam waktu itu program ini berhenti maju dan mengembalikan apa yang dijatuhkannya. Keluar dari akun dan mematikan komputer mengakhirinya tanpa peringatan apa pun yang bisa ditindaklanjutinya, dan sesi jarak jauh yang terputus mungkin juga demikian.

+
+
+ +
+
+

Dalam tugas terjadwal

+

Bentuk yang untuknya alat ini dibangun: bekukan mesin ketika diketahui baik, lalu tanyakan setiap malam apakah ia masih begitu.

+
# hari mesin mulai beroperasi
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# setiap malam, dari tugas terjadwal
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - tidak ada penyimpangan konfigurasi
+#   5 - konfigurasi menyimpang, dan drift.json menyatakan apa
+#   3 - berjalan tetapi tidak bisa membaca semuanya, jadi jawabannya sebagian
+

Jendela adalah bagian lain dari mesin yang sama: {{archive_window}} memuatnya, dan halaman unduhan menyatakan apa masing-masing arsip.

+
+
+ +
+
+

Argumen jendela

+

BetterWindowsServices.exe menerima satu argumen yang ditujukan untuk manusia: --catalogue membuka lembar pengembang yang menampilkan setiap komponen jendela dalam setiap keadaan, dan tidak membaca apa pun dari mesin Anda. Yang kedua, --carry, adalah cara jendela menyerahkan apa yang ditampilkannya kepada salinan dirinya yang di-restart-nya sebagai administrator. Tidak ada yang mengetiknya, dan apa pun di dalamnya yang tidak mungkin ditulis jendela itu ditolak.

+
+
diff --git a/site/pages/cli-reference/ja.html b/site/pages/cli-reference/ja.html new file mode 100644 index 0000000..2a7469e --- /dev/null +++ b/site/pages/cli-reference/ja.html @@ -0,0 +1,194 @@ + + + + + + + +
+
+ リファレンス +

コマンドライン リファレンス

+

bws バージョン {{version}} のすべてのコマンド、オプション、終了コード。権威あるものは bws --help で、そちらのほうが長くなります。このページは同じ内容を、読みやすく並べたものです。

+
+
+ +
+
+

コマンド

+

11 個のコマンドがあります。snapshot は名詞で、後ろに語が続きます。tool も名詞で、単独で実行するとツールの一覧を表示します。

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

入力ミスのあるコマンドには、おそらく意図したものが提示され、頼んだものに近いことをする代わりに、コード 2 で終了します。

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

各コマンドの動作

+
+
+

list と show

+

list はマシン全体で、--query で絞り込みます。show は 1 つのエントリについてわかっているすべてを表示します。署名、特権、セキュリティ記述子、メモリはすべて毎回読み取られます。1 つのエントリなら約 60 ミリ秒で済むのに対し、マシン全体では 1 秒かかるためです。本当に空のフィールドは、--full を指定しない限り省かれます。誰も読み取れなかったフィールドは、省くと答えのように見えてしまうため、常に表示されます。

+
+
+

stop、start、restart

+

それぞれ、プランを作成して実行します。--dry-run はプランを表示するだけで何も変更しません。--dependents は、壊れるサービスを独立したステップとしてプランに含めます。--timeout は、1 つのステップが進捗なしで続けられる時間を指定します。ドライバーは、試行されずに拒否されます。カーネルドライバーの停止は、再起動なしには元に戻せないことが多いためです。

+
+
+

kill:止まらないサービスのために

+

サービスに停止を要求し、それがうまくいかない場合にのみその背後のプロセスを終了します。そのため、自力で停止するエントリが強制終了されることはありません。プロセスを終了すると、そのプロセスに存在するほかのすべてのサービスも、先に停止していたかどうかにかかわらず巻き込まれます。プレビューはそれらの名前を示し、プロセスを番号で示します。--force は丁寧なステップを省略し、プレビューには 2 つではなく 1 つのステップが表示されます。--restart は、あとですべてを元に戻します。

+

Windows は、この考え方を異なる形で表します。Stop-Service の --force は「何かが依存していても」を意味し、ここでは --dependents がそれにあたります。これが、stop のオプションではなく独立したコマンドになっている理由です。

+
+
+

start-type:動かすのではなく、設定

+

次回の起動時にマネージャーがエントリをどう扱うかを設定します。--stop がなければ何も動かしません。実行中のエントリは実行されたまま、停止中のものは停止したままで、プランもそう伝えます。disabled は立ち止まって考える価値があります。ほかの何かが必要としたときのオンデマンド開始を含めて、マネージャーがエントリを開始すること自体を止めるからです。delayed は自動で、ほかの自動のエントリより少しあとに開始されます。クエリで start:delayed が尋ねる語がこれです。Windows はロード順グループに属するエントリに対してこれを拒否し、プランは何かが起きる前にそのことを伝えます。4 つのいずれも、sc.exe と同様に、エントリが遅れて開始されるかどうかを書き込みます。--stop は disabled と組み合わせたときのみ使え、設定を書き込んだあと、同じプランの中でエントリを停止します。

+
+
+

snapshot create と snapshot diff

+

create は常に署名とハッシュを読み取ります。スナップショットは保存されてあとで比較されるため、それらがないものを、あるものと比較すると、マシンが変わったかのように見えてしまうからです。diff は、最初のファイルから 2 番目のファイルへ、または --live を付けてファイルからこのマシンへ、何が変わったかを示します。スナップショットのページに、形式と考え方があります。

+
+
+

history:誰が変更したか、System ログから

+

System ログから、スタートアップの種類の変更とインストールを新しい順に、Windows が記録したアカウントとともに表示します。最初の行は、ログがどこまでさかのぼるか、消去されたかどうかを示します。履歴はログの長さまでしか存在しないからです。名前を指定すると、そのサービスのスタートアップの種類の変更になります。インストールは、名前なしの場合のみ一覧に出ます。Windows はインストールを表示名で記録し、サービス名では記録しないためです。アカウントは、このマシンが自分で名前を解決できる場合はその名前で、できない場合は SID で表示されます。スタートアップの種類は、Windows が書いた言葉のまま表示されます。

+
+
+

tool:よくある問題への既製の答え

+

ウィンドウの Tools タブに表示されるのと同じツールです。bws tool はそれらを一覧表示し、bws tool fix はクイック修正を一覧表示します。printer、sound、indexing、search で、それぞれ 1 つの Windows サービスとそれに依存するものの再起動です。Microsoft 自身のトラブルシューティングのページが提案しているため選ばれました。bws tool fix printer は、まさに bws restart Spooler --dependents と同じです。同じプラン、同じ出力、同じ終了コードです。そして、ここにある何かを変更するすべてのコマンドと同じく、事前には確認しないため、実行前に確認するには --dry-run を使います。

+
+
+

license:ダウンロードしたファイルの中身

+

何も読み取りません。サービス マネージャーも、ディスクも、ネットワークも使わず、実行ファイルにコンパイルされた台帳から答えます。--components を付けると、通知がすべてのコンポーネントとそのバージョン、ライセンス、出所の一覧になります。ダウンロードの横で公開されている部品表と同じ内容です。どちらも 1 つの台帳から生成されるためで、これが価値のある理由です。プログラムは自己完結型の 1 つのファイルであり、スキャナーが読むものが隣にありません。

+
+
+
+
+ +
+
+

例

+

以下のプランは、このページが説明するプログラムに対して --dry-run で確認したものです。何かを変更するコマンドは事前に確認しないため、実行前に確認するには --dry-run を使います。Spooler は任意のサービスを表します。ご自身のサービスの名前に置き換えてください。

+
+

探して読む

+
bws list                                       このマシン上のすべてのサービスとドライバー
+bws list --query "start:auto !status:running"  起動しているはずなのに起動していないもの
+bws list --query "status:running" --memory     実行中の各エントリのプロセスが使っているもの
+bws show Spooler                               1 つのエントリについてわかっているすべて
+bws show Spooler --full                        本当に空のフィールドも含める
+

まず見て、それから変更する

+
bws restart Spooler --dry-run                プランだけで、ほかには何もしない
+bws restart Spooler --dependents             依存するものとともに再起動する
+bws stop Spooler --dependents --timeout 120  進捗なしで 1 ステップあたり 2 分まで許可する
+bws start-type WSearch delayed --dry-run     ほかの自動のエントリより少しあとに開始する
+bws start-type Spooler disabled --stop       無効にして、同じプランで停止する
+

止まらないサービス

+
bws kill Spooler --dry-run          プロセスと、そこで動いているすべてのサービス
+bws kill Spooler --restart          停止に失敗した場合のみプロセスを終了し、そのあとすべてを元に戻す
+bws kill Spooler --force --dry-run  2 ステップではなく 1 ステップ。プロセスはすぐに終了される
+

スナップショットとドリフト

+
bws snapshot create before.json --note "before the patch"  メモを中に入れて、マシンを固定する
+bws snapshot diff before.json after.json                   2 つのファイル。2 日間、または 2 台のマシン
+bws snapshot diff before.json --live                       ファイルを、現在のこのマシンと比較する
+bws snapshot diff before.json --live --exit-code           同じ比較で、構成がドリフトしていれば 5 で終了する
+

誰が変更したか

+
bws history          System ログにあるスタートアップの種類の変更とインストールのすべて
+bws history Spooler  1 つのサービスのスタートアップの種類の変更
+bws history --json   同じ内容をドキュメントとして。ログと変更を含む
+

クイック修正

+
bws tool                      あるツールの一覧
+bws tool fix                  クイック修正と、それぞれの背後にあるサービス
+bws tool fix sound --dry-run  2 つのオーディオ サービスを再起動するプラン
+bws tool fix printer          Print Spooler を、依存するものとともに再起動する
+

ファイルの中身

+
bws license --components  すべてのコンポーネント、バージョン、ライセンス、出所
+bws --version             この実行ファイルのバージョン
+

PowerShell スクリプトで

+
# 起動しているはずなのに起動していないエントリを、オブジェクトとして
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# 署名のないファイルを、スプレッドシートへ
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# 1 つのサービスが必要とするもの
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# 終了コードで分岐する夜間チェック
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

cmd とバッチファイルで

+
rem 最初のコマンドが正常に終了しなかった場合のみ、2 番目のコマンドを実行する
+bws restart Spooler || echo the restart did not end cleanly
+
+rem 遅延展開を有効にしたバッチファイルでは、! の前にキャレット(^)が必要
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

オプション

+

全部で {{switch_count}} 個あります。3 列目は、各オプションが属するコマンドです。使い道のないコマンドにオプションを渡すとエラーになり、その一覧が示されます。黙って無視されるフラグではありません。

+ {{table:switches}} +
+
+ +
+
+

終了コード

+

終わり方は {{exit_code_count}} 通りあり、それぞれがスクリプトにとって異なる意味を持ちます。データは標準出力に、それ以外はすべて標準エラーに出力されるので、bws list --json | jq が動作し、警告が JSON に混ざることはありません。

+

すべての JSON ドキュメントは純粋な ASCII です。ASCII 外の文字は 6 文字のエスケープとして書かれ、すべての JSON リーダーが元の文字に戻します。そのため、bws list --json > file.json は有効な UTF-8 になり、| ConvertFrom-Json は、コンソールがどのコードページに設定されていても正しく読み取ります。人が読むテキストでは、印字されずにターミナルを動かしてしまう文字(タブ、改行、エスケープシーケンス、方向の上書き)は、そのコードポイント <U+001B> として表示されます。

+

-- はオプションの終わりを示すので、ダッシュで始まる名前のサービスも指定できます。bws show -- -odd のようにします。ツールが提示するコマンドラインは PowerShell 向けに書かれています。スペースを含む名前は二重引用符で囲みます。cmd も同じように読みます。MSSQL$SQLEXPRESS のように、PowerShell が二重引用符の中で展開してしまう名前は、一重引用符で囲みます。

+ {{table:exit-codes}} +

Ctrl+C には 3 つのレベルがあり、それぞれが次のレベルの代償を示します。最初のものは先に進むのをやめ、取り外したものを元に戻します。2 番目は、そのままの状態にして、レポートを表示します。3 番目はプロセスを終了します。手動で止めた実行は、すべてのステップが到達していても 4 で終了します。

+

コンソール ウィンドウを閉じることは、最初の Ctrl+C として扱われます。その後、Windows はプログラムに 5 秒を与え、その間にこのプログラムは先に進むのをやめ、停止したものを元に戻します。サインアウトとシャットダウンは、対応できる予告なしに終了させ、切断されたリモートセッションもそうなることがあります。

+
+
+ +
+
+

スケジュールされたタスクで

+

このツールが想定している形です。マシンが正常だとわかっているときに固定し、そのあと毎晩、まだ正常かどうかを尋ねます。

+
# マシンが稼働を開始する日
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 毎晩、スケジュールされたタスクから
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 構成のドリフトなし
+#   5 - 構成がドリフトした。drift.json に内容が書かれる
+#   3 - 実行されたが、すべてを読み取れなかった。そのため答えは部分的
+

ウィンドウは、同じエンジンのもう半分です。{{archive_window}} に入っていて、各アーカイブが何であるかはダウンロードのページに書かれています。

+
+
+ +
+
+

ウィンドウの引数

+

BetterWindowsServices.exe は、人が使うための引数を 1 つ受け付けます。--catalogue は、ウィンドウのすべてのコンポーネントをすべての状態で表示する開発者向けのシートを開き、マシンからは何も読み取りません。もう 1 つの --carry は、ウィンドウが表示していた内容を、管理者として再起動する自分自身のコピーに引き渡す方法です。誰も手で入力するものではなく、そのウィンドウが書けるはずのないものが含まれていれば拒否されます。

+
+
diff --git a/site/pages/cli-reference/ko.html b/site/pages/cli-reference/ko.html new file mode 100644 index 0000000..ba732e2 --- /dev/null +++ b/site/pages/cli-reference/ko.html @@ -0,0 +1,194 @@ + + + + + + + +
+
+ 참조 +

명령줄 참조

+

bws 버전 {{version}}의 모든 명령, 모든 옵션, 모든 종료 코드입니다. 기준이 되는 것은 bws --help이며 더 깁니다. 이 페이지는 같은 범위를 읽기 좋게 배치한 것입니다.

+
+
+ +
+
+

명령

+

명령은 열한 개입니다. snapshot은 명사라서 뒤에 단어가 옵니다. tool도 명사이며, 혼자 쓰면 도구 목록을 보여 줍니다.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

잘못 입력한 명령에는 의도했을 법한 명령이 제안되고, 요청한 것과 비슷한 일을 하는 대신 코드 2로 끝납니다.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

각 명령이 하는 일

+
+
+

list와 show

+

list는 --query로 좁힌 컴퓨터 전체입니다. show는 한 항목에 대해 알려진 모든 것입니다. 서명, 권한, 보안 설명자, 메모리를 모두 매번 읽는데, 항목 하나라면 약 60밀리초가 들지만 컴퓨터 전체라면 1초가 들기 때문입니다. 정말로 비어 있는 필드는 --full을 주지 않으면 생략됩니다. 아무도 읽지 못한 필드는, 생략하면 답처럼 보이므로 어느 쪽이든 출력됩니다.

+
+
+

stop, start, restart

+

각각 계획을 만들고 실행합니다. --dry-run은 계획만 출력하고 아무것도 바꾸지 않으며, --dependents는 망가질 서비스를 별도의 단계로 계획에 넣고, --timeout은 한 단계가 진행 없이 얼마나 길어질 수 있는지 정합니다. 드라이버는 시도하지 않고 거부됩니다. 커널 드라이버를 중지하면 다시 시작하지 않고는 되돌릴 수 없는 경우가 많기 때문입니다.

+
+
+

kill: 멈추지 않는 서비스를 위해

+

서비스에 중지를 요청하고, 그것이 통하지 않을 때만 그 뒤의 프로세스를 종료합니다. 따라서 스스로 멈추는 항목은 절대 강제 종료되지 않습니다. 프로세스를 종료하면 그 프로세스 안에 있는 다른 모든 서비스가, 먼저 멈췄는지와 상관없이 함께 사라지며, 미리 보기는 그 서비스들의 이름과 프로세스 번호를 알려 줍니다. --force는 정중한 단계를 건너뛰며, 그러면 미리 보기에 두 단계 대신 한 단계가 표시됩니다. --restart는 나중에 모든 것을 되돌려 놓습니다.

+

Windows는 이 개념을 다르게 표현합니다. Stop-Service의 --force는 “무언가 종속되어 있더라도”를 뜻하며, 여기서는 --dependents가 그 일을 합니다. 그래서 이것은 stop의 옵션이 아니라 별도의 명령입니다.

+
+
+

start-type: 이동이 아니라 설정

+

다음 부팅 때 서비스 관리자가 항목을 어떻게 다룰지 정하며, --stop 없이는 아무것도 움직이지 않습니다. 실행 중인 항목은 계속 실행되고, 중지된 항목은 중지된 채로 남으며, 계획이 그 사실을 알려 줍니다. disabled는 잠시 멈춰 생각할 만합니다. 그것을 필요로 하는 다른 무언가를 위한 요청 시 시작을 포함해, 서비스 관리자가 항목을 아예 시작하지 못하게 하기 때문입니다. delayed는 자동이며 다른 자동 항목보다 조금 뒤에 시작됩니다. 쿼리에서 start:delayed가 묻는 단어이고, Windows는 로드 순서 그룹에 속한 항목에는 이를 거부하며, 계획은 아무 일이 일어나기 전에 그 사실을 알려 줍니다. 네 가지 모두 sc.exe가 하듯 항목이 늦게 시작되는지 여부를 기록합니다. --stop은 disabled 옆에서만 쓸 수 있으며, 설정을 쓴 뒤 같은 계획 안에서 항목을 중지합니다.

+
+
+

snapshot create와 snapshot diff

+

create는 항상 서명과 해시를 읽습니다. 스냅샷은 보관했다가 나중에 비교하므로, 서명과 해시가 없는 스냅샷을 있는 스냅샷과 비교하면 컴퓨터가 바뀐 것처럼 보이기 때문입니다. diff는 첫 번째 파일에서 두 번째 파일로, 또는 --live로 파일에서 이 컴퓨터로 갈 때 무엇이 바뀌었는지 알려 줍니다. 스냅샷 페이지에 형식과 근거가 있습니다.

+
+
+

history: 누가 바꿨는지, System 로그에서

+

System 로그에서 시작 유형 변경과 설치를 최신순으로, Windows가 기록한 계정과 함께 보여 줍니다. 첫 줄은 로그가 얼마나 거슬러 올라가는지와 지워졌는지를 알려 주는데, 기록은 로그만큼만 길기 때문입니다. 이름을 주면 그 서비스의 시작 유형 변경입니다. 설치는 이름 없이만 나열되는데, Windows가 설치를 서비스 이름이 아니라 표시 이름으로 기록하기 때문입니다. 계정은 이 컴퓨터가 스스로 이름을 알 수 있으면 이름으로, 아니면 SID로 표시되며, 시작 유형은 Windows가 쓴 단어 그대로 나옵니다.

+
+
+

tool: 흔한 문제에 대한 준비된 답

+

창의 Tools 탭이 보여 주는 것과 같은 도구입니다. bws tool은 도구를 나열하고 bws tool fix는 빠른 해결을 나열합니다. printer, sound, indexing, search이며, 각각 Windows 서비스 하나를 그것에 종속된 것과 함께 재시작하는 것입니다. Microsoft 자체 문제 해결 페이지가 제안하기 때문에 골랐습니다. bws tool fix printer는 정확히 bws restart Spooler --dependents입니다. 같은 계획, 같은 출력, 같은 종료 코드이며, 여기서 무언가를 바꾸는 모든 명령처럼 먼저 묻지 않으므로, 실행 전에 보려면 --dry-run을 쓰세요.

+
+
+

license: 내려받은 파일 안에 있는 것

+

아무것도 읽지 않습니다. 서비스 관리자도, 디스크도, 네트워크도 읽지 않고, 실행 파일에 컴파일된 목록에서 답합니다. --components는 알림을 각 구성 요소의 버전, 라이선스, 출처로 바꿉니다. 다운로드 옆에 게시된 자재 명세서가 담은 것과 같은 집합이며, 둘 다 하나의 목록에서 만들어지기 때문이고, 이것을 둘 가치가 있는 이유이기도 합니다. 프로그램은 자체 포함 파일 하나이므로 스캐너가 읽을 것이 옆에 없습니다.

+
+
+
+
+ +
+
+

예

+

아래의 계획은 이 페이지가 설명하는 프로그램에 대해 --dry-run으로 확인했습니다. 무언가를 바꾸는 명령은 먼저 묻지 않으므로, 실행 전에 보려면 --dry-run을 쓰세요. Spooler는 아무 서비스를 대신하니, 그 자리에 사용 중인 서비스의 이름을 넣으세요.

+
+

찾고 읽기

+
bws list                                       이 컴퓨터의 모든 서비스와 드라이버
+bws list --query "start:auto !status:running"  떠 있어야 하는데 떠 있지 않은 것
+bws list --query "status:running" --memory     실행 중인 각 항목의 프로세스가 사용하는 것
+bws show Spooler                               한 항목에 대해 알려진 모든 것
+bws show Spooler --full                        정말로 비어 있는 필드도 함께
+

먼저 보고, 그다음 변경하기

+
bws restart Spooler --dry-run                계획만, 그 밖에는 아무것도 없음
+bws restart Spooler --dependents             종속된 것과 함께 재시작
+bws stop Spooler --dependents --timeout 120  진행 없이 단계당 2분까지 허용
+bws start-type WSearch delayed --dry-run     다른 자동 항목보다 조금 뒤에 시작
+bws start-type Spooler disabled --stop       사용 안 함으로 바꾸고 한 계획으로 중지
+

멈추지 않는 서비스

+
bws kill Spooler --dry-run          프로세스와 그 안에 있는 모든 서비스
+bws kill Spooler --restart          중지가 실패할 때만 프로세스를 종료하고, 그다음 모두 되돌림
+bws kill Spooler --force --dry-run  두 단계 대신 한 단계: 프로세스를 바로 종료
+

스냅샷과 드리프트

+
bws snapshot create before.json --note "before the patch"  메모를 안에 담아 컴퓨터를 고정
+bws snapshot diff before.json after.json                   파일 두 개, 이틀 또는 컴퓨터 두 대
+bws snapshot diff before.json --live                       파일과 지금의 이 컴퓨터를 비교
+bws snapshot diff before.json --live --exit-code           같은 비교이며, 구성이 드리프트했으면 5로 종료
+

누가 바꿨는지

+
bws history          System 로그에 있는 모든 시작 유형 변경과 설치
+bws history Spooler  서비스 하나의 시작 유형 변경
+bws history --json   같은 내용을 문서로, 로그와 변경 포함
+

빠른 해결

+
bws tool                      있는 도구들
+bws tool fix                  빠른 해결과 각각 뒤에 있는 서비스
+bws tool fix sound --dry-run  오디오 서비스 두 개를 재시작하는 계획
+bws tool fix printer          Print Spooler를 종속된 것과 함께 재시작
+

파일 안에 있는 것

+
bws license --components  모든 구성 요소, 버전, 라이선스, 출처
+bws --version             이 실행 파일의 버전
+

PowerShell 스크립트에서

+
# 떠 있어야 하는데 떠 있지 않은 항목을 개체로
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# 서명 없는 파일을 스프레드시트로
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# 서비스 하나가 필요로 하는 것
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# 종료 코드로 분기하는 야간 점검
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

cmd와 배치 파일에서

+
rem 첫 번째 명령이 깨끗하게 끝나지 않았을 때만 두 번째 명령 실행
+bws restart Spooler || echo the restart did not end cleanly
+
+rem 지연된 확장을 켠 배치 파일에서는 !에 캐럿이 필요함
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

옵션

+

옵션은 {{switch_count}}개입니다. 세 번째 열은 각 옵션이 속한 명령입니다. 쓸모가 없는 명령에 전달한 옵션은 조용히 무시되는 플래그가 아니라, 그 목록이 담긴 오류입니다.

+ {{table:switches}} +
+
+ +
+
+

종료 코드

+

끝나는 방식은 {{exit_code_count}}가지이며, 각각은 스크립트가 해야 할 서로 다른 일입니다. 데이터는 표준 출력으로, 나머지는 모두 표준 오류로 나가므로 bws list --json | jq가 동작하고 경고가 JSON에 섞이지 않습니다.

+

모든 JSON 문서는 순수 ASCII입니다. ASCII 밖의 글자는 여섯 글자 이스케이프로 쓰이고 모든 JSON 판독기가 이를 글자로 되돌리므로, bws list --json > file.json은 유효한 UTF-8이고 | ConvertFrom-Json은 콘솔의 코드 페이지가 무엇이든 올바르게 읽습니다. 사람이 읽는 텍스트에서는, 출력되는 대신 터미널을 움직이게 할 글자(탭, 줄 바꿈, 이스케이프 시퀀스, 방향 재정의)가 코드 포인트 <U+001B>로 표시됩니다.

+

--는 옵션의 끝을 뜻하므로, 이름이 대시로 시작하는 서비스도 bws show -- -odd처럼 지정할 수 있습니다. 도구가 건네주는 명령줄은 PowerShell용으로 작성됩니다. 공백이 있는 이름은 큰따옴표에 넣으며 cmd도 같은 방식으로 읽고, MSSQL$SQLEXPRESS처럼 PowerShell이 큰따옴표 안에서 확장해 버릴 이름은 작은따옴표에 넣습니다.

+ {{table:exit-codes}} +

Ctrl+C에는 세 단계가 있으며, 각각 다음 단계의 비용을 알려 줍니다. 첫 번째는 앞으로 나아가기를 멈추고 가져간 것을 되돌려 놓으며, 두 번째는 상태를 그대로 두고 보고서를 출력하며, 세 번째는 프로세스를 종료합니다. 수동으로 멈춘 실행은 모든 단계가 도달했더라도 4로 끝납니다.

+

콘솔 창을 닫는 것은 첫 번째 Ctrl+C로 간주됩니다. 그 뒤 Windows는 프로그램에 5초를 주며, 그동안 이 프로그램은 앞으로 나아가기를 멈추고 내려 둔 것을 되돌려 놓습니다. 로그아웃과 종료는 대응할 수 있는 경고 없이 프로그램을 끝내며, 끊어진 원격 세션도 그럴 수 있습니다.

+
+
+ +
+
+

예약 작업에서

+

이 도구가 만들어진 이유인 형태입니다. 컴퓨터가 정상이라고 알려져 있을 때 고정하고, 그 뒤 매일 밤 여전히 그런지 묻습니다.

+
# 컴퓨터가 운영에 들어가는 날
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 매일 밤, 예약 작업에서
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 구성 드리프트 없음
+#   5 - 구성이 드리프트했으며, drift.json에 무엇인지 나옴
+#   3 - 실행되었지만 모든 것을 읽지 못했으므로 답이 부분적임
+

창은 같은 엔진의 나머지 절반입니다. {{archive_window}}에 들어 있으며, 각 압축 파일이 무엇인지는 다운로드 페이지에 있습니다.

+
+
+ +
+
+

창의 인수

+

BetterWindowsServices.exe는 사람을 위한 인수를 하나 받습니다. --catalogue는 창의 모든 구성 요소를 모든 상태로 보여 주는 개발자용 시트를 열며, 컴퓨터에서는 아무것도 읽지 않습니다. 두 번째인 --carry는 창이 보여 주던 것을, 관리자 권한으로 다시 시작하는 자신의 복사본에 넘기는 방법입니다. 아무도 직접 입력하지 않으며, 그 안에 그 창이 쓸 수 없었을 내용이 있으면 거부됩니다.

+
+
diff --git a/site/pages/cli-reference/nl.html b/site/pages/cli-reference/nl.html new file mode 100644 index 0000000..a77157f --- /dev/null +++ b/site/pages/cli-reference/nl.html @@ -0,0 +1,194 @@ + + + + + + + +
+
+ Naslag +

Naslag van de opdrachtregel

+

Elke opdracht, elke optie en elke afsluitcode van bws, versie {{version}}. bws --help is de gezaghebbende en is langer - deze pagina is hetzelfde oppervlak, gerangschikt om te lezen.

+
+
+ +
+
+

De opdrachten

+

Elf opdrachten. snapshot is een zelfstandig naamwoord en neemt een woord erna. tool is ook een zelfstandig naamwoord, en op zichzelf toont het de tools.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

Een verkeerd getypte opdracht krijgt degene aangeboden die u waarschijnlijk bedoelde, en de uitvoering eindigt met code 2 in plaats van iets te doen dat dicht bij uw vraag in de buurt komt.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

Wat elke opdracht doet

+
+
+

list en show

+

list is de hele machine, beperkt door --query. show is één item met alles wat erover bekend is - de handtekening, de bevoegdheden, de beveiligingsdescriptor en het geheugen, alles elke keer gelezen, omdat dat over één item ongeveer zestig milliseconden kost waar het over de hele machine een seconde kost. Velden die echt leeg zijn blijven weg tenzij u --full meegeeft. Een veld dat niemand kon lezen wordt hoe dan ook afgedrukt, omdat het weglaten ervan op een antwoord zou lijken.

+
+
+

stop, start en restart

+

Elk bouwt een plan en voert het uit. --dry-run drukt het plan af en wijzigt niets, --dependents zet de services die zouden kapotgaan als aparte stappen erin, en --timeout zegt hoe lang één stap zonder voortgang mag gaan. Stuurprogramma's worden geweigerd in plaats van geprobeerd, omdat het stoppen van een kernelstuurprogramma vaak niet ongedaan te maken is zonder herstart.

+
+
+

kill - voor een service die niet wil stoppen

+

Het vraagt de service te stoppen en beëindigt het proces erachter alleen als dat niet werkt, dus een item dat uit zichzelf stopt wordt nooit beëindigd. Het beëindigen van een proces neemt elke andere service die in dat proces leeft mee, of ze nu eerst waren gestopt of niet, en de voorvertoning noemt ze en noemt het proces bij nummer. --force slaat de beleefde stap over en de voorvertoning toont dan één stap in plaats van twee. --restart brengt achteraf alles terug.

+

Windows spelt dit idee anders. --force bij Stop-Service betekent "ook als er iets van afhangt", wat --dependents hier doet. Daarom is dit een opdracht op zich en geen optie van stop.

+
+
+

start-type - een instelling, geen beweging

+

Het zegt wat de beheerder bij de volgende opstart met een item doet, en zonder --stop verplaatst het niets: een item dat draait blijft draaien, een gestopt item blijft gestopt, en het plan zegt dat. disabled is degene om even bij stil te staan, omdat het voorkomt dat de beheerder het item überhaupt start, ook op verzoek voor iets anders dat het nodig heeft. delayed is automatisch, een beetje na de andere automatische items gestart - het woord waarnaar start:delayed in een query vraagt - en Windows weigert het voor een item in een laadvolgordegroep, wat het plan zegt voordat er iets gebeurt. Elk van de vier schrijft of het item laat start, zoals sc.exe doet. --stop, alleen naast disabled, stopt het item in hetzelfde plan zodra de instelling is geschreven.

+
+
+

snapshot create en snapshot diff

+

create leest altijd handtekeningen en hashes, omdat een momentopname wordt bewaard en later vergeleken en een zonder die gegevens bij vergelijking met een met die gegevens zou doen alsof de machine was veranderd. diff zegt wat er veranderde van het eerste bestand naar het tweede, of van een bestand naar deze machine met --live. De pagina over momentopnamen heeft het formaat en de redenering.

+
+
+

history - wie het heeft gewijzigd, uit het systeemlogboek

+

Wijzigingen van het opstarttype en installaties uit het systeemlogboek, nieuwste eerst, met het account dat Windows heeft vastgelegd. De eerste regel zegt hoe ver het logboek teruggaat en of het is gewist, omdat een geschiedenis maar zo lang is als het logboek. Met een naam zijn het de wijzigingen van het opstarttype van die service - installaties worden alleen zonder naam getoond, omdat Windows een installatie onder de weergavenaam vastlegt en nooit onder de servicenaam. Een account wordt genoemd waar deze machine het zelf kan noemen en anders als zijn SID getoond, en opstarttypes komen in de woorden die Windows schreef.

+
+
+

tool - kant-en-klare antwoorden op veelvoorkomende problemen

+

Dezelfde tools die het venster op het tabblad Tools toont. bws tool toont ze en bws tool fix toont de snelle oplossingen: printer, sound, indexing en search, elk een herstart van één Windows-service samen met wat ervan afhangt, gekozen omdat de eigen probleemoplossingspagina's van Microsoft het voorstellen. bws tool fix printer is precies bws restart Spooler --dependents - hetzelfde plan, dezelfde uitvoer en dezelfde afsluitcodes - en zoals elke opdracht hier die iets wijzigt vraagt het niet eerst, dus --dry-run is de manier om te kijken voordat het draait.

+
+
+

license - wat er in het gedownloade bestand zit

+

Het leest helemaal niets - geen servicebeheerder, geen schijf, geen netwerk - en antwoordt uit een register dat in het uitvoerbare bestand is gecompileerd. --components verandert de mededeling in elk onderdeel met zijn versie, zijn licentie en waar het vandaan kwam. Dezelfde set die de materiaallijst naast de download bevat, omdat beide uit één register worden gemaakt, en de reden dat het de moeite waard is: het programma is één zelfstandig bestand, dus er is niets ernaast dat een scanner kan lezen.

+
+
+
+
+ +
+
+

Voorbeelden

+

De onderstaande plannen zijn met --dry-run gecontroleerd tegen het programma dat deze pagina beschrijft. Een opdracht die iets wijzigt vraagt niet eerst, dus --dry-run is de manier om te kijken voordat het draait. Spooler staat voor elke service - zet de naam van de uwe op zijn plaats.

+
+

Zoeken en lezen

+
bws list                                       elke service en elk stuurprogramma op deze machine
+bws list --query "start:auto !status:running"  wat zou moeten draaien en niet draait
+bws list --query "status:running" --memory     wat het proces van elk draaiend item gebruikt
+bws show Spooler                               alles wat over één item bekend is
+bws show Spooler --full                        ook de velden die echt leeg zijn
+

Eerst kijken, dan wijzigen

+
bws restart Spooler --dry-run                het plan, en verder niets
+bws restart Spooler --dependents             herstart het samen met wat ervan afhangt
+bws stop Spooler --dependents --timeout 120  sta twee minuten per stap zonder voortgang toe
+bws start-type WSearch delayed --dry-run     start het een beetje na de andere automatische items
+bws start-type Spooler disabled --stop       schakel het uit en stop het in één plan
+

Een service die niet wil stoppen

+
bws kill Spooler --dry-run          het proces, en elke service die erin leeft
+bws kill Spooler --restart          beëindig het proces alleen als een stop mislukt, breng dan alles terug
+bws kill Spooler --force --dry-run  één stap in plaats van twee: het proces meteen beëindigd
+

Momentopnamen en drift

+
bws snapshot create before.json --note "before the patch"  leg de machine vast, met een notitie erin bewaard
+bws snapshot diff before.json after.json                   twee bestanden - twee dagen, of twee machines
+bws snapshot diff before.json --live                       het bestand tegen deze machine zoals ze nu is
+bws snapshot diff before.json --live --exit-code           hetzelfde, eindigend met 5 als de configuratie is afgedreven
+

Wie het heeft gewijzigd

+
bws history          elke wijziging van het opstarttype en elke installatie die het systeemlogboek bevat
+bws history Spooler  de wijzigingen van het opstarttype van één service
+bws history --json   hetzelfde als document, met logboek en wijzigingen
+

Snelle oplossingen

+
bws tool                      de tools die er zijn
+bws tool fix                  de snelle oplossingen, en de service achter elk
+bws tool fix sound --dry-run  het plan om de twee audioservices te herstarten
+bws tool fix printer          herstart de Print Spooler met wat ervan afhangt
+

Wat er in het bestand zit

+
bws license --components  elk onderdeel, zijn versie, zijn licentie en waar het vandaan kwam
+bws --version             de versie van dit uitvoerbare bestand
+

In een PowerShell-script

+
# de items die zouden moeten draaien en niet draaien, als objecten
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# de niet-ondertekende bestanden, in een spreadsheet
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# wat één service nodig heeft
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# een nachtelijke controle die vertakt op de afsluitcode
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

In cmd en een batchbestand

+
rem een tweede opdracht alleen als de eerste niet schoon eindigde
+bws restart Spooler || echo the restart did not end cleanly
+
+rem in een batchbestand met vertraagde uitbreiding aan heeft de ! een dakje nodig
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

Opties

+

{{switch_count}} stuks. De derde kolom zijn de opdrachten waartoe elk behoort - een optie die aan een opdracht wordt meegegeven die er geen gebruik voor heeft is een fout met die lijst erin, in plaats van een vlag die stilletjes wordt genegeerd.

+ {{table:switches}} +
+
+ +
+
+

Afsluitcodes

+

{{exit_code_count}} eindes, en elk daarvan is iets anders voor een script om te doen. Gegevens gaan naar de standaarduitvoer en al het andere naar de standaardfout, zodat bws list --json | jq werkt en een waarschuwing nooit in uw JSON belandt.

+

Elk JSON-document is platte ASCII: een letter daarbuiten wordt geschreven als een escape van zes tekens die elke JSON-lezer terugverandert in de letter, dus bws list --json > file.json is geldige UTF-8 en | ConvertFrom-Json leest het goed welke codepagina de console ook heeft. In de tekst die een mens leest wordt een teken dat de terminal zou verplaatsen in plaats van afdrukken - een tab, een regeleinde, een escapereeks, een richtingsoverschrijving - getoond als zijn codepunt, <U+001B>.

+

-- beëindigt de opties, zodat een service waarvan de naam met een streepje begint toch kan worden genoemd: bws show -- -odd. De opdrachtregels die het hulpmiddel u geeft zijn voor PowerShell geschreven: een naam met een spatie gaat tussen dubbele aanhalingstekens, wat cmd op dezelfde manier leest, en een naam die PowerShell daarbinnen zou uitbreiden, zoals MSSQL$SQLEXPRESS, gaat tussen enkele aanhalingstekens.

+ {{table:exit-codes}} +

Ctrl+C heeft drie niveaus, elk zegt wat het volgende kost. Het eerste stopt met vooruitgaan en zet nog terug wat was weggenomen, het tweede laat dingen zoals ze zijn en drukt nog het rapport af, het derde beëindigt het proces. Een met de hand gestopte uitvoering eindigt met 4, ook als elke stap nog was aangekomen.

+

Het sluiten van het consolevenster telt als de eerste Ctrl+C. Windows geeft een programma daarna vijf seconden, en daarin stopt dit met vooruitgaan en zet het terug wat het had neergehaald. Afmelden en afsluiten beëindigen het zonder enige waarschuwing waarop het kon handelen, en een weggevallen sessie op afstand mogelijk ook.

+
+
+ +
+
+

In een geplande taak

+

De vorm waarvoor dit hulpmiddel is gebouwd: leg de machine vast wanneer ze bewezen goed is, en vraag dan elke nacht of ze dat nog is.

+
# de dag dat de machine in gebruik gaat
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# elke nacht, vanuit een geplande taak
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - geen configuratiedrift
+#   5 - de configuratie is afgedreven, en drift.json zegt wat
+#   3 - het draaide en kon niet alles lezen, dus het antwoord is gedeeltelijk
+

Het venster is de andere helft van dezelfde engine: {{archive_window}} bevat het, en de downloadpagina zegt wat elk archief is.

+
+
+ +
+
+

Het argument van het venster

+

BetterWindowsServices.exe neemt één argument dat voor een mens is bedoeld: --catalogue opent een ontwikkelaarsblad met elk onderdeel van het venster in elke toestand, en leest niets van uw machine. Een tweede, --carry, is hoe een venster doorgeeft wat het toonde aan de kopie van zichzelf die het als beheerder herstart. Niemand typt het, en alles erin wat dat venster niet kon hebben geschreven wordt geweigerd.

+
+
diff --git a/site/pages/cli-reference/page.json b/site/pages/cli-reference/page.json index c568911..de6d865 100644 --- a/site/pages/cli-reference/page.json +++ b/site/pages/cli-reference/page.json @@ -11,6 +11,12 @@ "fr": "reference-cli", "es": "referencia-cli", "it": "riferimento-cli", - "pt-br": "referencia-da-cli" + "pt-br": "referencia-da-cli", + "nl": "cli-naslag", + "cs": "reference-cli", + "ro": "referinta-cli", + "tr": "cli-basvuru", + "id": "referensi-cli", + "vi": "tham-chieu-cli" } } diff --git a/site/pages/cli-reference/ro.html b/site/pages/cli-reference/ro.html new file mode 100644 index 0000000..2b9b280 --- /dev/null +++ b/site/pages/cli-reference/ro.html @@ -0,0 +1,193 @@ + + + + + + + +
+
+ Referință +

Referința liniei de comandă

+

Fiecare comandă, fiecare opțiune și fiecare cod de ieșire al lui bws, versiunea {{version}}. Autoritar este bws --help, care este mai lung - această pagină este aceeași suprafață, aranjată pentru a fi citită.

+
+
+ +
+
+

Comenzile

+

Unsprezece comenzi. snapshot este un substantiv și primește un cuvânt după el. tool este tot un substantiv, iar singur listează instrumentele.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

O comandă scrisă greșit primește oferta celei pe care probabil ați vrut-o, iar rularea se încheie cu codul 2, în loc să facă ceva apropiat de ce ați cerut.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

Ce face fiecare comandă

+
+
+

list și show

+

list este toată mașina, restrânsă cu --query. show este o singură intrare cu tot ce se știe despre ea - semnătura, privilegiile, descriptorul de securitate și memoria, toate citite de fiecare dată, pentru că peste o singură intrare asta costă cam șaizeci de milisecunde, în timp ce peste toată mașina costă o secundă. Câmpurile cu adevărat goale sunt omise dacă nu dați --full. Un câmp pe care nimeni nu l-a putut citi este tipărit oricum, pentru că omiterea lui ar arăta ca un răspuns.

+
+
+

stop, start și restart

+

Fiecare construiește un plan și îl execută. --dry-run tipărește planul și nu schimbă nimic, --dependents pune în el, ca pași de sine stătători, serviciile care s-ar defecta, iar --timeout spune cât timp poate merge un pas fără progres. Driverele sunt refuzate, nu încercate, pentru că oprirea unui driver de nucleu adesea nu se poate anula fără repornire.

+
+
+

kill - pentru un serviciu care nu vrea să se oprească

+

Cere serviciului să se oprească și încheie procesul din spatele lui doar dacă asta nu funcționează, așa că o intrare care se oprește singură nu este niciodată încheiată. Încheierea unui proces ia cu sine fiecare alt serviciu care trăiește în acel proces, indiferent dacă s-a oprit mai întâi sau nu, iar previzualizarea le numește și numește procesul prin număr. --force sare peste pasul politicos, iar previzualizarea arată atunci un pas în loc de doi. --restart readuce totul după aceea.

+

Windows scrie această idee altfel. --force la Stop-Service înseamnă "chiar dacă ceva depinde de el", ceea ce face aici --dependents. De aceea aceasta este o comandă proprie și nu o opțiune a lui stop.

+
+
+

start-type - o setare, nu o mișcare

+

Spune ce va face managerul cu o intrare la următoarea pornire și, fără --stop, nu mută nimic: o intrare care rulează continuă să ruleze, una oprită rămâne oprită, iar planul spune asta. disabled este cea la care merită să vă opriți, pentru că împiedică managerul să pornească intrarea deloc, inclusiv la cerere pentru altceva care are nevoie de ea. delayed este automat, pornit puțin după celelalte intrări automate - cuvântul despre care întreabă start:delayed într-o interogare - iar Windows îl refuză pentru o intrare dintr-un grup de ordine de încărcare, lucru pe care planul îl spune înainte să se întâmple ceva. Fiecare dintre cele patru scrie dacă intrarea pornește târziu, așa cum face sc.exe. --stop, doar alături de disabled, oprește intrarea în același plan după ce setarea este scrisă.

+
+
+

snapshot create și snapshot diff

+

create citește întotdeauna semnăturile și hash-urile, pentru că un instantaneu este păstrat și comparat mai târziu, iar unul fără ele, comparat cu unul cu ele, ar face să pară că mașina s-a schimbat. diff spune ce s-a schimbat de la primul fișier la al doilea sau de la un fișier la această mașină cu --live. Pagina despre instantanee are formatul și raționamentul.

+
+
+

history - cine a schimbat, din jurnalul System

+

Schimbările de tip de pornire și instalările din jurnalul System, cele mai noi primele, cu contul pe care Windows l-a înregistrat. Prima linie spune cât de departe ajunge jurnalul și dacă a fost șters, pentru că un istoric este doar cât este de lung jurnalul. Cu un nume, sunt schimbările de tip de pornire ale acelui serviciu - instalările sunt listate doar fără nume, pentru că Windows înregistrează o instalare sub numele afișat și niciodată sub numele serviciului. Un cont este numit acolo unde această mașină îl poate numi singură și arătat ca SID în caz contrar, iar tipurile de pornire vin în cuvintele pe care le-a scris Windows.

+
+
+

tool - răspunsuri gata făcute la probleme frecvente

+

Aceleași instrumente pe care fereastra le arată în fila Tools. bws tool le listează, iar bws tool fix listează remedierile rapide: printer, sound, indexing și search, fiecare o repornire a unui serviciu Windows împreună cu ce depinde de el, alese pentru că paginile de depanare ale Microsoft însuși o sugerează. bws tool fix printer este exact bws restart Spooler --dependents - același plan, aceeași ieșire și aceleași coduri de ieșire - și, ca orice comandă de aici care schimbă ceva, nu întreabă mai întâi, deci --dry-run este calea de a privi înainte să ruleze.

+
+
+

license - ce se află în fișierul descărcat

+

Nu citește absolut nimic - niciun manager de servicii, niciun disc, nicio rețea - și răspunde dintr-un registru compilat în executabil. --components transformă mențiunea în fiecare componentă cu versiunea, licența și proveniența ei. Același set pe care îl poartă lista de materiale publicată lângă descărcare, pentru că ambele sunt generate dintr-un singur registru, și motivul pentru care merită: programul este un singur fișier independent, deci nu este nimic lângă el pe care un scaner să-l citească.

+
+
+
+
+ +
+
+

Exemple

+

Planurile de mai jos au fost verificate cu --dry-run pe programul pe care îl descrie această pagină. O comandă care schimbă ceva nu întreabă mai întâi, deci --dry-run este calea de a privi înainte să ruleze. Spooler stă pentru orice serviciu - puneți în loc numele serviciului dumneavoastră.

+
+

Găsire și citire

+
bws list                                       fiecare serviciu și driver de pe această mașină
+bws list --query "start:auto !status:running"  ce ar trebui să fie pornit și nu este
+bws list --query "status:running" --memory     ce folosește procesul fiecărei intrări care rulează
+bws show Spooler                               tot ce se știe despre o intrare
+bws show Spooler --full                        și câmpurile care sunt cu adevărat goale
+

Mai întâi priviți, apoi schimbați

+
bws restart Spooler --dry-run                planul și nimic altceva
+bws restart Spooler --dependents             repornește-l împreună cu ce depinde de el
+bws stop Spooler --dependents --timeout 120  permite două minute pe pas fără progres
+bws start-type WSearch delayed --dry-run     pornește-l puțin după celelalte intrări automate
+bws start-type Spooler disabled --stop       dezactivează-l și oprește-l într-un singur plan
+

Un serviciu care nu vrea să se oprească

+
bws kill Spooler --dry-run          procesul și fiecare serviciu care trăiește în el
+bws kill Spooler --restart          încheie procesul doar dacă o oprire eșuează, apoi readu totul
+bws kill Spooler --force --dry-run  un pas în loc de doi: procesul încheiat imediat
+

Instantanee și derivă

+
bws snapshot create before.json --note "before the patch"  îngheață mașina, cu o notă păstrată în interior
+bws snapshot diff before.json after.json                   două fișiere - două zile sau două mașini
+bws snapshot diff before.json --live                       fișierul față de această mașină așa cum este acum
+bws snapshot diff before.json --live --exit-code           la fel, încheindu-se cu 5 dacă configurația a derivat
+

Cine a schimbat

+
bws history          fiecare schimbare de tip de pornire și instalare pe care o conține jurnalul System
+bws history Spooler  schimbările de tip de pornire ale unui serviciu
+bws history --json   la fel ca document, cu jurnal și schimbări
+

Remedieri rapide

+
bws tool                      instrumentele care există
+bws tool fix                  remedierile rapide și serviciul din spatele fiecăreia
+bws tool fix sound --dry-run  planul pentru repornirea celor două servicii audio
+bws tool fix printer          repornește Print Spooler cu ce depinde de el
+

Ce se află în fișier

+
bws license --components  fiecare componentă, versiunea, licența și proveniența ei
+bws --version             versiunea acestui executabil
+

Într-un script PowerShell

+
# intrările care ar trebui să fie pornite și nu sunt, ca obiecte
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# fișierele nesemnate, într-o foaie de calcul
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# de ce are nevoie un serviciu
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# o verificare nocturnă care ramifică după codul de ieșire
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

În cmd și într-un fișier batch

+
rem o a doua comandă doar când prima nu s-a încheiat curat
+bws restart Spooler || echo the restart did not end cleanly
+
+rem într-un fișier batch cu expandare întârziată activată, ! are nevoie de semnul ^
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

Opțiuni

+

{{switch_count}} la număr. A treia coloană sunt comenzile cărora le aparține fiecare - o opțiune dată unei comenzi care nu are ce face cu ea este o eroare cu acea listă în ea, nu un indicator ignorat în tăcere.

+ {{table:switches}} +
+
+ +
+
+

Coduri de ieșire

+

{{exit_code_count}} sfârșituri, iar fiecare este un lucru diferit de făcut pentru un script. Datele merg la ieșirea standard și tot restul la eroarea standard, deci bws list --json | jq funcționează, iar un avertisment nu ajunge niciodată în JSON-ul dumneavoastră.

+

Fiecare document JSON este ASCII simplu: o literă din afara lui este scrisă ca un escape de șase caractere pe care orice cititor JSON îl transformă înapoi în literă, deci bws list --json > file.json este UTF-8 valid, iar | ConvertFrom-Json îl citește corect indiferent de pagina de cod a consolei. În textul pe care îl citește o persoană, un caracter care ar muta terminalul în loc să se tipărească - un tab, o întrerupere de linie, o secvență escape, o suprascriere a direcției - este arătat ca punctul său de cod, <U+001B>.

+

-- încheie opțiunile, așa că un serviciu al cărui nume începe cu o liniuță poate fi totuși numit: bws show -- -odd. Liniile de comandă pe care vi le dă instrumentul sunt scrise pentru PowerShell: un nume cu spațiu merge între ghilimele duble, pe care cmd le citește la fel, iar un nume pe care PowerShell l-ar expanda înăuntrul lor, precum MSSQL$SQLEXPRESS, merge între ghilimele simple.

+ {{table:exit-codes}} +

Ctrl+C are trei niveluri, fiecare spunând ce costă următorul. Primul încetează să meargă înainte și tot pune la loc ce a fost luat, al doilea lasă lucrurile cum sunt și tot tipărește raportul, al treilea încheie procesul. O rulare oprită cu mâna se încheie cu 4 chiar dacă fiecare pas a ajuns.

+

Închiderea ferestrei consolei contează ca primul Ctrl+C. Windows dă apoi unui program cinci secunde, iar în ele acesta încetează să meargă înainte și pune la loc ce a doborât. Deconectarea și oprirea îl încheie fără niciun avertisment la care ar putea reacționa, iar o sesiune la distanță căzută poate la fel.

+
+
+ +
+
+

Într-o sarcină programată

+

Forma pentru care a fost construit acest instrument: înghețați mașina când se știe că este bună, apoi întrebați în fiecare noapte dacă încă este.

+
# ziua în care mașina intră în serviciu
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# în fiecare noapte, dintr-o sarcină programată
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - nicio derivă de configurație
+#   5 - configurația a derivat, iar drift.json spune ce
+#   3 - a rulat și n-a putut citi totul, deci răspunsul este parțial
+

Fereastra este cealaltă jumătate a aceluiași motor: {{archive_window}} o conține, iar pagina de descărcare spune ce este fiecare arhivă.

+
+
+ +
+
+

Argumentul ferestrei

+

BetterWindowsServices.exe primește un argument destinat unei persoane: --catalogue deschide o foaie pentru dezvoltatori care arată fiecare componentă a ferestrei în fiecare stare și nu citește nimic de pe mașina dumneavoastră. Un al doilea, --carry, este modul în care o fereastră predă ce afișa copiei sale pe care o repornește ca administrator. Nimeni nu îl tastează, iar orice din el pe care acea fereastră n-ar fi putut să-l scrie este refuzat.

+
+
diff --git a/site/pages/cli-reference/ru.html b/site/pages/cli-reference/ru.html new file mode 100644 index 0000000..04778ff --- /dev/null +++ b/site/pages/cli-reference/ru.html @@ -0,0 +1,194 @@ + + + + + + + +
+
+ Справочник +

Справочник командной строки

+

Каждая команда, каждый параметр и каждый код завершения bws, версия {{version}}. Авторитетна bws --help, и она длиннее - эта страница показывает ту же поверхность, разложенную так, чтобы её было удобно читать.

+
+
+ +
+
+

Команды

+

Одиннадцать команд. snapshot - существительное и принимает после себя слово. tool тоже существительное, и само по себе оно перечисляет инструменты.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

Для неверно набранной команды предлагается та, которую вы, вероятно, имели в виду, и выполнение завершается кодом 2, а не делает что-то близкое к тому, что вы просили.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

Что делает каждая команда

+
+
+

list и show

+

list - это вся машина, суженная параметром --query. show - одна запись со всем, что о ней известно: подпись, привилегии, дескриптор безопасности и память, всё это читается каждый раз, потому что для одной записи это стоит около шестидесяти миллисекунд, а для всей машины - секунду. Поля, которые действительно пусты, опускаются, пока вы не передадите --full. Поле, которое никто не смог прочитать, печатается в любом случае, потому что его пропуск выглядел бы как ответ.

+
+
+

stop, start и restart

+

Каждая строит план и выполняет его. --dry-run печатает план и ничего не меняет, --dependents включает в него службы, которые сломались бы, как отдельные шаги, а --timeout говорит, сколько один шаг может идти без прогресса. Драйверы отклоняются, а не пробуются, потому что остановка драйвера ядра часто необратима без перезагрузки.

+
+
+

kill - для службы, которая не останавливается

+

Он просит службу остановиться и завершает стоящий за ней процесс, только если это не сработало, поэтому запись, которая останавливается сама, никогда не завершается принудительно. Завершение процесса уносит с собой каждую другую службу, живущую в этом процессе, остановились они до этого или нет, а предпросмотр называет их и называет процесс по номеру. --force пропускает вежливый шаг, и предпросмотр тогда показывает один шаг вместо двух. --restart потом возвращает всё обратно.

+

Windows пишет эту идею иначе. --force у Stop-Service означает «даже если что-то от неё зависит», а это здесь делает --dependents. Поэтому это отдельная команда, а не параметр у stop.

+
+
+

start-type - настройка, а не действие

+

Он говорит, что диспетчер сделает с записью при следующей загрузке, и без --stop ничего не двигает: работающая запись продолжает работать, остановленная остаётся остановленной, и план говорит об этом. disabled - то, на чём стоит задержаться, потому что оно вообще не даёт диспетчеру запускать запись, в том числе по требованию для чего-то другого, что в ней нуждается. delayed - это автоматический запуск чуть позже остальных автоматических записей, слово, о котором спрашивает start:delayed в запросе, - и Windows отказывает в нём для записи из группы порядка загрузки, о чём план сообщает до того, как что-либо произойдёт. Каждый из четырёх записывает, запускается ли запись с задержкой, как это делает sc.exe. --stop, только вместе с disabled, останавливает запись в том же плане после записи настройки.

+
+
+

snapshot create и snapshot diff

+

create всегда читает подписи и хеши, потому что снимок хранится и сравнивается позже, а снимок без них при сравнении со снимком с ними выглядел бы так, будто машина изменилась. diff говорит, что изменилось при переходе от первого файла ко второму или от файла к этой машине с --live. Страница о снимках содержит формат и обоснование.

+
+
+

history - кто изменил, по журналу System

+

Изменения типа запуска и установки из журнала System, новые первыми, с учётной записью, которую записала Windows. Первая строка говорит, насколько далеко назад уходит журнал и не очищался ли он, потому что история длится не дольше журнала. С именем это изменения типа запуска этой службы: установки перечисляются только без имени, потому что Windows записывает установку под отображаемым именем и никогда под именем службы. Учётная запись называется там, где эта машина может назвать её сама, а иначе показывается как SID, а типы запуска приходят теми словами, которыми их записала Windows.

+
+
+

tool - готовые ответы на частые проблемы

+

Те же инструменты, что окно показывает на вкладке Tools. bws tool перечисляет их, а bws tool fix перечисляет быстрые исправления: printer, sound, indexing и search, каждое - перезапуск одной службы Windows вместе с тем, что от неё зависит, выбранный потому, что его предлагают собственные страницы Microsoft по устранению неполадок. bws tool fix printer - это в точности bws restart Spooler --dependents: тот же план, тот же вывод и те же коды завершения, - и, как каждая команда здесь, что-то меняющая, она не спрашивает заранее, поэтому --dry-run - способ посмотреть, прежде чем она выполнится.

+
+
+

license - что внутри скачанного файла

+

Она вообще ничего не читает - ни диспетчера служб, ни диска, ни сети - и отвечает из реестра, скомпилированного в исполняемый файл. --components превращает уведомление в каждый компонент с его версией, лицензией и происхождением. Тот же набор, что несёт опубликованная рядом с загрузкой ведомость материалов, потому что обе строятся из одного реестра, и поэтому её стоит иметь: программа - один автономный файл, рядом с ним нет ничего, что мог бы прочитать сканер.

+
+
+
+
+ +
+
+

Примеры

+

Планы ниже проверены с --dry-run на программе, которую описывает эта страница. Команда, которая что-то меняет, не спрашивает заранее, поэтому --dry-run - способ посмотреть, прежде чем она выполнится. Spooler обозначает любую службу - подставьте вместо него имя своей.

+
+

Найти и прочитать

+
bws list                                       каждая служба и драйвер на этой машине
+bws list --query "start:auto !status:running"  что должно работать и не работает
+bws list --query "status:running" --memory     что использует процесс каждой работающей записи
+bws show Spooler                               всё, что известно об одной записи
+bws show Spooler --full                        и поля, которые действительно пусты
+

Сначала посмотреть, потом менять

+
bws restart Spooler --dry-run                план и ничего больше
+bws restart Spooler --dependents             перезапустить её вместе с тем, что от неё зависит
+bws stop Spooler --dependents --timeout 120  разрешить две минуты на шаг без прогресса
+bws start-type WSearch delayed --dry-run     запускать чуть позже остальных автоматических записей
+bws start-type Spooler disabled --stop       отключить и остановить в одном плане
+

Служба, которая не останавливается

+
bws kill Spooler --dry-run          процесс и каждая служба, которая в нём живёт
+bws kill Spooler --restart          завершить процесс, только если остановка не удалась, потом вернуть всё
+bws kill Spooler --force --dry-run  один шаг вместо двух: процесс завершён сразу
+

Снимки и дрейф

+
bws snapshot create before.json --note "before the patch"  заморозить машину с примечанием, хранящимся внутри
+bws snapshot diff before.json after.json                   два файла - два дня или две машины
+bws snapshot diff before.json --live                       файл против этой машины в её текущем виде
+bws snapshot diff before.json --live --exit-code           то же, завершается кодом 5, если конфигурация ушла в дрейф
+

Кто изменил

+
bws history          каждое изменение типа запуска и каждая установка, которые хранит журнал System
+bws history Spooler  изменения типа запуска одной службы
+bws history --json   то же в виде документа, с журналом и изменениями
+

Быстрые исправления

+
bws tool                      какие есть инструменты
+bws tool fix                  быстрые исправления и служба за каждым из них
+bws tool fix sound --dry-run  план перезапуска двух звуковых служб
+bws tool fix printer          перезапустить Print Spooler вместе с тем, что от него зависит
+

Что внутри файла

+
bws license --components  каждый компонент, его версия, лицензия и происхождение
+bws --version             версия этого исполняемого файла
+

В скрипте PowerShell

+
# записи, которые должны работать и не работают, как объекты
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# неподписанные файлы - в таблицу
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# что нужно одной службе
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# ночная проверка, ветвящаяся по коду завершения
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

В cmd и пакетном файле

+
rem вторая команда, только если первая завершилась не чисто
+bws restart Spooler || echo the restart did not end cleanly
+
+rem в пакетном файле с включённым отложенным расширением для ! нужна каретка
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

Параметры

+

{{switch_count}} штук. Третий столбец - команды, к которым относится каждый: параметр, переданный команде, которой он ни к чему, - это ошибка с этим списком внутри, а не молча игнорируемый флаг.

+ {{table:switches}} +
+
+ +
+
+

Коды завершения

+

{{exit_code_count}} исходов, и каждый - это отдельное действие для скрипта. Данные идут в стандартный вывод, а всё остальное в стандартный поток ошибок, поэтому bws list --json | jq работает, а предупреждение никогда не попадёт в ваш JSON.

+

Каждый документ JSON - простой ASCII: буква вне него записывается как шестисимвольная escape-последовательность, которую любой читатель JSON превращает обратно в букву, поэтому bws list --json > file.json - корректный UTF-8, а | ConvertFrom-Json читает его верно при любой кодовой странице консоли. В тексте, который читает человек, символ, который сдвинул бы терминал вместо того, чтобы напечататься, - табуляция, перевод строки, escape-последовательность, переопределение направления - показывается как его кодовая точка, <U+001B>.

+

-- завершает параметры, поэтому службу, имя которой начинается с дефиса, всё же можно назвать: bws show -- -odd. Командные строки, которые вам выдаёт инструмент, написаны для PowerShell: имя с пробелом берётся в двойные кавычки, которые cmd читает так же, а имя, которое PowerShell раскрыл бы внутри них, например MSSQL$SQLEXPRESS, берётся в одинарные.

+ {{table:exit-codes}} +

У Ctrl+C три уровня, и каждый говорит, чего стоит следующий. Первый перестаёт двигаться вперёд и всё же возвращает взятое, второй оставляет всё как есть и всё же печатает отчёт, третий завершает процесс. Выполнение, остановленное вручную, завершается кодом 4, даже если каждый шаг всё же дошёл.

+

Закрытие окна консоли считается первым Ctrl+C. После этого Windows даёт программе пять секунд, и за них она перестаёт двигаться вперёд и возвращает то, что обрушила. Выход из системы и выключение завершают её без какого-либо предупреждения, на которое она могла бы отреагировать, и оборвавшийся удалённый сеанс - возможно, тоже.

+
+
+ +
+
+

В запланированной задаче

+

Форма, для которой этот инструмент построен: заморозьте машину, когда известно, что она в порядке, а потом каждую ночь спрашивайте, так ли это ещё.

+
# день, когда машина вводится в эксплуатацию
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# каждую ночь, из запланированной задачи
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - дрейфа конфигурации нет
+#   5 - конфигурация ушла в дрейф, и drift.json говорит в чём
+#   3 - выполнилось и не смогло прочитать всё, поэтому ответ частичный
+

Окно - вторая половина того же движка: {{archive_window}} содержит его, а страница загрузки говорит, что такое каждый архив.

+
+
+ +
+
+

Аргумент окна

+

BetterWindowsServices.exe принимает один аргумент, предназначенный для человека: --catalogue открывает лист разработчика, показывающий каждый компонент окна в каждом состоянии, и ничего не читает с вашей машины. Второй, --carry, - способ, которым окно передаёт то, что показывало, своей копии, которую перезапускает от имени администратора. Его никто не набирает, и всё в нём, чего это окно не могло бы записать, отклоняется.

+
+
diff --git a/site/pages/cli-reference/tr.html b/site/pages/cli-reference/tr.html new file mode 100644 index 0000000..57f1de5 --- /dev/null +++ b/site/pages/cli-reference/tr.html @@ -0,0 +1,193 @@ + + + + + + + +
+
+ Başvuru +

Komut satırı başvurusu

+

bws'nin her komutu, her seçeneği ve her çıkış kodu, sürüm {{version}}. Yetkili olan bws --help'tir ve daha uzundur - bu sayfa aynı yüzeydir, okunmak üzere düzenlenmiş.

+
+
+ +
+
+

Komutlar

+

On bir komut. snapshot bir isimdir ve arkasından bir sözcük alır. tool da bir isimdir ve tek başına araçları listeler.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

Yanlış yazılmış bir komuta büyük olasılıkla kastettiğiniz komut önerilir ve çalıştırma, istediğinize yakın bir şey yapmak yerine 2 koduyla biter.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

Her komut ne yapar

+
+
+

list ve show

+

list tüm makinedir, --query ile daraltılmış. show, hakkında bilinen her şeyle tek bir öğedir - imza, ayrıcalıklar, güvenlik tanımlayıcısı ve bellek; hepsi her seferinde okunur, çünkü tek bir öğede bu yaklaşık altmış milisaniyeye mal olurken tüm makinede bir saniyeye mal olur. Gerçekten boş olan alanlar, --full vermedikçe bırakılır. Kimsenin okuyamadığı bir alan her durumda yazdırılır, çünkü bırakılması bir yanıt gibi görünürdü.

+
+
+

stop, start ve restart

+

Her biri bir plan kurar ve yürütür. --dry-run planı yazdırır ve hiçbir şeyi değiştirmez, --dependents bozulacak hizmetleri plana kendi başlarına birer adım olarak koyar, --timeout ise bir adımın ilerleme olmadan ne kadar gidebileceğini söyler. Sürücüler denenmez, reddedilir; çünkü bir çekirdek sürücüsünü durdurmak çoğu zaman yeniden başlatma olmadan geri alınamaz.

+
+
+

kill - durmayan bir hizmet için

+

Hizmetten durmasını ister ve arkasındaki süreci yalnızca bu işe yaramazsa sonlandırır; yani kendiliğinden duran bir öğe asla sonlandırılmaz. Bir süreci sonlandırmak, o süreçte yaşayan diğer her hizmeti, önce durmuş olsun olmasın, beraberinde götürür ve önizleme bunları ve süreci numarasıyla adlandırır. --force kibar adımı atlar ve önizleme o zaman iki yerine bir adım gösterir. --restart sonrasında her şeyi geri getirir.

+

Windows bu fikri farklı yazar. Stop-Service üzerinde --force "ona bağlı bir şey olsa bile" demektir; burada --dependents'in yaptığı budur. Bu yüzden bu, stop üzerinde bir seçenek değil, kendi başına bir komuttur.

+
+
+

start-type - bir ayar, bir hareket değil

+

Yöneticinin bir öğeyle bir sonraki açılışta ne yapacağını söyler ve --stop olmadan hiçbir şeyi taşımaz: çalışan bir öğe çalışmaya devam eder, durmuş olan durmuş kalır ve plan bunu söyler. disabled, üzerinde durulmaya değer olandır; çünkü yöneticinin öğeyi hiç başlatmasını, ona ihtiyaç duyan başka bir şey için isteğe bağlı olarak başlatmasını da dahil, engeller. delayed otomatiktir, diğer otomatik öğelerden biraz sonra başlatılır - bir sorguda start:delayed'in sorduğu sözcük - ve Windows bunu yükleme sırası grubundaki bir öğe için reddeder; bunu plan, bir şey olmadan önce söyler. Dördünün her biri, sc.exe'nin yaptığı gibi, öğenin geç başlayıp başlamadığını yazar. --stop, yalnızca disabled ile birlikte, ayar yazıldıktan sonra öğeyi aynı planda durdurur.

+
+
+

snapshot create ve snapshot diff

+

create imzaları ve karmaları her zaman okur; çünkü bir anlık görüntü saklanır ve sonra karşılaştırılır, bunlar olmayan biri, bunlarla birlikte olan biriyle karşılaştırıldığında makine değişmiş gibi görünürdü. diff, ilk dosyadan ikinciye giderken ya da --live ile bir dosyadan bu makineye giderken neyin değiştiğini söyler. Anlık görüntü sayfası biçimi ve gerekçeyi içerir.

+
+
+

history - kimin değiştirdiği, System günlüğünden

+

System günlüğünden başlangıç türü değişiklikleri ve kurulumlar; en yeniler önce, Windows'un kaydettiği hesapla birlikte. İlk satır günlüğün ne kadar geriye gittiğini ve temizlenip temizlenmediğini söyler; çünkü bir geçmiş ancak günlük kadar uzundur. Bir adla, o hizmetin başlangıç türü değişiklikleridir - kurulumlar yalnızca adsız listelenir, çünkü Windows bir kurulumu görünen ad altında kaydeder ve asla hizmet adı altında değil. Bir hesap, bu makinenin onu kendi başına adlandırabildiği yerde adlandırılır, aksi halde SID'i olarak gösterilir ve başlangıç türleri Windows'un yazdığı sözcüklerle gelir.

+
+
+

tool - yaygın sorunlara hazır yanıtlar

+

Pencerenin Tools sekmesinde gösterdiği araçların aynısı. bws tool onları listeler, bws tool fix ise hızlı düzeltmeleri listeler: printer, sound, indexing ve search; her biri, Microsoft'un kendi sorun giderme sayfalarının önerdiği için seçilmiş, tek bir Windows hizmetinin ona bağlı olanlarla birlikte yeniden başlatılmasıdır. bws tool fix printer tam olarak bws restart Spooler --dependents'tir - aynı plan, aynı çıktı ve aynı çıkış kodları - ve buradaki bir şeyi değiştiren her komut gibi önce sormaz, bu yüzden çalışmadan önce bakmanın yolu --dry-run'dır.

+
+
+

license - indirdiğiniz dosyanın içinde ne var

+

Hiçbir şey okumaz - hizmet yöneticisi yok, disk yok, ağ yok - ve yürütülebilir dosyaya derlenmiş bir kayıttan yanıt verir. --components bildirimi her bileşene, sürümü, lisansı ve nereden geldiğiyle açar. İndirmenin yanında yayımlanan malzeme listesinin taşıdığı aynı küme, çünkü ikisi de tek bir kayıttan üretilir ve buna değmesinin nedeni de budur: program tek bir bağımsız dosyadır, yani yanında bir tarayıcının okuyabileceği hiçbir şey yoktur.

+
+
+
+
+ +
+
+

Örnekler

+

Aşağıdaki planlar, bu sayfanın anlattığı programa karşı --dry-run ile denetlendi. Bir şeyi değiştiren komut önce sormaz, bu yüzden çalışmadan önce bakmanın yolu --dry-run'dır. Spooler herhangi bir hizmeti temsil eder - yerine kendi hizmetinizin adını koyun.

+
+

Bul ve oku

+
bws list                                       bu makinedeki her hizmet ve sürücü
+bws list --query "start:auto !status:running"  açık olması gereken ve olmayan
+bws list --query "status:running" --memory     çalışan her öğenin işleminin ne kullandığı
+bws show Spooler                               bir öğe hakkında bilinen her şey
+bws show Spooler --full                        gerçekten boş olan alanlar da
+

Önce bak, sonra değiştir

+
bws restart Spooler --dry-run                plan ve başka hiçbir şey
+bws restart Spooler --dependents             onu, ona bağlı olanlarla birlikte yeniden başlat
+bws stop Spooler --dependents --timeout 120  ilerleme olmadan adım başına iki dakikaya izin ver
+bws start-type WSearch delayed --dry-run     diğer otomatik öğelerden biraz sonra başlat
+bws start-type Spooler disabled --stop       devre dışı bırak ve tek planda durdur
+

Durmayan bir hizmet

+
bws kill Spooler --dry-run          süreç ve içinde yaşayan her hizmet
+bws kill Spooler --restart          süreci yalnızca durdurma başarısız olursa sonlandır, sonra hepsini geri getir
+bws kill Spooler --force --dry-run  iki yerine bir adım: süreç hemen sonlandırıldı
+

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

+
bws snapshot create before.json --note "before the patch"  makineyi dondur, içinde saklanan bir notla
+bws snapshot diff before.json after.json                   iki dosya - iki gün ya da iki makine
+bws snapshot diff before.json --live                       dosya, bu makineyle şu anki haliyle
+bws snapshot diff before.json --live --exit-code           aynısı, yapılandırma saptıysa 5 ile biter
+

Kimin değiştirdiği

+
bws history          System günlüğünün tuttuğu her başlangıç türü değişikliği ve kurulum
+bws history Spooler  tek bir hizmetin başlangıç türü değişiklikleri
+bws history --json   aynısı bir belge olarak, günlük ve değişikliklerle
+

Hızlı düzeltmeler

+
bws tool                      mevcut araçlar
+bws tool fix                  hızlı düzeltmeler ve her birinin arkasındaki hizmet
+bws tool fix sound --dry-run  iki ses hizmetini yeniden başlatma planı
+bws tool fix printer          Print Spooler'ı ona bağlı olanlarla yeniden başlat
+

Dosyanın içinde ne var

+
bws license --components  her bileşen, sürümü, lisansı ve nereden geldiği
+bws --version             bu yürütülebilir dosyanın sürümü
+

Bir PowerShell betiğinde

+
# açık olması gereken ve olmayan öğeler, nesne olarak
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# imzasız dosyalar, bir elektronik tabloya
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# bir hizmetin neye ihtiyaç duyduğu
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# çıkış koduna göre dallanan gecelik bir denetim
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

cmd'de ve bir toplu iş dosyasında

+
rem ikinci bir komut yalnızca ilki temiz bitmediğinde
+bws restart Spooler || echo the restart did not end cleanly
+
+rem gecikmeli genişletmenin açık olduğu bir toplu iş dosyasında ! için bir şapka işareti gerekir
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

Seçenekler

+

{{switch_count}} tane. Üçüncü sütun, her birinin ait olduğu komutlardır - işe yaramayacağı bir komuta verilen seçenek, sessizce yok sayılan bir bayrak değil, içinde o liste olan bir hatadır.

+ {{table:switches}} +
+
+ +
+
+

Çıkış kodları

+

{{exit_code_count}} son ve her biri bir betiğin yapacağı farklı bir şeydir. Veriler standart çıktıya, geri kalan her şey standart hataya gider; böylece bws list --json | jq çalışır ve bir uyarı asla JSON'unuza düşmez.

+

Her JSON belgesi düz ASCII'dir: onun dışındaki bir harf, her JSON okuyucusunun harfe geri çevirdiği altı karakterlik bir kaçış olarak yazılır; bu yüzden bws list --json > file.json geçerli UTF-8'dir ve konsolun hangi kod sayfasına ayarlı olduğundan bağımsız olarak | ConvertFrom-Json onu doğru okur. Bir insanın okuduğu metinde, yazdırılmak yerine terminali oynatacak bir karakter - bir sekme, bir satır sonu, bir kaçış dizisi, bir yön geçersiz kılma - kod noktası olarak gösterilir, <U+001B>.

+

-- seçenekleri sonlandırır; böylece adı tireyle başlayan bir hizmet yine de adlandırılabilir: bws show -- -odd. Aracın size verdiği komut satırları PowerShell için yazılmıştır: boşluklu bir ad çift tırnağa girer, cmd bunu aynı şekilde okur; PowerShell'in içlerinde genişleteceği bir ad ise, örneğin MSSQL$SQLEXPRESS, tek tırnağa girer.

+ {{table:exit-codes}} +

Ctrl+C'nin üç düzeyi vardır; her biri bir sonrakinin neye mal olduğunu söyler. Birincisi ilerlemeyi bırakır ve alınanı yine geri koyar, ikincisi işleri olduğu gibi bırakır ve raporu yine yazdırır, üçüncüsü süreci sonlandırır. Elle durdurulan bir çalıştırma, her adım yine de ulaşmış olsa bile 4 ile biter.

+

Konsol penceresini kapatmak ilk Ctrl+C sayılır. Windows bundan sonra bir programa beş saniye verir ve bu sürede program ilerlemeyi bırakır ve indirdiğini geri koyar. Oturumu kapatmak ve bilgisayarı kapatmak, tepki verebileceği hiçbir uyarı olmadan onu sonlandırır; kopmuş bir uzak oturum da öyle olabilir.

+
+
+ +
+
+

Zamanlanmış bir görevde

+

Bu aracın üzerine kurulduğu biçim: makine iyi olduğu bilindiğinde dondurun, sonra her gece hâlâ öyle olup olmadığını sorun.

+
# 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
+

Pencere aynı motorun diğer yarısıdır: {{archive_window}} onu içerir ve indirme sayfası her arşivin ne olduğunu söyler.

+
+
+ +
+
+

Pencerenin bağımsız değişkeni

+

BetterWindowsServices.exe bir insan için tasarlanmış tek bir bağımsız değişken alır: --catalogue, pencerenin her bileşenini her durumda gösteren bir geliştirici sayfası açar ve makinenizden hiçbir şey okumaz. İkincisi, --carry, bir pencerenin gösterdiği şeyi yönetici olarak yeniden başlattığı kendi kopyasına aktarma yoludur. Kimse onu yazmaz ve içindeki, o pencerenin yazamayacağı her şey reddedilir.

+
+
diff --git a/site/pages/cli-reference/uk.html b/site/pages/cli-reference/uk.html new file mode 100644 index 0000000..4e3fc9b --- /dev/null +++ b/site/pages/cli-reference/uk.html @@ -0,0 +1,193 @@ + + + + + + + +
+
+ Довідник +

Довідник командного рядка

+

Кожна команда, кожен параметр і кожен код завершення bws, версія {{version}}. Найавторитетніша - bws --help, і вона довша: ця сторінка - та сама поверхня, розкладена для читання.

+
+
+ +
+
+

Команди

+

Одинадцять команд. snapshot - іменник і приймає після себе слово. tool теж іменник, і сам по собі виводить список інструментів.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

Для помилково набраної команди пропонується та, яку ви, імовірно, мали на увазі, і виконання завершується кодом 2, а не робить щось близьке до того, про що ви просили.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

Що робить кожна команда

+
+
+

list і show

+

list - це вся машина, звужена за допомогою --query. show - один запис з усім, що про нього відомо: підпис, привілеї, дескриптор безпеки й пам'ять, і все це читається щоразу, бо для одного запису це коштує близько шістдесяти мілісекунд, тоді як для всієї машини - секунду. Поля, які справді порожні, пропускаються, якщо не передати --full. Поле, яке ніхто не зміг прочитати, друкується в будь-якому разі, бо його пропуск виглядав би як відповідь.

+
+
+

stop, start і restart

+

Кожна будує план і виконує його. --dry-run друкує план і нічого не змінює, --dependents вносить до нього служби, які б зламалися, окремими кроками, а --timeout каже, скільки один крок може тривати без прогресу. Драйвери відхиляються, а не пробуються, бо зупинка драйвера ядра часто необоротна без перезапуску.

+
+
+

kill - для служби, яка не зупиняється

+

Вона просить службу зупинитися й завершує процес за нею лише якщо це не спрацювало, тож запис, який зупиняється сам, ніколи не завершується примусово. Завершення процесу забирає з собою кожну іншу службу, що живе в цьому процесі, незалежно від того, чи зупинилася вона раніше, і попередній перегляд називає їх та називає процес за номером. --force пропускає чемний крок, і тоді попередній перегляд показує один крок замість двох. --restart потім повертає все назад.

+

Windows пише цю ідею інакше. --force у Stop-Service означає «навіть якщо від неї щось залежить», а це тут робить --dependents. Саме тому це окрема команда, а не параметр stop.

+
+
+

start-type - налаштування, а не дія

+

Вона каже, що диспетчер робитиме із записом під час наступного завантаження, і без --stop нічого не переміщує: запис, що працює, продовжує працювати, зупинений залишається зупиненим, і план про це каже. disabled - це той, над яким варто замислитися, бо він не дає диспетчеру запускати запис узагалі, зокрема й на вимогу для чогось іншого, що його потребує. delayed - це автоматичний, що запускається трохи пізніше за інші автоматичні записи, - слово, про яке питає start:delayed у запиті, - і Windows відхиляє його для запису в групі порядку завантаження, про що план каже ще до того, як щось станеться. Кожен із чотирьох записує, чи запис запускається пізно, як це робить sc.exe. --stop, лише поруч із disabled, зупиняє запис у тому самому плані після запису налаштування.

+
+
+

snapshot create і snapshot diff

+

create завжди читає підписи й хеші, бо знімок зберігається й порівнюється пізніше, а знімок без них порівнювався б зі знімком із ними так, ніби машина змінилася. diff каже, що змінилося під час переходу від першого файлу до другого або від файлу до цієї машини з --live. Сторінка про знімки містить формат і міркування.

+
+
+

history - хто змінив, із журналу System

+

Зміни типу запуску й встановлення з журналу System, найновіші першими, з обліковим записом, який записала Windows. Перший рядок каже, як далеко назад сягає журнал і чи його очищали, бо історія лише така довга, як журнал. З іменем це зміни типу запуску цієї служби - встановлення перелічуються лише без імені, бо Windows записує встановлення під відображуваним іменем, а ніколи під іменем служби. Обліковий запис називається там, де ця машина може назвати його сама, а інакше показується як його SID, а типи запуску подаються словами, які написала Windows.

+
+
+

tool - готові відповіді на поширені проблеми

+

Ті самі інструменти, які вікно показує на вкладці Tools. bws tool перелічує їх, а bws tool fix перелічує швидкі виправлення: printer, sound, indexing і search, кожне - це перезапуск однієї служби Windows разом із тим, що від неї залежить, вибраний тому, що його пропонують власні сторінки усунення несправностей Microsoft. bws tool fix printer - це рівно bws restart Spooler --dependents: той самий план, той самий вивід і ті самі коди завершення, - і, як кожна команда тут, що щось змінює, вона не питає наперед, тож --dry-run - спосіб подивитися, перш ніж вона запуститься.

+
+
+

license - що всередині завантаженого файлу

+

Вона не читає взагалі нічого - ні диспетчера служб, ні диска, ні мережі - і відповідає з реєстру, скомпільованого у виконуваний файл. --components перетворює повідомлення на кожен компонент із його версією, ліцензією та походженням. Той самий набір, що несе відомість матеріалів, опублікована поруч із завантаженням, бо обидва будуються з одного реєстру, і саме тому її варто мати: програма - один автономний файл, тож поруч із ним сканеру нічого читати.

+
+
+
+
+ +
+
+

Приклади

+

Плани нижче було перевірено через --dry-run на програмі, яку описує ця сторінка. Команда, що щось змінює, не питає наперед, тож --dry-run - спосіб подивитися, перш ніж вона запуститься. Spooler позначає будь-яку службу - підставте ім'я своєї.

+
+

Знайти й прочитати

+
bws list                                       кожна служба й драйвер на цій машині
+bws list --query "start:auto !status:running"  що має працювати й не працює
+bws list --query "status:running" --memory     що використовує процес кожного працюючого запису
+bws show Spooler                               усе, що відомо про один запис
+bws show Spooler --full                        також поля, які справді порожні
+

Спершу подивитися, потім змінити

+
bws restart Spooler --dry-run                план і більше нічого
+bws restart Spooler --dependents             перезапустити її разом із тим, що від неї залежить
+bws stop Spooler --dependents --timeout 120  дозволити дві хвилини на крок без прогресу
+bws start-type WSearch delayed --dry-run     запускати її трохи пізніше за інші автоматичні записи
+bws start-type Spooler disabled --stop       вимкнути її й зупинити одним планом
+

Служба, яка не зупиняється

+
bws kill Spooler --dry-run          процес і кожна служба, що живе в ньому
+bws kill Spooler --restart          завершити процес, лише якщо зупинка не вдалася, потім повернути все
+bws kill Spooler --force --dry-run  один крок замість двох: процес завершено одразу
+

Знімки й дрейф

+
bws snapshot create before.json --note "before the patch"  заморозити машину, з нотаткою всередині
+bws snapshot diff before.json after.json                   два файли - два дні або дві машини
+bws snapshot diff before.json --live                       файл проти цієї машини такою, як вона є зараз
+bws snapshot diff before.json --live --exit-code           те саме, із завершенням кодом 5, якщо конфігурація пішла в дрейф
+

Хто це змінив

+
bws history          кожна зміна типу запуску й встановлення, що їх містить журнал System
+bws history Spooler  зміни типу запуску однієї служби
+bws history --json   те саме як документ, із журналом і змінами
+

Швидкі виправлення

+
bws tool                      які є інструменти
+bws tool fix                  швидкі виправлення і служба за кожним із них
+bws tool fix sound --dry-run  план перезапуску двох аудіослужб
+bws tool fix printer          перезапустити Print Spooler разом із тим, що від нього залежить
+

Що всередині файлу

+
bws license --components  кожен компонент, його версія, ліцензія й звідки він
+bws --version             версія цього виконуваного файлу
+

У скрипті PowerShell

+
# записи, які мають працювати й не працюють, як об'єкти
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# непідписані файли, у таблицю
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# що потрібно одній службі
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# нічна перевірка, що розгалужується за кодом завершення
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

У cmd і пакетному файлі

+
rem друга команда, лише якщо перша не завершилася чисто
+bws restart Spooler || echo the restart did not end cleanly
+
+rem у пакетному файлі з увімкненим відкладеним розгортанням перед ! потрібен знак ^
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

Параметри

+

Їх {{switch_count}}. Третій стовпець - команди, до яких належить кожен: параметр, переданий команді, якій він ні до чого, - це помилка з цим списком усередині, а не мовчки проігнорований прапорець.

+ {{table:switches}} +
+
+ +
+
+

Коди завершення

+

Закінчень: {{exit_code_count}}, і кожне - це окрема дія для скрипта. Дані йдуть у стандартний вивід, а все інше в стандартний потік помилок, тому bws list --json | jq працює, а попередження ніколи не потрапить у ваш JSON.

+

Кожен документ JSON - звичайний ASCII: літера поза ним записується як шестисимвольна escape-послідовність, яку кожен читач JSON перетворює назад на літеру, тож bws list --json > file.json - це чинний UTF-8, а | ConvertFrom-Json читає його правильно, яка б кодова сторінка не була встановлена в консолі. У тексті, який читає людина, символ, що зсунув би термінал, а не надрукувався - табуляція, розрив рядка, escape-послідовність, перевизначення напрямку, - показується як його кодова точка, <U+001B>.

+

-- завершує параметри, тож службу, ім'я якої починається з дефіса, все одно можна назвати: bws show -- -odd. Командні рядки, які дає інструмент, написано для PowerShell: ім'я з пробілом береться у подвійні лапки, які cmd читає так само, а ім'я, яке PowerShell розгорнув би всередині них, наприклад MSSQL$SQLEXPRESS, береться в одинарні лапки.

+ {{table:exit-codes}} +

Ctrl+C має три рівні, і кожен каже, чого коштує наступний. Перший перестає йти вперед і все одно повертає те, що було взято, другий лишає все як є й усе одно друкує звіт, третій завершує процес. Виконання, зупинене вручну, завершується з 4, навіть якщо кожен крок усе ж дійшов.

+

Закриття вікна консолі вважається першим Ctrl+C. Windows дає програмі п'ять секунд після цього, і за них вона перестає йти вперед і повертає те, що зупинила. Вихід із системи та вимкнення завершують її без жодного попередження, на яке вона могла б зреагувати, і розірваний віддалений сеанс теж може.

+
+
+ +
+
+

У запланованій задачі

+

Форма, для якої цей інструмент створено: заморозьте машину, коли вона відома як справна, а потім щоночі питайте, чи вона такою й лишається.

+
# день, коли машина вводиться в експлуатацію
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# щоночі, із запланованої задачі
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - немає дрейфу конфігурації
+#   5 - конфігурація пішла в дрейф, і drift.json каже, що саме
+#   3 - виконалося й не змогло прочитати все, тож відповідь часткова
+

Вікно - це друга половина того самого рушія: {{archive_window}} містить його, а сторінка завантаження каже, що таке кожен архів.

+
+
+ +
+
+

Аргумент вікна

+

BetterWindowsServices.exe приймає один аргумент, призначений для людини: --catalogue відкриває аркуш розробника, що показує кожен компонент вікна в кожному стані й нічого не читає з вашої машини. Другий, --carry, - це спосіб, у який вікно передає те, що показувало, власній копії, яку воно перезапускає від імені адміністратора. Його ніхто не набирає, і все в ньому, чого це вікно не могло б записати, відхиляється.

+
+
diff --git a/site/pages/cli-reference/vi.html b/site/pages/cli-reference/vi.html new file mode 100644 index 0000000..d27f6e4 --- /dev/null +++ b/site/pages/cli-reference/vi.html @@ -0,0 +1,194 @@ + + + + + + + +
+
+ Tham chiếu +

Tham chiếu dòng lệnh

+

Mọi lệnh, mọi tùy chọn và mọi mã thoát của bws, phiên bản {{version}}. bws --help là bản có thẩm quyền và dài hơn - trang này là cùng bề mặt đó, được bố trí để dễ đọc.

+
+
+ +
+
+

Các lệnh

+

Mười một lệnh. snapshot là một danh từ và theo sau nó là một từ nữa. tool cũng là một danh từ, và đứng một mình nó liệt kê các công cụ.

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

Một lệnh gõ nhầm sẽ được đề nghị lệnh mà bạn có khả năng muốn dùng, và lần chạy kết thúc với mã 2 thay vì làm điều gì đó gần giống điều bạn yêu cầu.

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

Mỗi lệnh làm gì

+
+
+

list và show

+

list là cả máy, được thu hẹp bởi --query. show là một mục với mọi thứ đã biết về nó - chữ ký, đặc quyền, bộ mô tả bảo mật và bộ nhớ, tất cả đều được đọc mỗi lần, vì với một mục thì việc đó tốn khoảng sáu mươi mili giây còn với cả máy thì tốn một giây. Các trường thực sự trống bị bỏ ra trừ khi bạn truyền --full. Một trường không ai đọc được thì được in trong cả hai trường hợp, vì bỏ nó đi sẽ trông như một câu trả lời.

+
+
+

stop, start và restart

+

Mỗi lệnh dựng một kế hoạch và thực hiện nó. --dry-run in kế hoạch và không thay đổi gì, --dependents đưa các dịch vụ sẽ hỏng vào đó thành những bước riêng, và --timeout nói một bước được phép trôi qua bao lâu không có tiến triển. Trình điều khiển bị từ chối chứ không thử, vì dừng một trình điều khiển nhân thường không thể hoàn tác nếu không khởi động lại.

+
+
+

kill - cho một dịch vụ không chịu dừng

+

Nó yêu cầu dịch vụ dừng và kết thúc tiến trình đằng sau nó chỉ khi điều đó không có tác dụng, nên một mục tự dừng thì không bao giờ bị kết thúc. Kết thúc một tiến trình kéo theo mọi dịch vụ khác sống trong tiến trình đó, dù chúng đã dừng trước hay chưa, và bản xem trước nêu tên chúng và nêu tiến trình bằng số. --force bỏ qua bước lịch sự và bản xem trước khi đó hiển thị một bước thay vì hai. --restart đưa mọi thứ trở lại sau đó.

+

Windows viết ý tưởng này theo cách khác. --force trên Stop-Service nghĩa là "ngay cả khi có thứ phụ thuộc vào nó", điều mà --dependents làm ở đây. Đó là lý do đây là một lệnh riêng chứ không phải một tùy chọn của stop.

+
+
+

start-type - một thiết lập, không phải một cú di chuyển

+

Nó nói trình quản lý sẽ làm gì với một mục ở lần khởi động tiếp theo, và không có --stop nó không di chuyển gì: một mục đang chạy vẫn chạy, một mục đã dừng vẫn dừng, và kế hoạch nói điều đó. disabled là cái đáng dừng lại suy nghĩ, vì nó ngăn trình quản lý khởi động mục hoàn toàn, kể cả theo yêu cầu cho thứ khác cần nó. delayed là tự động, được khởi động muộn hơn một chút so với các mục tự động khác - từ mà start:delayed hỏi trong một truy vấn - và Windows từ chối nó với một mục trong nhóm thứ tự tải, điều mà kế hoạch nói trước khi có gì xảy ra. Mỗi trong bốn kiểu ghi việc mục có khởi động muộn hay không, như sc.exe làm. --stop, chỉ bên cạnh disabled, dừng mục trong cùng kế hoạch sau khi thiết lập được ghi.

+
+
+

snapshot create và snapshot diff

+

create luôn đọc chữ ký và mã băm, vì một bản chụp được giữ lại và so sánh sau, và một bản không có chúng, so với một bản có chúng, sẽ trông như thể máy đã thay đổi. diff nói điều gì đã thay đổi đi từ tệp thứ nhất sang tệp thứ hai, hoặc từ một tệp sang máy này với --live. Trang về bản chụp có định dạng và lập luận.

+
+
+

history - ai đã thay đổi, từ nhật ký System

+

Các lần đổi kiểu khởi động và cài đặt từ nhật ký System, mới nhất trước, cùng tài khoản mà Windows đã ghi lại. Dòng đầu tiên nói nhật ký lùi xa đến đâu và có bị xóa không, vì một lịch sử chỉ dài bằng nhật ký. Với một tên, đó là các lần đổi kiểu khởi động của dịch vụ đó - các lần cài đặt chỉ được liệt kê khi không có tên, vì Windows ghi một lần cài đặt dưới tên hiển thị và không bao giờ dưới tên dịch vụ. Một tài khoản được nêu tên ở nơi máy này tự nêu được và hiển thị dưới dạng SID của nó nếu không, và các kiểu khởi động đến bằng những từ Windows đã viết.

+
+
+

tool - câu trả lời dựng sẵn cho các sự cố phổ biến

+

Chính những công cụ mà cửa sổ hiển thị trên thẻ Tools. bws tool liệt kê chúng và bws tool fix liệt kê các cách sửa nhanh: printer, sound, indexing và search, mỗi cái là một lần khởi động lại một dịch vụ Windows cùng với những gì phụ thuộc vào nó, được chọn vì chính các trang khắc phục sự cố của Microsoft đề xuất nó. bws tool fix printer chính xác là bws restart Spooler --dependents - cùng kế hoạch, cùng đầu ra và cùng mã thoát - và như mọi lệnh ở đây thay đổi gì đó, nó không hỏi trước, nên --dry-run là cách để xem trước khi nó chạy.

+
+
+

license - bên trong tệp bạn đã tải về có gì

+

Nó không đọc gì cả - không trình quản lý dịch vụ, không đĩa, không mạng - và trả lời từ một sổ đăng ký được biên dịch vào tệp thực thi. --components biến thông báo thành mọi thành phần cùng phiên bản, giấy phép và nguồn gốc của nó. Cùng tập hợp mà bảng kê vật liệu phát hành bên cạnh bản tải xuống mang, vì cả hai được dựng từ một sổ đăng ký, và là lý do nó đáng có: chương trình là một tệp độc lập, nên bên cạnh nó không có gì để một trình quét đọc.

+
+
+
+
+ +
+
+

Ví dụ

+

Các kế hoạch dưới đây đã được kiểm tra bằng --dry-run với chương trình mà trang này mô tả. Một lệnh thay đổi gì đó không hỏi trước, nên --dry-run là cách để xem trước khi nó chạy. Spooler đại diện cho bất kỳ dịch vụ nào - hãy đặt tên dịch vụ của bạn vào chỗ đó.

+
+

Tìm và đọc

+
bws list                                       mọi dịch vụ và trình điều khiển trên máy này
+bws list --query "start:auto !status:running"  những gì lẽ ra phải chạy mà không chạy
+bws list --query "status:running" --memory     tiến trình của mỗi mục đang chạy đang dùng gì
+bws show Spooler                               mọi thứ đã biết về một mục
+bws show Spooler --full                        cả các trường thực sự trống
+

Xem trước, rồi mới thay đổi

+
bws restart Spooler --dry-run                chỉ kế hoạch, không gì khác
+bws restart Spooler --dependents             khởi động lại nó cùng những gì phụ thuộc vào nó
+bws stop Spooler --dependents --timeout 120  cho phép hai phút mỗi bước không có tiến triển
+bws start-type WSearch delayed --dry-run     khởi động muộn hơn một chút so với các mục tự động khác
+bws start-type Spooler disabled --stop       vô hiệu hóa và dừng trong một kế hoạch
+

Một dịch vụ không chịu dừng

+
bws kill Spooler --dry-run          tiến trình, và mọi dịch vụ sống trong đó
+bws kill Spooler --restart          chỉ kết thúc tiến trình nếu lệnh dừng thất bại, rồi đưa mọi thứ trở lại
+bws kill Spooler --force --dry-run  một bước thay vì hai: tiến trình bị kết thúc ngay
+

Bản chụp và sai lệch

+
bws snapshot create before.json --note "before the patch"  đóng băng máy, kèm một ghi chú lưu bên trong
+bws snapshot diff before.json after.json                   hai tệp - hai ngày, hoặc hai máy
+bws snapshot diff before.json --live                       tệp so với máy này như hiện giờ
+bws snapshot diff before.json --live --exit-code           như trên, kết thúc bằng 5 nếu cấu hình đã lệch
+

Ai đã thay đổi

+
bws history          mọi lần đổi kiểu khởi động và cài đặt mà nhật ký System lưu
+bws history Spooler  các lần đổi kiểu khởi động của một dịch vụ
+bws history --json   như trên dưới dạng tài liệu, kèm nhật ký và thay đổi
+

Sửa nhanh

+
bws tool                      các công cụ hiện có
+bws tool fix                  các cách sửa nhanh, và dịch vụ đằng sau mỗi cách
+bws tool fix sound --dry-run  kế hoạch khởi động lại hai dịch vụ âm thanh
+bws tool fix printer          khởi động lại Print Spooler cùng những gì phụ thuộc vào nó
+

Bên trong tệp có gì

+
bws license --components  mọi thành phần, phiên bản, giấy phép và nguồn gốc của nó
+bws --version             phiên bản của tệp thực thi này
+

Trong một script PowerShell

+
# các mục lẽ ra phải chạy mà không chạy, dưới dạng đối tượng
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# các tệp chưa ký, vào một bảng tính
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# một dịch vụ cần gì
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# một lần kiểm tra hằng đêm rẽ nhánh theo mã thoát
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

Trong cmd và tệp batch

+
rem lệnh thứ hai chỉ khi lệnh đầu không kết thúc sạch
+bws restart Spooler || echo the restart did not end cleanly
+
+rem trong tệp batch bật delayed expansion, dấu ! cần dấu ^
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

Tùy chọn

+

{{switch_count}} tùy chọn. Cột thứ ba là các lệnh mà mỗi tùy chọn thuộc về - một tùy chọn truyền cho lệnh không dùng đến nó là một lỗi có danh sách đó trong đó, chứ không phải một cờ bị lặng lẽ bỏ qua.

+ {{table:switches}} +
+
+ +
+
+

Mã thoát

+

{{exit_code_count}} kết cục, và mỗi kết cục là một việc khác nhau để script làm. Dữ liệu đi tới đầu ra chuẩn và mọi thứ khác đi tới lỗi chuẩn, nên bws list --json | jq hoạt động và một cảnh báo không bao giờ rơi vào JSON của bạn.

+

Mọi tài liệu JSON là ASCII thuần: một chữ cái ngoài ASCII được viết thành một chuỗi thoát sáu ký tự mà mọi trình đọc JSON biến trở lại thành chữ cái, nên bws list --json > file.json là UTF-8 hợp lệ và | ConvertFrom-Json đọc đúng bất kể bảng mã của bảng điều khiển. Trong văn bản mà con người đọc, một ký tự sẽ di chuyển thiết bị đầu cuối thay vì in ra - một tab, một ngắt dòng, một chuỗi thoát, một ký tự ghi đè hướng - được hiển thị dưới dạng điểm mã của nó, <U+001B>.

+

-- kết thúc các tùy chọn, nên một dịch vụ có tên bắt đầu bằng dấu gạch ngang vẫn có thể được nêu tên: bws show -- -odd. Các dòng lệnh mà công cụ đưa cho bạn được viết cho PowerShell: một tên có dấu cách đặt trong nháy kép, cmd đọc giống vậy, và một tên mà PowerShell sẽ mở rộng bên trong chúng, như MSSQL$SQLEXPRESS, đặt trong nháy đơn.

+ {{table:exit-codes}} +

Ctrl+C có ba mức, mỗi mức nói mức tiếp theo tốn gì. Mức đầu ngừng tiến tới và vẫn trả lại những gì đã lấy, mức hai để mọi thứ như hiện trạng và vẫn in báo cáo, mức ba kết thúc tiến trình. Một lần chạy bị dừng bằng tay kết thúc với 4 ngay cả khi mọi bước vẫn đã đến nơi.

+

Đóng cửa sổ console được tính là Ctrl+C đầu tiên. Windows cho một chương trình năm giây sau đó, và trong thời gian ấy nó ngừng tiến tới và trả lại những gì nó đã hạ gục. Đăng xuất và tắt máy kết thúc nó mà không có cảnh báo nào để nó hành động, và một phiên từ xa bị rớt có thể cũng vậy.

+
+
+ +
+
+

Trong một tác vụ theo lịch

+

Dạng mà công cụ này được xây dựng cho: đóng băng máy khi biết nó tốt, rồi mỗi đêm hỏi xem nó có còn như vậy không.

+
# ngày máy bắt đầu đưa vào hoạt động
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# mỗi đêm, từ một tác vụ theo lịch
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - không có sai lệch cấu hình
+#   5 - cấu hình đã lệch, và drift.json nói là gì
+#   3 - đã chạy và không đọc được hết, nên câu trả lời chỉ là một phần
+

Cửa sổ là nửa còn lại của cùng lõi: {{archive_window}} chứa nó, và trang tải xuống nói mỗi bản nén là gì.

+
+
+ +
+
+

Đối số của cửa sổ

+

BetterWindowsServices.exe nhận một đối số dành cho con người: --catalogue mở một tờ dành cho nhà phát triển hiển thị mọi thành phần của cửa sổ ở mọi trạng thái, và không đọc gì từ máy của bạn. Đối số thứ hai, --carry, là cách một cửa sổ chuyển những gì nó đang hiển thị cho bản sao của chính nó mà nó khởi động lại với quyền quản trị. Không ai gõ nó, và bất cứ thứ gì trong đó mà cửa sổ đó không thể đã viết ra đều bị từ chối.

+
+
diff --git a/site/pages/cli-reference/zh-hans.html b/site/pages/cli-reference/zh-hans.html new file mode 100644 index 0000000..94cd647 --- /dev/null +++ b/site/pages/cli-reference/zh-hans.html @@ -0,0 +1,192 @@ + + + + + + + +
+
+ 参考 +

命令行参考

+

bws 版本 {{version}} 的每个命令、每个选项和每个退出代码。bws --help 才是权威的,而且更长:这个页面是同一套内容,排版成便于阅读的样子。

+
+
+ +
+
+

命令

+

共十一个命令。snapshot 是名词,后面要跟一个词。tool 也是名词,单独使用时会列出各个工具。

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

拼错的命令会得到一个你可能想用的命令的提示,并以代码 2 结束,而不是去做某件与你的要求相近的事。

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

每个命令做什么

+
+
+

list 和 show

+

list 是整台计算机,由 --query 缩小范围。show 是单个条目及其所有已知信息:签名、特权、安全描述符和内存,每次都会全部读取,因为针对一个条目只需约六十毫秒,而针对整台计算机则需要一秒。真正为空的字段会被省略,除非你传入 --full。无人能读取的字段无论如何都会被打印,因为省略它会看起来像一个答案。

+
+
+

stop、start 和 restart

+

每个都会生成计划并执行。--dry-run 打印计划而不做任何更改,--dependents 把会受影响的服务作为独立的步骤放进计划,--timeout 指定一个步骤可以在没有进展的情况下持续多久。驱动程序会被拒绝而不是尝试,因为停止内核驱动程序往往不重启就无法恢复。

+
+
+

kill:用于停不下来的服务

+

它会请求服务停止,只有在无效时才结束它背后的进程,所以自己能停止的条目绝不会被强行结束。结束一个进程会带走该进程中的所有其他服务,不论它们是否事先已经停止,预览会点出它们的名称,并按编号指出该进程。--force 跳过礼貌的那一步,预览于是显示一个步骤而不是两个。--restart 随后把一切带回来。

+

Windows 对这个想法的表述不同。Stop-Service 上的 --force 的意思是“即使有东西依赖它”,这在这里是 --dependents 的作用。这就是它是一个独立命令、而不是 stop 上的一个选项的原因。

+
+
+

start-type:是一项设置,而不是一次操作

+

它指明服务管理器在下次启动时如何处理某个条目,没有 --stop 时它不会移动任何东西:正在运行的条目继续运行,已停止的保持停止,计划会这样说明。disabled 值得停下来想一想,因为它会让服务管理器根本不再启动该条目,包括按需为其他需要它的东西启动。delayed 是自动,比其他自动条目稍晚启动:在查询中 start:delayed 询问的就是这个词。Windows 会拒绝把它用于属于加载顺序组的条目,计划会在任何操作发生之前说明这一点。四种类型都会像 sc.exe 那样记录该条目是否延迟启动。--stop 只能与 disabled 搭配,在写入设置之后,在同一份计划中停止该条目。

+
+
+

snapshot create 和 snapshot diff

+

create 始终会读取签名和哈希,因为快照是要保存下来、之后再比较的,没有它们的快照与有它们的快照比较时,会让人觉得计算机发生了变化。diff 说明从第一个文件到第二个文件,或用 --live 从一个文件到这台计算机,发生了哪些变化。快照页面介绍了格式和理由。

+
+
+

history:谁改的,来自 System 日志

+

从 System 日志中读取启动类型更改和安装记录,最新的在前,带有 Windows 记录的账户。第一行说明日志能追溯多远、是否被清除过,因为历史记录的长度只取决于日志。带上名称时,显示的是该服务的启动类型更改:安装记录只在不带名称时列出,因为 Windows 记录安装时用的是显示名称,而从不是服务名称。账户在这台计算机能自行解析其名称时显示名称,否则显示其 SID,启动类型则使用 Windows 所写的词。

+
+
+

tool:针对常见问题的现成答案

+

与窗口在 Tools 选项卡上显示的工具相同。bws tool 列出它们,bws tool fix 列出快速修复:printer、sound、indexing 和 search,每一项都是重启一个 Windows 服务连同依赖它的内容,之所以选它们,是因为 Microsoft 自己的故障排除页面就是这样建议的。bws tool fix printer 就是 bws restart Spooler --dependents:相同的计划、相同的输出和相同的退出代码,而且和这里每个会更改内容的命令一样,它不会先询问,所以想在运行前查看,请使用 --dry-run。

+
+
+

license:你下载的文件里有什么

+

它什么也不读取,既不读服务管理器,也不读磁盘和网络,而是从编译进可执行文件的登记表中回答。--components 会把通知变成每个组件及其版本、许可证和来源。这与随下载一同发布的物料清单所含的集合相同,因为两者都由同一份登记表生成,这也是值得拥有它的原因:程序是一个自包含的文件,所以它旁边没有任何东西可供扫描程序读取。

+
+
+
+
+ +
+
+

示例

+

下面的计划已针对本页所描述的程序用 --dry-run 检查过。会更改内容的命令不会先询问,所以想在运行前查看,请使用 --dry-run。Spooler 代表任何服务,请换成你自己的服务名称。

+
+

查找与读取

+
bws list                                       这台计算机上的每个服务和驱动程序
+bws list --query "start:auto !status:running"  应该在运行却没有运行的内容
+bws list --query "status:running" --memory     每个运行中条目的进程正在使用什么
+bws show Spooler                               关于一个条目的所有已知信息
+bws show Spooler --full                        也包括真正为空的字段
+

先看,再更改

+
bws restart Spooler --dry-run                只显示计划,不做别的
+bws restart Spooler --dependents             连同依赖它的内容一起重启
+bws stop Spooler --dependents --timeout 120  允许每个步骤在没有进展的情况下持续两分钟
+bws start-type WSearch delayed --dry-run     比其他自动条目稍晚启动
+bws start-type Spooler disabled --stop       在一份计划中禁用并停止它
+

停不下来的服务

+
bws kill Spooler --dry-run          进程,以及同在其中的每个服务
+bws kill Spooler --restart          只有停止失败时才结束进程,然后把一切带回来
+bws kill Spooler --force --dry-run  一步而不是两步:立即结束进程
+

快照与漂移

+
bws snapshot create before.json --note "before the patch"  冻结计算机,并在其中保留一条备注
+bws snapshot diff before.json after.json                   两个文件:相隔两天,或两台计算机
+bws snapshot diff before.json --live                       把文件与这台计算机的当前状态对比
+bws snapshot diff before.json --live --exit-code           同上,若配置发生漂移则以 5 结束
+

谁改的

+
bws history          System 日志中保存的每一次启动类型更改和安装
+bws history Spooler  某一个服务的启动类型更改
+bws history --json   同样的内容,作为文档,含日志和更改
+

快速修复

+
bws tool                      现有的工具
+bws tool fix                  快速修复,以及每一项背后的服务
+bws tool fix sound --dry-run  重启两个音频服务的计划
+bws tool fix printer          连同依赖它的内容一起重启 Print Spooler
+

文件里有什么

+
bws license --components  每个组件、版本、许可证和来源
+bws --version             此可执行文件的版本
+

在 PowerShell 脚本中

+
# 应该在运行却没有运行的条目,作为对象
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# 未签名的文件,写入电子表格
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# 一个服务需要什么
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# 根据退出代码分支的夜间检查
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

在 cmd 和批处理文件中

+
rem 仅当第一个命令没有正常结束时才执行第二个命令
+bws restart Spooler || echo the restart did not end cleanly
+
+rem 在启用了延迟展开的批处理文件中,! 前面需要插入符号 ^
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

选项

+

共 {{switch_count}} 个。第三列是每个选项所属的命令:把选项传给用不上它的命令是一个错误,错误中会带有这份列表,而不是一个被悄悄忽略的标志。

+ {{table:switches}} +
+
+ +
+
+

退出代码

+

共 {{exit_code_count}} 种结束方式,每一种对脚本来说都是不同的处理。数据输出到标准输出,其余所有内容输出到标准错误,因此 bws list --json | jq 可以正常工作,警告也绝不会混进你的 JSON。

+

每个 JSON 文档都是纯 ASCII:ASCII 之外的字符会被写成六个字符的转义序列,所有 JSON 读取器都会把它还原成那个字符,所以 bws list --json > file.json 是有效的 UTF-8,而 | ConvertFrom-Json 无论控制台设置为什么代码页都能正确读取。在供人阅读的文本中,会移动终端而不是被打印出来的字符,例如制表符、换行、转义序列和方向覆盖字符,会显示为它的码位 <U+001B>。

+

-- 表示选项到此结束,所以名称以短横线开头的服务仍然可以指定:bws show -- -odd。工具交给你的命令行是为 PowerShell 编写的:带空格的名称放在双引号中,cmd 对其读取方式相同,而 PowerShell 会在双引号内展开的名称,例如 MSSQL$SQLEXPRESS,则放在单引号中。

+ {{table:exit-codes}} +

Ctrl+C 有三个级别,每一级都说明下一级的代价。第一级停止继续前进,并仍会把已取走的东西放回去,第二级让现状保持原样,并仍会打印报告,第三级结束进程。手动停止的运行即使每个步骤都已完成,也会以 4 结束。

+

关闭控制台窗口算作第一次 Ctrl+C。此后 Windows 会给程序五秒钟,在这段时间内它会停止前进,并把它关掉的东西放回去。注销和关机会在没有任何它能作出反应的警告的情况下结束它,断开的远程会话也可能如此。

+
+
+ +
+
+

在计划任务中

+

这个工具为之而生的形态:在计算机已知良好时把它冻结,然后每晚询问它是否仍然如此。

+
# 计算机投入使用的那一天
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 每晚,通过计划任务
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 没有配置漂移
+#   5 - 配置发生了漂移,drift.json 会说明具体内容
+#   3 - 已运行但无法读取全部内容,因此答案是部分的
+

窗口是同一引擎的另一半:{{archive_window}} 中包含它,而下载页面说明了每个压缩包是什么。

+
+
+ +
+
+

窗口的参数

+

BetterWindowsServices.exe 接受一个供人使用的参数:--catalogue 会打开一张开发者用的表,显示窗口的每个组件在每种状态下的样子,并且不会从你的计算机读取任何内容。第二个参数 --carry 是窗口把它正在显示的内容交给它以管理员身份重新启动的自己的副本的方式。没有人会手动输入它,其中任何该窗口不可能写出的内容都会被拒绝。

+
+
diff --git a/site/pages/cli-reference/zh-hant.html b/site/pages/cli-reference/zh-hant.html new file mode 100644 index 0000000..15cd3b6 --- /dev/null +++ b/site/pages/cli-reference/zh-hant.html @@ -0,0 +1,192 @@ + + + + + + + +
+
+ 參考 +

命令列參考

+

bws 版本 {{version}} 的每個命令、每個選項和每個結束代碼。bws --help 才是權威的,而且更長:這個頁面是同一套內容,排版成便於閱讀的樣子。

+
+
+ +
+
+

命令

+

共十一個命令。snapshot 是名詞,後面要跟一個詞。tool 也是名詞,單獨使用時會列出各個工具。

+
bws list [--query TEXT] [--signatures] [--memory] [--required-by] [--follow-network] [--json] [--timing]
+bws show NAME [--full] [--follow-network] [--json] [--timing]
+bws stop|start|restart NAME [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws kill NAME [--force] [--restart] [--dry-run] [--dependents] [--timeout SECONDS] [--json] [--timing]
+bws start-type NAME automatic|delayed|manual|disabled [--stop] [--dry-run] [--json] [--timing]
+bws snapshot create [FILE] [--note TEXT] [--follow-network] [--force] [--json] [--timing]
+bws snapshot diff EARLIER LATER [--exit-code] [--json] [--timing]
+bws snapshot diff EARLIER --live [--exit-code] [--json] [--timing]
+bws history [NAME] [--json] [--timing]
+bws tool
+bws tool fix
+bws tool fix NAME [--dry-run] [--timeout SECONDS] [--json] [--timing]
+bws license [--components]
+bws --help
+bws --version
+

拼錯的命令會得到一個你可能想用的命令的提示,並以代碼 2 結束,而不是去做某件與你的要求相近的事。

+
$ bws lst
+There is no command lst. Did you mean list?
+
+
+ +
+
+

每個命令做什麼

+
+
+

list 和 show

+

list 是整台電腦,由 --query 縮小範圍。show 是單一項目及其所有已知資訊:簽章、特殊權限、安全性描述元和記憶體,每次都會全部讀取,因為針對一個項目只需約六十毫秒,而針對整台電腦則需要一秒。真正為空的欄位會被省略,除非你傳入 --full。無人能讀取的欄位無論如何都會被列印,因為省略它會看起來像一個答案。

+
+
+

stop、start 和 restart

+

每個都會產生計畫並執行。--dry-run 列印計畫而不做任何變更,--dependents 把會受影響的服務作為獨立的步驟放進計畫,--timeout 指定一個步驟可以在沒有進展的情況下持續多久。驅動程式會被拒絕而不是嘗試,因為停止核心驅動程式往往不重新啟動就無法復原。

+
+
+

kill:用於停不下來的服務

+

它會要求服務停止,只有在無效時才結束它背後的處理程序,所以自己能停止的項目絕不會被強行結束。結束一個處理程序會帶走該處理程序中的所有其他服務,不論它們是否事先已經停止,預覽會點出它們的名稱,並依編號指出該處理程序。--force 跳過禮貌的那一步,預覽於是顯示一個步驟而不是兩個。--restart 隨後把一切帶回來。

+

Windows 對這個想法的表述不同。Stop-Service 上的 --force 的意思是「即使有東西依賴它」,這在這裡是 --dependents 的作用。這就是它是一個獨立命令、而不是 stop 上的一個選項的原因。

+
+
+

start-type:是一項設定,而不是一次動作

+

它指明服務管理員在下次啟動時如何處理某個項目,沒有 --stop 時它不會移動任何東西:正在執行的項目繼續執行,已停止的保持停止,計畫會這樣說明。disabled 值得停下來想一想,因為它會讓服務管理員根本不再啟動該項目,包括依需求為其他需要它的東西啟動。delayed 是自動,比其他自動項目稍晚啟動:在查詢中 start:delayed 詢問的就是這個詞。Windows 會拒絕把它用於屬於載入順序群組的項目,計畫會在任何動作發生之前說明這一點。四種類型都會像 sc.exe 那樣記錄該項目是否延遲啟動。--stop 只能與 disabled 搭配,在寫入設定之後,在同一份計畫中停止該項目。

+
+
+

snapshot create 和 snapshot diff

+

create 始終會讀取簽章和雜湊,因為快照是要儲存下來、之後再比較的,沒有它們的快照與有它們的快照比較時,會讓人覺得電腦發生了變化。diff 說明從第一個檔案到第二個檔案,或用 --live 從一個檔案到這台電腦,發生了哪些變化。快照頁面介紹了格式和理由。

+
+
+

history:誰改的,來自 System 記錄檔

+

從 System 記錄檔中讀取啟動類型變更和安裝記錄,最新的在前,帶有 Windows 記錄的帳戶。第一行說明記錄檔能追溯多遠、是否被清除過,因為歷程記錄的長度只取決於記錄檔。帶上名稱時,顯示的是該服務的啟動類型變更:安裝記錄只在不帶名稱時列出,因為 Windows 記錄安裝時用的是顯示名稱,而從不是服務名稱。帳戶在這台電腦能自行解析其名稱時顯示名稱,否則顯示其 SID,啟動類型則使用 Windows 所寫的詞。

+
+
+

tool:針對常見問題的現成答案

+

與視窗在 Tools 索引標籤上顯示的工具相同。bws tool 列出它們,bws tool fix 列出快速修復:printer、sound、indexing 和 search,每一項都是重新啟動一個 Windows 服務連同依賴它的內容,之所以選它們,是因為 Microsoft 自己的疑難排解頁面就是這樣建議的。bws tool fix printer 就是 bws restart Spooler --dependents:相同的計畫、相同的輸出和相同的結束代碼,而且和這裡每個會變更內容的命令一樣,它不會先詢問,所以想在執行前檢視,請使用 --dry-run。

+
+
+

license:你下載的檔案裡有什麼

+

它什麼也不讀取,既不讀服務管理員,也不讀磁碟和網路,而是從編譯進可執行檔的登記表中回答。--components 會把通知變成每個元件及其版本、授權和來源。這與隨下載一同發行的物料清單所含的集合相同,因為兩者都由同一份登記表產生,這也是值得擁有它的原因:程式是一個獨立式的單一檔案,所以它旁邊沒有任何東西可供掃描程式讀取。

+
+
+
+
+ +
+
+

範例

+

下面的計畫已針對本頁所描述的程式用 --dry-run 檢查過。會變更內容的命令不會先詢問,所以想在執行前檢視,請使用 --dry-run。Spooler 代表任何服務,請換成你自己的服務名稱。

+
+

尋找與讀取

+
bws list                                       這台電腦上的每個服務和驅動程式
+bws list --query "start:auto !status:running"  應該執行卻沒有執行的內容
+bws list --query "status:running" --memory     每個執行中項目的處理程序正在使用什麼
+bws show Spooler                               關於一個項目的所有已知資訊
+bws show Spooler --full                        也包括真正為空的欄位
+

先看,再變更

+
bws restart Spooler --dry-run                只顯示計畫,不做別的
+bws restart Spooler --dependents             連同依賴它的內容一起重新啟動
+bws stop Spooler --dependents --timeout 120  允許每個步驟在沒有進展的情況下持續兩分鐘
+bws start-type WSearch delayed --dry-run     比其他自動項目稍晚啟動
+bws start-type Spooler disabled --stop       在一份計畫中停用並停止它
+

停不下來的服務

+
bws kill Spooler --dry-run          處理程序,以及同在其中的每個服務
+bws kill Spooler --restart          只有停止失敗時才結束處理程序,然後把一切帶回來
+bws kill Spooler --force --dry-run  一步而不是兩步:立即結束處理程序
+

快照與漂移

+
bws snapshot create before.json --note "before the patch"  凍結電腦,並在其中保留一則備註
+bws snapshot diff before.json after.json                   兩個檔案:相隔兩天,或兩台電腦
+bws snapshot diff before.json --live                       把檔案與這台電腦的目前狀態比較
+bws snapshot diff before.json --live --exit-code           同上,若組態發生漂移則以 5 結束
+

誰改的

+
bws history          System 記錄檔中保存的每一次啟動類型變更和安裝
+bws history Spooler  某一個服務的啟動類型變更
+bws history --json   同樣的內容,作為文件,含記錄檔和變更
+

快速修復

+
bws tool                      現有的工具
+bws tool fix                  快速修復,以及每一項背後的服務
+bws tool fix sound --dry-run  重新啟動兩個音訊服務的計畫
+bws tool fix printer          連同依賴它的內容一起重新啟動 Print Spooler
+

檔案裡有什麼

+
bws license --components  每個元件、版本、授權和來源
+bws --version             此可執行檔的版本
+

在 PowerShell 指令碼中

+
# 應該執行卻沒有執行的項目,作為物件
+bws list --query "start:auto !status:running" --json | ConvertFrom-Json | Select-Object serviceName, displayName, status
+
+# 未簽章的檔案,寫入試算表
+bws list --query "signed:no" --json | ConvertFrom-Json | Select-Object serviceName, binaryPath | Export-Csv unsigned.csv -NoTypeInformation
+
+# 一個服務需要什麼
+(bws show Spooler --json | ConvertFrom-Json).dependsOn
+
+# 依結束代碼分支的夜間檢查
+bws snapshot diff C:\baselines\web01.json --live --exit-code > $null
+switch ($LASTEXITCODE) {
+  0 { 'no configuration drift' }
+  5 { 'the configuration drifted' }
+  default { "no clean answer, exit code $LASTEXITCODE" }
+}
+

在 cmd 和批次檔中

+
rem 僅當第一個命令沒有正常結束時才執行第二個命令
+bws restart Spooler || echo the restart did not end cleanly
+
+rem 在啟用了延遲擴充的批次檔中,! 前面需要插入符號 ^
+bws list --query "start:auto ^!status:running"
+
+
+
+ +
+
+

選項

+

共 {{switch_count}} 個。第三欄是每個選項所屬的命令:把選項傳給用不上它的命令是一個錯誤,錯誤中會帶有這份清單,而不是一個被悄悄忽略的旗標。

+ {{table:switches}} +
+
+ +
+
+

結束代碼

+

共 {{exit_code_count}} 種結束方式,每一種對指令碼來說都是不同的處理。資料輸出到標準輸出,其餘所有內容輸出到標準錯誤,因此 bws list --json | jq 可以正常運作,警告也絕不會混進你的 JSON。

+

每個 JSON 文件都是純 ASCII:ASCII 之外的字元會被寫成六個字元的逸出序列,所有 JSON 讀取器都會把它還原成那個字元,所以 bws list --json > file.json 是有效的 UTF-8,而 | ConvertFrom-Json 無論主控台設定為什麼字碼頁都能正確讀取。在供人閱讀的文字中,會移動終端機而不是被列印出來的字元,例如定位字元、換行、逸出序列和方向覆寫字元,會顯示為它的碼位 <U+001B>。

+

-- 表示選項到此結束,所以名稱以連字號開頭的服務仍然可以指定:bws show -- -odd。工具交給你的命令列是為 PowerShell 撰寫的:帶空格的名稱放在雙引號中,cmd 對其讀取方式相同,而 PowerShell 會在雙引號內展開的名稱,例如 MSSQL$SQLEXPRESS,則放在單引號中。

+ {{table:exit-codes}} +

Ctrl+C 有三個層級,每一級都說明下一級的代價。第一級停止繼續前進,並仍會把已取走的東西放回去,第二級讓現狀保持原樣,並仍會列印報告,第三級結束處理程序。手動停止的執行即使每個步驟都已完成,也會以 4 結束。

+

關閉主控台視窗算作第一次 Ctrl+C。此後 Windows 會給程式五秒鐘,在這段時間內它會停止前進,並把它關掉的東西放回去。登出和關機會在沒有任何它能作出反應的警告的情況下結束它,中斷連線的遠端工作階段也可能如此。

+
+
+ +
+
+

在排程工作中

+

這個工具為之而生的形態:在電腦已知良好時把它凍結,然後每晚詢問它是否仍然如此。

+
# 電腦投入使用的那一天
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 每晚,透過排程工作
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 沒有組態漂移
+#   5 - 組態發生了漂移,drift.json 會說明具體內容
+#   3 - 已執行但無法讀取全部內容,因此答案是部分的
+

視窗是同一引擎的另一半:{{archive_window}} 中包含它,而下載頁面說明了每個壓縮檔是什麼。

+
+
+ +
+
+

視窗的參數

+

BetterWindowsServices.exe 接受一個供人使用的參數:--catalogue 會開啟一張開發者用的表,顯示視窗的每個元件在每種狀態下的樣子,並且不會從你的電腦讀取任何內容。第二個參數 --carry 是視窗把它正在顯示的內容交給它以系統管理員身分重新啟動的自己的副本的方式。沒有人會手動輸入它,其中任何該視窗不可能寫出的內容都會被拒絕。

+
+
diff --git a/site/pages/download/cs.html b/site/pages/download/cs.html new file mode 100644 index 0000000..d53f62b --- /dev/null +++ b/site/pages/download/cs.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Stažení +

Rozbalit a spustit, nebo nainstalovat

+

Verze {{version}}. Archivy nepotřebují instalační program a nic nezapisují do registru a k prohlížení nejsou potřeba práva správce. Podepsaný instalační program místo toho nainstaluje oba programy pro celý stroj. Volný a otevřený zdrojový kód pod GPL-3.0.

+ +
+
+ +
+
+

Co je ve vydání

+
+ + + + + + + +
SouborCo to je
{{archive_window}}Okno: BetterWindowsServices.exe, jeden samostatný spustitelný soubor s vlastním runtime .NET uvnitř
{{archive_cli}}Příkazový řádek: bws.exe, jeden samostatný spustitelný soubor, pro skripty, naplánované úlohy a CI
{{archive_installer}}Instalační program: oba programy v Program Files pro každý účet na stroji, okno v nabídce Start a bws v proměnné PATH stroje
+
+

Vezměte si jeden nebo oba - jsou to dva klienti téhož jádra a žádný nepotřebuje druhého. Na serveru je příkazový řádek menší z nich a dělá všechno, co okno.

+

Instalační program nese přesně to, co oba archivy. Instaluje se tiše příkazem msiexec /i {{archive_installer}} /qn, novější verze se nainstaluje přes starší a nic, co běží, nezavírá - zavřete tedy před aktualizací okno i každý běžící bws, protože ponechaná běžící kopie se může zastavit s chybou. Odinstalování v Nastavení, Aplikace odstraní programy, položku v nabídce Start i položku v PATH a vaše vlastní soubory nechá být.

+

Spustitelné soubory nesou podpis Authenticode, takže Windows uvádí vydavatele místo varování před neznámým.

+
+
+ +
+
+

Požadavky

+ +

Okno uchovává jeden vlastní soubor - rozvržení, v jakém jste nechali seznam - v %APPDATA%\BetterWindowsServices. Snímek jde tam, kam bws snapshot create řeknete, a když neřeknete, do aktuálního adresáře.

+

Program mluví anglicky. Okno čte jazykový soubor languages\gui.<kód>.json, uložený vedle něj a vybraný podle jazyka Windows, bez přepínače. Překlad je tedy příspěvek, který lze přidat bez nového sestavení - CONTRIBUTING.md říká jak.

+
+
+ +
+
+

Antivirus a EDR

+

Tento nástroj dělá to, co správce se službami, a část toho je přesně to, co bezpečnostní software sleduje.

+

Zastavuje a spouští služby, může ukončit proces za nimi a čte u každé služby popisovač zabezpečení a požadovaná privilegia. EDR, který označí proces ukončující svchost.exe, dělá svou práci, a vynucené zastavení zde může vypadat přesně takto.

+

Co nedělá, abyste to mohli ověřit: nic nevkládá do žádného procesu, nic nebalí ani neobfuskuje, neinstaluje žádnou službu ani ovladač, nenechává nic běžet a neotevírá žádné síťové spojení. Je open source pod GPL-3.0 a oba spustitelné soubory si můžete sestavit sami.

+

Pokud vaše politika vyžaduje výjimku, vyjměte ty dva spustitelné soubory podle souboru, ne podle složky. Jediná věc, se kterou stojí za to zacházet stejně pečlivě jako s nástrojem samotným, je soubor snímku: popisuje celý stroj.

+
+
+ +
+
+

Sestavení ze zdrojového kódu

+

.NET 10 SDK, na Windows.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

Některé testy čtou skutečného správce služeb stroje, na kterém běží, a porovnávají, co říká tento nástroj, s tím, co říká sc.exe. Jsou jen pro čtení. Jednosouborové spustitelné soubory, které vydání nesou, jsou tyto dvě publikace, každá jeden soubor s runtime uvnitř:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

Skončí jako bws.exe a BetterWindowsServices.exe pod bin/Release/.../win-x64/publish/ každého projektu. Soubory .pdb vedle nich jsou ladicí symboly a ke spuštění je nic nepotřebuje.

+
+
+ +
+
+

Kolik stojí provoz

+

Změřeno na jednom stroji s 810 službami. Vaše čísla se budou lišit - ovlivňují je počet služeb, disk i procesor.

+
+

Zhruba čtvrt sekundy

než bws list přečte celý stroj.

+

Zhruba osm desetin sekundy

od spuštění okna po zobrazení seznamu na obrazovce.

+

Zhruba 100 MB

pro okno - polovinu z toho tvoří uživatelské rozhraní Windows, ještě než se spustí jakýkoli kód tohoto nástroje.

+

Zhruba 16 MB

pro příkazový řádek na stejném stroji.

+
+
+
diff --git a/site/pages/download/id.html b/site/pages/download/id.html new file mode 100644 index 0000000..fac98a0 --- /dev/null +++ b/site/pages/download/id.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Unduh +

Ekstrak dan jalankan, atau pasang

+

Versi {{version}}. Arsip tidak membutuhkan installer dan tidak menulis apa pun ke registri, dan melihat tidak membutuhkan hak administrator. Installer bertanda tangan sebaliknya memasang kedua program untuk seluruh mesin. Bebas dan bersumber terbuka di bawah GPL-3.0.

+ +
+
+ +
+
+

Isi rilis

+
+ + + + + + + +
BerkasApa itu
{{archive_window}}Jendela: BetterWindowsServices.exe, satu berkas eksekusi mandiri dengan runtime .NET-nya sendiri di dalamnya
{{archive_cli}}Baris perintah: bws.exe, satu berkas eksekusi mandiri, untuk skrip, tugas terjadwal, dan CI
{{archive_installer}}Installer: kedua program di Program Files untuk setiap akun di mesin, jendela di menu Start, dan bws di PATH mesin
+
+

Ambil salah satu atau keduanya - keduanya adalah dua klien dari mesin yang sama dan tidak ada yang membutuhkan yang lain. Di server, baris perintah adalah yang lebih kecil dari keduanya dan melakukan semua yang dilakukan jendela.

+

Installer membawa persis apa yang dibawa kedua arsip. Ia terpasang secara senyap dengan msiexec /i {{archive_installer}} /qn, versi yang lebih baru terpasang di atas yang lebih lama, dan ia tidak menutup apa pun yang sedang berjalan - jadi tutup jendela dan setiap bws yang berjalan sebelum meningkatkan versi, karena salinan yang dibiarkan berjalan dapat berhenti dengan galat. Mencopot melalui Pengaturan, Aplikasi menghapus program, entri menu Start, dan entri PATH, dan membiarkan berkas Anda sendiri.

+

Berkas eksekusi membawa tanda tangan Authenticode, sehingga Windows menyebut penerbitnya alih-alih memperingatkan tentang penerbit yang tidak dikenal.

+
+
+ +
+
+

Persyaratan

+ +

Jendela menyimpan satu berkasnya sendiri - tata letak tempat Anda meninggalkan daftar - di bawah %APPDATA%\BetterWindowsServices. Snapshot disimpan di tempat yang Anda minta pada bws snapshot create, dan di direktori saat ini bila Anda tidak memintanya.

+

Program ini berbahasa Inggris. Jendela membaca berkas bahasa, languages\gui.<kode>.json, yang ditaruh di sebelahnya dan dipilih menurut bahasa Windows, tanpa sakelar. Terjemahan karena itu merupakan kontribusi yang dapat ditambahkan tanpa membangun ulang - CONTRIBUTING.md menjelaskan caranya.

+
+
+ +
+
+

Antivirus dan EDR

+

Alat ini melakukan apa yang dilakukan administrator terhadap layanan, dan sebagian dari itu adalah persis apa yang diawasi perangkat lunak keamanan.

+

Ia menghentikan dan memulai layanan, dapat mengakhiri proses di balik salah satunya, dan membaca deskriptor keamanan serta hak istimewa yang dibutuhkan setiap layanan. EDR yang menandai proses yang mengakhiri svchost.exe sedang menjalankan tugasnya, dan penghentian paksa di sini bisa tampak persis seperti itu.

+

Apa yang tidak dilakukannya, agar Anda dapat memeriksa klaim itu: ia tidak menyuntikkan apa pun ke proses mana pun, tidak mengemas atau mengaburkan apa pun, tidak memasang layanan maupun driver dan tidak meninggalkan apa pun yang berjalan, dan tidak membuka koneksi jaringan apa pun. Ia bersumber terbuka di bawah GPL-3.0 dan Anda dapat membangun kedua berkas eksekusi sendiri.

+

Jika kebijakan Anda membutuhkan pengecualian, kecualikan kedua berkas eksekusi berdasarkan berkas, bukan folder. Satu-satunya hal yang layak diperlakukan dengan kehati-hatian yang sama seperti alat itu sendiri adalah berkas snapshot: ia menggambarkan seluruh mesin.

+
+
+ +
+
+

Membangun dari sumber

+

.NET 10 SDK, di Windows.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

Beberapa pengujian membaca service control manager nyata dari mesin tempat pengujian berjalan dan membandingkan apa yang dikatakan alat ini dengan apa yang dikatakan sc.exe. Pengujian itu hanya-baca. Berkas eksekusi satu-berkas yang dibawa rilis adalah dua publikasi ini, masing-masing satu berkas dengan runtime di dalamnya:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

Hasilnya berada sebagai bws.exe dan BetterWindowsServices.exe di bawah bin/Release/.../win-x64/publish/ setiap proyek. Berkas .pdb di sebelahnya adalah simbol debug, dan tidak ada yang membutuhkannya untuk berjalan.

+
+
+ +
+
+

Biaya untuk menjalankannya

+

Diukur pada satu mesin dengan 810 layanan. Angka Anda akan berbeda - jumlah layanan, disk, dan prosesor semuanya memengaruhinya.

+
+

Sekitar seperempat detik

agar bws list membaca seluruh mesin.

+

Sekitar delapan persepuluh detik

dari menjalankan jendela sampai daftar muncul di layar.

+

Sekitar 100 MB

untuk jendela - separuhnya adalah kerangka antarmuka pengguna Windows, sebelum kode alat ini sendiri berjalan.

+

Sekitar 16 MB

untuk baris perintah pada mesin yang sama.

+
+
+
diff --git a/site/pages/download/ja.html b/site/pages/download/ja.html new file mode 100644 index 0000000..fb874b1 --- /dev/null +++ b/site/pages/download/ja.html @@ -0,0 +1,86 @@ + + + + + +
+
+ ダウンロード +

展開して実行、またはインストール

+

バージョン {{version}}。アーカイブにインストーラーは不要で、レジストリには何も書き込みません。見るだけなら管理者権限は不要です。署名付きインストーラーを使うと、代わりに両方のプログラムがマシン全体にインストールされます。GPL-3.0 の下で、無料でオープンソースです。

+ +
+
+ +
+
+

リリースの内容

+
+ + + + + + + +
ファイル内容
{{archive_window}}ウィンドウです。BetterWindowsServices.exe という 1 つの自己完結型の実行ファイルで、.NET ランタイムが内蔵されています
{{archive_cli}}コマンドラインです。bws.exe という 1 つの自己完結型の実行ファイルで、スクリプト、スケジュールされたタスク、CI 向けです
{{archive_installer}}インストーラーです。マシン上のすべてのアカウント向けに、両方のプログラムを Program Files にインストールし、ウィンドウをスタート メニューに、bws をマシンの PATH に追加します
+
+

どちらか一方、または両方をお使いください。同じエンジンの 2 つのクライアントであり、どちらも相手を必要としません。サーバーでは、コマンドラインのほうが小さく、ウィンドウができることはすべて行えます。

+

インストーラーには、2 つのアーカイブの内容がそのまま入っています。msiexec /i {{archive_installer}} /qn でサイレントインストールでき、新しいバージョンは古いバージョンに上書きインストールされます。実行中のものは閉じないため、アップグレード前にウィンドウと実行中の bws を閉じてください。実行したままのコピーはエラーで停止することがあります。「設定」の「アプリ」からアンインストールすると、プログラム、スタート メニューの項目、PATH の項目が削除され、ご自身のファイルには手を触れません。

+

実行ファイルには Authenticode 署名があるため、Windows は不明な発行元として警告せず、発行元の名前を表示します。

+
+
+ +
+
+

要件

+ +

ウィンドウは独自のファイルを 1 つだけ保持します。一覧を最後に置いたレイアウトで、場所は %APPDATA%\BetterWindowsServices です。スナップショットは、bws snapshot create に指定した場所に保存され、指定しない場合はカレントディレクトリに保存されます。

+

プログラムは英語で表示されます。ウィンドウは、隣に置かれた言語ファイル languages\gui.<code>.json を読み込み、Windows の言語で選択します。切り替えスイッチはありません。したがって翻訳は、再ビルドなしで追加できる貢献です。方法は CONTRIBUTING.md に書かれています。

+
+
+ +
+
+

ウイルス対策と EDR

+

このツールは、管理者がサービスに対して行うことを行います。その一部は、セキュリティソフトが監視している動作そのものです。

+

サービスを停止・開始し、その背後のプロセスを終了でき、すべてのサービスのセキュリティ記述子と必要な特権を読み取ります。svchost.exe を終了するプロセスを検知する EDR は、役目を果たしています。ここでの強制停止は、まさにそのように見えることがあります。

+

このツールが行わないことを挙げます。確認できるようにするためです。どのプロセスにも何も注入しません。何かをパックしたり難読化したりしません。サービスもドライバーもインストールせず、何も常駐させません。ネットワーク接続も開きません。GPL-3.0 のオープンソースであり、2 つの実行ファイルは自分でビルドできます。

+

ポリシーで除外が必要な場合は、フォルダーではなく、2 つの実行ファイルをファイル単位で除外してください。ツール自体と同じ注意を払う価値があるものが 1 つあります。スナップショットファイルです。マシン全体を記述しているからです。

+
+
+ +
+
+

ソースからのビルド

+

.NET 10 SDK、Windows 上で。

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

一部のテストは、実行しているマシンの実際のサービス コントロール マネージャーを読み取り、このツールの出力を sc.exe の出力と比較します。これらは読み取り専用です。リリースに含まれる単一ファイルの実行ファイルは、次の 2 つのパブリッシュで作られます。それぞれ、ランタイムを内蔵した 1 つのファイルです。

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

出力は、各プロジェクトの bin/Release/.../win-x64/publish/ の下に bws.exe と BetterWindowsServices.exe として生成されます。隣にある .pdb ファイルはデバッグ用シンボルで、実行には必要ありません。

+
+
+ +
+
+

実行にかかるコスト

+

810 個のサービスがある 1 台のマシンで計測しました。サービスの数、ディスク、プロセッサーによって数値は変わります。

+
+

約 4 分の 1 秒

bws list がマシン全体を読み取るまで。

+

約 0.8 秒

ウィンドウを起動してから、一覧が画面に表示されるまで。

+

約 100 MB

ウィンドウの場合です。その半分は Windows のユーザーインターフェイスフレームワークで、このツール自体のコードが動く前の分です。

+

約 16 MB

同じマシンでのコマンドラインの場合です。

+
+
+
diff --git a/site/pages/download/ko.html b/site/pages/download/ko.html new file mode 100644 index 0000000..78dece9 --- /dev/null +++ b/site/pages/download/ko.html @@ -0,0 +1,86 @@ + + + + + +
+
+ 다운로드 +

압축을 풀어 실행하거나 설치하세요

+

버전 {{version}}. 압축 파일에는 설치 프로그램이 필요 없고 레지스트리에 아무것도 쓰지 않으며, 보기만 할 때는 관리자 권한이 필요 없습니다. 서명된 설치 프로그램을 쓰면 대신 두 프로그램이 컴퓨터 전체에 설치됩니다. GPL-3.0 아래의 무료 오픈 소스입니다.

+ +
+
+ +
+
+

릴리스에 들어 있는 것

+
+ + + + + + + +
파일설명
{{archive_window}}창입니다. BetterWindowsServices.exe이며, .NET 런타임이 안에 들어 있는 자체 포함 실행 파일 하나입니다
{{archive_cli}}명령줄입니다. bws.exe이며, 스크립트, 예약 작업, CI를 위한 자체 포함 실행 파일 하나입니다
{{archive_installer}}설치 프로그램입니다. 컴퓨터의 모든 계정을 위해 두 프로그램을 Program Files에 설치하고, 창은 시작 메뉴에, bws는 컴퓨터의 PATH에 추가합니다
+
+

하나만 받아도, 둘 다 받아도 됩니다. 같은 엔진의 두 클라이언트이며 어느 쪽도 상대를 필요로 하지 않습니다. 서버에서는 명령줄이 둘 중 더 작고, 창이 하는 모든 일을 합니다.

+

설치 프로그램에는 두 압축 파일에 들어 있는 것이 그대로 들어 있습니다. msiexec /i {{archive_installer}} /qn으로 조용히 설치되고, 새 버전은 이전 버전 위에 설치되며, 실행 중인 것은 닫지 않습니다. 따라서 업그레이드하기 전에 창과 실행 중인 bws를 닫으세요. 실행 상태로 남은 복사본은 오류와 함께 멈출 수 있습니다. 설정, 앱에서 제거하면 프로그램, 시작 메뉴 항목, PATH 항목이 제거되고 사용자의 파일은 그대로 둡니다.

+

실행 파일에는 Authenticode 서명이 있으므로, Windows는 알 수 없는 게시자를 경고하는 대신 게시자 이름을 표시합니다.

+
+
+ +
+
+

요구 사항

+ +

창은 자체 파일을 하나만 보관합니다. 목록을 마지막으로 둔 레이아웃이며 %APPDATA%\BetterWindowsServices에 있습니다. 스냅샷은 bws snapshot create에 지정한 위치에 저장되고, 지정하지 않으면 현재 디렉터리에 저장됩니다.

+

프로그램은 영어로 표시됩니다. 창은 옆에 놓인 언어 파일 languages\gui.<code>.json을 읽으며, Windows의 언어에 따라 선택하고 스위치는 없습니다. 따라서 번역은 다시 빌드하지 않고 추가할 수 있는 기여입니다. 방법은 CONTRIBUTING.md에 있습니다.

+
+
+ +
+
+

백신과 EDR

+

이 도구는 관리자가 서비스에 대해 하는 일을 하며, 그중 일부는 보안 소프트웨어가 감시하는 바로 그 동작입니다.

+

서비스를 중지하고 시작하며, 서비스 뒤의 프로세스를 종료할 수 있고, 모든 서비스의 보안 설명자와 필요한 권한을 읽습니다. svchost.exe를 종료하는 프로세스를 표시하는 EDR은 제 할 일을 하는 것이며, 여기서의 강제 중지는 정확히 그렇게 보일 수 있습니다.

+

이 도구가 하지 않는 일은 다음과 같습니다. 주장을 직접 확인할 수 있도록 적습니다. 어떤 프로세스에도 아무것도 주입하지 않습니다. 아무것도 패킹하거나 난독화하지 않습니다. 서비스도 드라이버도 설치하지 않고 아무것도 실행 상태로 남기지 않으며, 네트워크 연결을 열지 않습니다. GPL-3.0 아래의 오픈 소스이며 두 실행 파일을 직접 빌드할 수 있습니다.

+

정책상 예외가 필요하다면 폴더가 아니라 두 실행 파일을 파일 단위로 제외하세요. 도구 자체와 같은 주의를 기울일 가치가 있는 것은 하나뿐입니다. 스냅샷 파일입니다. 컴퓨터 전체를 설명하기 때문입니다.

+
+
+ +
+
+

소스에서 빌드하기

+

.NET 10 SDK, Windows에서.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

일부 테스트는 실행 중인 컴퓨터의 실제 서비스 제어 관리자를 읽고, 이 도구가 말하는 내용을 sc.exe가 말하는 내용과 비교합니다. 읽기 전용입니다. 릴리스에 들어 있는 단일 파일 실행 파일은 다음 두 번의 게시로 만들며, 각각 런타임이 안에 들어 있는 파일 하나입니다.

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

결과는 각 프로젝트의 bin/Release/.../win-x64/publish/ 아래에 bws.exe와 BetterWindowsServices.exe로 생성됩니다. 옆에 있는 .pdb 파일은 디버깅 기호이며, 실행에는 필요하지 않습니다.

+
+
+ +
+
+

실행에 드는 비용

+

서비스 810개가 있는 컴퓨터 한 대에서 측정했습니다. 서비스 수, 디스크, 프로세서에 따라 수치가 달라집니다.

+
+

약 4분의 1초

bws list가 컴퓨터 전체를 읽는 데 걸리는 시간.

+

약 0.8초

창을 시작해서 목록이 화면에 나타날 때까지.

+

약 100MB

창이 사용하는 양입니다. 그 절반은 Windows 사용자 인터페이스 프레임워크이며, 이 도구 자체의 코드가 실행되기 전의 양입니다.

+

약 16MB

같은 컴퓨터에서 명령줄이 사용하는 양입니다.

+
+
+
diff --git a/site/pages/download/nl.html b/site/pages/download/nl.html new file mode 100644 index 0000000..ff813a9 --- /dev/null +++ b/site/pages/download/nl.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Download +

Uitpakken en starten, of installeren

+

Versie {{version}}. De archieven hebben geen installatieprogramma nodig en schrijven niets naar het register, en kijken vraagt geen beheerdersrechten. Een ondertekend installatieprogramma zet beide programma's in plaats daarvan op de hele machine. Vrij en open source onder GPL-3.0.

+ +
+
+ +
+
+

Wat er in de release zit

+
+ + + + + + + +
BestandWat het is
{{archive_window}}Het venster: BetterWindowsServices.exe, één zelfstandig uitvoerbaar bestand met een eigen .NET-runtime erin
{{archive_cli}}De opdrachtregel: bws.exe, één zelfstandig uitvoerbaar bestand, voor scripts, geplande taken en CI
{{archive_installer}}Het installatieprogramma: beide programma's in Program Files voor elk account op de machine, het venster in het startmenu en bws in het PATH van de machine
+
+

Neem er een of beide - het zijn twee clients van dezelfde engine en geen van beide heeft de andere nodig. Op een server is de opdrachtregel de kleinste van de twee en doet alles wat het venster doet.

+

Het installatieprogramma bevat precies wat de twee archieven bevatten. Het installeert stil met msiexec /i {{archive_installer}} /qn, een nieuwere versie installeert over een oudere heen, en het sluit niets af wat draait - sluit dus het venster en elke draaiende bws voordat u bijwerkt, want een kopie die blijft draaien kan met een fout stoppen. Verwijderen via Instellingen, Apps haalt de programma's, het item in het startmenu en het PATH-item weg en laat uw eigen bestanden met rust.

+

De uitvoerbare bestanden dragen een Authenticode-handtekening, zodat Windows de uitgever noemt in plaats van te waarschuwen voor een onbekende.

+
+
+ +
+
+

Vereisten

+ +

Het venster bewaart één eigen bestand - de indeling waarin u de lijst hebt achtergelaten - onder %APPDATA%\BetterWindowsServices. Een momentopname komt waar u bws snapshot create opdraagt hem neer te zetten, en in de huidige map als u dat niet doet.

+

Het programma spreekt Engels. Het venster leest een taalbestand, languages\gui.<code>.json, dat ernaast ligt en wordt gekozen op basis van de taal van Windows, zonder schakelaar. Een vertaling is dus een bijdrage die kan worden toegevoegd zonder opnieuw te bouwen - CONTRIBUTING.md legt uit hoe.

+
+
+ +
+
+

Antivirus en EDR

+

Dit hulpmiddel doet wat een beheerder met services doet, en een deel daarvan is wat beveiligingssoftware in de gaten houdt.

+

Het stopt en start services, het kan het proces achter een service beëindigen, en het leest van elke service de beveiligingsdescriptor en vereiste bevoegdheden. Een EDR die een proces markeert dat svchost.exe beëindigt, doet zijn werk, en een geforceerde stop hier kan er precies zo uitzien.

+

Wat het niet doet, zodat u de bewering kunt controleren: het injecteert niets in een proces, het verpakt of versluiert niets, het installeert geen service en geen stuurprogramma en laat niets draaien, en het opent geen netwerkverbinding. Het is open source onder GPL-3.0 en u kunt beide uitvoerbare bestanden zelf bouwen.

+

Als uw beleid een uitzondering vraagt, sluit dan de twee uitvoerbare bestanden uit op bestand in plaats van op map. Het enige wat met dezelfde zorg moet worden behandeld als het hulpmiddel zelf is een momentopnamebestand: het beschrijft de hele machine.

+
+
+ +
+
+

Bouwen uit de broncode

+

.NET 10 SDK, op Windows.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

Sommige tests lezen de echte servicebeheerder van de machine waarop ze draaien en vergelijken wat dit hulpmiddel zegt met wat sc.exe zegt. Ze zijn alleen-lezen. De uitvoerbare bestanden uit één bestand die de releases dragen zijn deze twee publicaties, elk één bestand met de runtime erin:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

Ze komen terecht als bws.exe en BetterWindowsServices.exe onder bin/Release/.../win-x64/publish/ van elk project. De .pdb-bestanden ernaast zijn foutopsporingssymbolen, en niets heeft ze nodig om te draaien.

+
+
+ +
+
+

Wat het kost om te draaien

+

Gemeten op één machine met 810 services. Uw cijfers zullen verschillen - het aantal services, de schijf en de processor beïnvloeden ze allemaal.

+
+

Ongeveer een kwart seconde

voor bws list om de hele machine te lezen.

+

Ongeveer acht tienden van een seconde

van het starten van het venster tot de lijst op het scherm staat.

+

Ongeveer 100 MB

voor het venster - de helft daarvan is het gebruikersinterfaceframework van Windows, voordat enige code van dit hulpmiddel draait.

+

Ongeveer 16 MB

voor de opdrachtregel op dezelfde machine.

+
+
+
diff --git a/site/pages/download/page.json b/site/pages/download/page.json index 156b1f5..a56fc6f 100644 --- a/site/pages/download/page.json +++ b/site/pages/download/page.json @@ -11,6 +11,12 @@ "fr": "telechargement", "es": "descarga", "it": "download", - "pt-br": "baixar" + "pt-br": "baixar", + "nl": "downloaden", + "cs": "stazeni", + "ro": "descarcare", + "tr": "indir", + "id": "unduh", + "vi": "tai-xuong" } } diff --git a/site/pages/download/ro.html b/site/pages/download/ro.html new file mode 100644 index 0000000..c24f2a0 --- /dev/null +++ b/site/pages/download/ro.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Descărcare +

Dezarhivați și rulați, sau instalați

+

Versiunea {{version}}. Arhivele nu au nevoie de program de instalare și nu scriu nimic în registru, iar privitul nu cere drepturi de administrator. Un program de instalare semnat pune în schimb ambele programe pe toată mașina. Liber și open source sub GPL-3.0.

+ +
+
+ +
+
+

Ce conține versiunea

+
+ + + + + + + +
FișierCe este
{{archive_window}}Fereastra: BetterWindowsServices.exe, un singur executabil independent cu propriul runtime .NET în interior
{{archive_cli}}Linia de comandă: bws.exe, un singur executabil independent, pentru scripturi, sarcini programate și CI
{{archive_installer}}Programul de instalare: ambele programe în Program Files pentru fiecare cont de pe mașină, fereastra în meniul Start și bws în PATH-ul mașinii
+
+

Luați unul sau pe amândouă - sunt doi clienți ai aceluiași motor și niciunul nu îl cere pe celălalt. Pe un server, linia de comandă este cea mai mică dintre ele și face tot ce face fereastra.

+

Programul de instalare conține exact ce conțin cele două arhive. Se instalează silențios cu msiexec /i {{archive_installer}} /qn, o versiune mai nouă se instalează peste una mai veche și nu închide nimic din ce rulează - așa că închideți fereastra și orice bws care rulează înainte de actualizare, pentru că o copie lăsată să ruleze se poate opri cu o eroare. Dezinstalarea din Setări, Aplicații elimină programele, intrarea din meniul Start și intrarea din PATH și lasă fișierele dumneavoastră în pace.

+

Executabilele poartă o semnătură Authenticode, așa că Windows numește editorul în loc să avertizeze despre unul necunoscut.

+
+
+ +
+
+

Cerințe

+ +

Fereastra păstrează un singur fișier al ei - aranjamentul în care ați lăsat lista - sub %APPDATA%\BetterWindowsServices. Un instantaneu merge acolo unde îi spuneți lui bws snapshot create să-l pună, iar în directorul curent când nu spuneți.

+

Programul vorbește engleza. Fereastra citește un fișier de limbă, languages\gui.<cod>.json, așezat lângă ea și ales după limba Windows, fără comutator. O traducere este deci o contribuție care se poate adăuga fără recompilare - CONTRIBUTING.md spune cum.

+
+
+ +
+
+

Antivirus și EDR

+

Acest instrument face ceea ce face un administrator cu serviciile, iar o parte din asta este exact ceea ce urmărește software-ul de securitate.

+

Oprește și pornește servicii, poate încheia procesul din spatele unuia și citește descriptorul de securitate și privilegiile necesare ale fiecărui serviciu. Un EDR care semnalează un proces ce încheie svchost.exe își face treaba, iar o oprire forțată de aici poate arăta exact așa.

+

Ce nu face, ca să puteți verifica afirmația: nu injectează nimic în niciun proces, nu împachetează și nu ofuscă nimic, nu instalează niciun serviciu și niciun driver și nu lasă nimic să ruleze, și nu deschide nicio conexiune de rețea. Este open source sub GPL-3.0 și puteți compila singur ambele executabile.

+

Dacă politica dumneavoastră cere o excepție, excludeți cele două executabile după fișier, nu după folder. Singurul lucru care merită tratat cu aceeași grijă ca instrumentul însuși este un fișier de instantaneu: descrie întreaga mașină.

+
+
+ +
+
+

Compilarea din sursă

+

.NET 10 SDK, pe Windows.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

Unele teste citesc managerul real de servicii al mașinii pe care rulează și compară ce spune acest instrument cu ce spune sc.exe. Sunt doar pentru citire. Executabilele dintr-un singur fișier pe care le poartă versiunile sunt aceste două publicări, fiecare un singur fișier cu runtime-ul în interior:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

Ajung ca bws.exe și BetterWindowsServices.exe sub bin/Release/.../win-x64/publish/ al fiecărui proiect. Fișierele .pdb de lângă ele sunt simboluri de depanare, iar nimic nu are nevoie de ele pentru a rula.

+
+
+ +
+
+

Cât costă rularea

+

Măsurat pe o singură mașină cu 810 servicii. Cifrele dumneavoastră vor diferi - numărul de servicii, discul și procesorul le influențează pe toate.

+
+

Cam un sfert de secundă

pentru ca bws list să citească toată mașina.

+

Cam opt zecimi de secundă

de la pornirea ferestrei până când lista apare pe ecran.

+

Cam 100 MB

pentru fereastră - jumătate din această cantitate este cadrul de interfață al Windows, înainte să ruleze vreun cod al acestui instrument.

+

Cam 16 MB

pentru linia de comandă pe aceeași mașină.

+
+
+
diff --git a/site/pages/download/ru.html b/site/pages/download/ru.html new file mode 100644 index 0000000..1683947 --- /dev/null +++ b/site/pages/download/ru.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Скачать +

Распакуйте и запустите или установите

+

Версия {{version}}. Архивам не нужен установщик, и они ничего не пишут в реестр, а для просмотра не нужны права администратора. Подписанный установщик вместо этого ставит обе программы на всю машину. Свободный и с открытым кодом под GPL-3.0.

+ +
+
+ +
+
+

Что входит в выпуск

+
+ + + + + + + +
ФайлЧто это
{{archive_window}}Окно: BetterWindowsServices.exe, один автономный исполняемый файл со своей средой выполнения .NET внутри
{{archive_cli}}Командная строка: bws.exe, один автономный исполняемый файл, для скриптов, запланированных задач и CI
{{archive_installer}}Установщик: обе программы в Program Files для каждой учётной записи на машине, окно в меню «Пуск» и bws в PATH машины
+
+

Берите одну или обе - это два клиента одного движка, и ни одной не нужна другая. На сервере командная строка меньше из двух и делает всё, что делает окно.

+

Установщик несёт ровно то, что содержат два архива. Он тихо ставится командой msiexec /i {{archive_installer}} /qn, новая версия ставится поверх старой, и он ничего не закрывает из работающего - поэтому перед обновлением закройте окно и каждый работающий bws, ведь оставленная работающей копия может остановиться с ошибкой. Удаление через «Параметры», «Приложения» убирает программы, пункт меню «Пуск» и запись в PATH и не трогает ваши собственные файлы.

+

Исполняемые файлы несут подпись Authenticode, поэтому Windows называет издателя, а не предупреждает о неизвестном.

+
+
+ +
+
+

Требования

+ +

Окно хранит один собственный файл - раскладку, в которой вы оставили список, - в %APPDATA%\BetterWindowsServices. Снимок попадает туда, куда вы скажете bws snapshot create его положить, а если не скажете - в текущий каталог.

+

Программа говорит по-английски. Окно читает файл языка, languages\gui.<код>.json, лежащий рядом с ним и выбираемый по языку Windows, без переключателя. Перевод поэтому - это вклад, который можно добавить без пересборки - CONTRIBUTING.md объясняет как.

+
+
+ +
+
+

Антивирус и EDR

+

Этот инструмент делает то, что администратор делает со службами, и часть этого - ровно то, за чем следит защитное ПО.

+

Он останавливает и запускает службы, может завершить процесс, стоящий за одной из них, и читает дескриптор безопасности и требуемые привилегии каждой службы. EDR, который отмечает процесс, завершающий svchost.exe, делает свою работу, а принудительная остановка здесь может выглядеть в точности так.

+

Чего он не делает, чтобы вы могли проверить это утверждение: он ничего не внедряет ни в какой процесс, ничего не упаковывает и не запутывает, не устанавливает ни службы, ни драйвера и ничего не оставляет работающим, и не открывает ни одного сетевого соединения. Он с открытым кодом под GPL-3.0, и оба исполняемых файла можно собрать самому.

+

Если вашей политике нужно исключение, исключайте два исполняемых файла по файлу, а не по папке. Единственное, к чему стоит относиться с той же заботой, что и к самому инструменту, - это файл снимка: он описывает всю машину.

+
+
+ +
+
+

Сборка из исходного кода

+

.NET 10 SDK, в Windows.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

Некоторые тесты читают настоящий диспетчер служб машины, на которой работают, и сравнивают то, что говорит этот инструмент, с тем, что говорит sc.exe. Они только читают. Однофайловые исполняемые файлы, которые несут выпуски, - это две публикации ниже, каждая - один файл со средой выполнения внутри:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

Они оказываются как bws.exe и BetterWindowsServices.exe в bin/Release/.../win-x64/publish/ каждого проекта. Файлы .pdb рядом - это отладочные символы, и для работы они никому не нужны.

+
+
+ +
+
+

Во сколько обходится работа

+

Измерено на одной машине с 810 службами. Ваши цифры будут другими: число служб, диск и процессор влияют на все.

+
+

Около четверти секунды

чтобы bws list прочитал всю машину.

+

Около восьми десятых секунды

от запуска окна до появления списка на экране.

+

Около 100 МБ

для окна - половина из них приходится на интерфейсный фреймворк Windows, ещё до того, как запустится какой-либо код этого инструмента.

+

Около 16 МБ

для командной строки на той же машине.

+
+
+
diff --git a/site/pages/download/tr.html b/site/pages/download/tr.html new file mode 100644 index 0000000..0b23151 --- /dev/null +++ b/site/pages/download/tr.html @@ -0,0 +1,86 @@ + + + + + +
+
+ İndir +

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

+

Sürüm {{version}}. Arşivler yükleyici gerektirmez ve kayıt defterine hiçbir şey yazmaz; bakmak yönetici hakları gerektirmez. İmzalı bir yükleyici ise iki programı birden tüm makineye kurar. GPL-3.0 altında özgür ve açık kaynak.

+ +
+
+ +
+
+

Sürümde neler var

+
+ + + + + + + +
DosyaNedir
{{archive_window}}Pencere: BetterWindowsServices.exe, içinde kendi .NET çalışma zamanı olan tek bir bağımsız yürütülebilir dosya
{{archive_cli}}Komut satırı: bws.exe, tek bir bağımsız yürütülebilir dosya; betikler, zamanlanmış görevler ve CI için
{{archive_installer}}Yükleyici: makinedeki her hesap için Program Files içinde iki program, Başlat menüsünde pencere ve makinenin PATH'inde bws
+
+

Birini ya da ikisini alın - aynı motorun iki istemcisidir ve hiçbiri diğerine ihtiyaç duymaz. Bir sunucuda komut satırı ikisinden küçüğüdür ve pencerenin yaptığı her şeyi yapar.

+

Yükleyici, iki arşivin içerdiğinin aynısını taşır. msiexec /i {{archive_installer}} /qn ile sessizce kurulur, daha yeni bir sürüm eskisinin üzerine kurulur ve çalışan hiçbir şeyi kapatmaz - bu yüzden yükseltmeden önce pencereyi ve çalışan her bws'i kapatın; çünkü çalışır halde bırakılan bir kopya bir hatayla durabilir. Ayarlar, Uygulamalar'dan kaldırmak programları, Başlat menüsü girdisini ve PATH girdisini kaldırır; kendi dosyalarınıza dokunmaz.

+

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.

+
+
+ +
+
+

Gereksinimler

+ +

Pencere kendine ait tek bir dosya tutar - listeyi bıraktığınız düzen - %APPDATA%\BetterWindowsServices altında. Bir anlık görüntü, bws snapshot create'e nereye koymasını söylerseniz oraya gider; söylemezseniz geçerli dizine.

+

Program İngilizce konuşur. Pencere, yanında duran ve Windows'un diline göre, anahtarsız seçilen bir dil dosyasını, languages\gui.<kod>.json, okur. Dolayısıyla çeviri, yeniden derlemeden eklenebilecek bir katkıdır - CONTRIBUTING.md nasıl yapılacağını anlatır.

+
+
+ +
+
+

Antivirüs ve EDR

+

Bu araç, bir yöneticinin hizmetlerle yaptığını yapar ve bunun bir kısmı tam olarak güvenlik yazılımının izlediği şeydir.

+

Hizmetleri durdurur ve başlatır, birinin arkasındaki süreci sonlandırabilir ve her hizmetin güvenlik tanımlayıcısını ve gereken ayrıcalıklarını okur. svchost.exe'yi sonlandıran bir süreci işaretleyen bir EDR işini yapıyordur ve buradaki zorla durdurma tam olarak öyle görünebilir.

+

Neyi yapmadığı, iddiayı doğrulayabilmeniz için: hiçbir işleme hiçbir şey enjekte etmez, hiçbir şeyi paketlemez ya da gizlemez, hiçbir hizmet ya da sürücü kurmaz ve hiçbir şeyi çalışır halde bırakmaz, hiçbir ağ bağlantısı açmaz. GPL-3.0 altında açık kaynaktır ve iki yürütülebilir dosyayı da kendiniz derleyebilirsiniz.

+

İlkeniz bir istisna gerektiriyorsa, iki yürütülebilir dosyayı klasöre göre değil dosyaya göre hariç tutun. Araçla aynı özenle ele alınmaya değer tek şey bir anlık görüntü dosyasıdır: tüm makineyi tanımlar.

+
+
+ +
+
+

Kaynaktan derleme

+

.NET 10 SDK, Windows üzerinde.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

Bazı testler, çalıştıkları makinenin gerçek hizmet yöneticisini okur ve bu aracın söylediğini sc.exe'nin söylediğiyle karşılaştırır. Salt okunurdur. Sürümlerin taşıdığı tek dosyalık yürütülebilir dosyalar şu iki yayımlamadır; her biri çalışma zamanı içinde tek bir dosyadır:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

bws.exe ve BetterWindowsServices.exe olarak her projenin bin/Release/.../win-x64/publish/ klasörüne düşerler. Yanlarındaki .pdb dosyaları hata ayıklama sembolleridir ve çalışmak için hiçbir şeyin onlara ihtiyacı yoktur.

+
+
+ +
+
+

Çalıştırmanın maliyeti

+

810 hizmetli tek bir makinede ölçüldü. Sizin rakamlarınız farklı olacaktır - hizmet sayısı, disk ve işlemci hepsini etkiler.

+
+

Yaklaşık çeyrek saniye

bws list'in tüm makineyi okuması için.

+

Yaklaşık saniyenin sekiz onda biri

pencerenin başlatılmasından listenin ekrana gelmesine kadar.

+

Yaklaşık 100 MB

pencere için - bu aracın kendi kodu çalışmadan önce, yarısı Windows kullanıcı arabirimi çerçevesidir.

+

Yaklaşık 16 MB

aynı makinede komut satırı için.

+
+
+
diff --git a/site/pages/download/uk.html b/site/pages/download/uk.html new file mode 100644 index 0000000..d4d702b --- /dev/null +++ b/site/pages/download/uk.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Завантаження +

Розпакуйте й запустіть або встановіть

+

Версія {{version}}. Архівам не потрібен інсталятор, і вони нічого не пишуть у реєстр, а для перегляду права адміністратора не потрібні. Підписаний інсталятор натомість ставить обидві програми на всю машину. Безкоштовний і з відкритим кодом за ліцензією GPL-3.0.

+ +
+
+ +
+
+

Що є у випуску

+
+ + + + + + + +
ФайлЩо це
{{archive_window}}Вікно: BetterWindowsServices.exe, один автономний виконуваний файл зі власним середовищем виконання .NET усередині
{{archive_cli}}Командний рядок: bws.exe, один автономний виконуваний файл, для скриптів, запланованих задач і CI
{{archive_installer}}Інсталятор: обидві програми в Program Files для кожного облікового запису на машині, вікно в меню «Пуск» і bws у PATH машини
+
+

Беріть один або обидва - це два клієнти одного рушія, і жоден не потребує іншого. На сервері командний рядок менший із двох і робить усе, що робить вікно.

+

Інсталятор несе рівно те, що містять два архіви. Він ставиться тихо командою msiexec /i {{archive_installer}} /qn, новіша версія встановлюється поверх старішої, і він нічого не закриває з того, що працює, - тож перед оновленням закрийте вікно та будь-який запущений bws, бо копія, залишена запущеною, може зупинитися з помилкою. Видалення через «Параметри», «Програми» прибирає програми, пункт у меню «Пуск» і запис у PATH, а ваші власні файли не чіпає.

+

Виконувані файли несуть підпис Authenticode, тому Windows називає видавця, а не попереджає про невідомого.

+
+
+ +
+
+

Вимоги

+ +

Вікно зберігає один власний файл - розкладку, у якій ви залишили список, - у %APPDATA%\BetterWindowsServices. Знімок потрапляє туди, куди ви скажете покласти його команді bws snapshot create, а якщо не скажете - у поточний каталог.

+

Програма говорить англійською. Вікно читає файл мови, languages\gui.<code>.json, що лежить поруч і вибирається за мовою Windows, без перемикача. Переклад - це тому внесок, який можна додати без перебудови, - як це зробити, пояснює CONTRIBUTING.md.

+
+
+ +
+
+

Антивірус і EDR

+

Цей інструмент робить зі службами те, що робить адміністратор, а частина цього - саме те, за чим стежить захисне програмне забезпечення.

+

Він зупиняє й запускає служби, може завершити процес, що стоїть за однією з них, і читає дескриптор безпеки та потрібні привілеї кожної служби. EDR, який позначає процес, що завершує svchost.exe, робить свою роботу, а примусова зупинка тут може виглядати саме так.

+

Чого він не робить, щоб ви могли перевірити твердження: нічого не впроваджує в жоден процес, нічого не пакує й не обфускує, не встановлює ні служби, ні драйвера й нічого не залишає запущеним, і не відкриває жодного мережевого з'єднання. Він має відкритий код за GPL-3.0, і обидва виконувані файли можна зібрати самому.

+

Якщо вашій політиці потрібен виняток, виключайте два виконувані файли за файлом, а не за каталогом. Єдине, до чого варто ставитися з такою самою обережністю, як до самого інструмента, - це файл знімка: він описує всю машину.

+
+
+ +
+
+

Збирання з вихідного коду

+

.NET 10 SDK, у Windows.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

Деякі тести читають справжній диспетчер керування службами машини, на якій запущені, і порівнюють те, що каже цей інструмент, із тим, що каже sc.exe. Вони лише читають. Однофайлові виконувані файли, які несуть випуски, - це ці дві публікації, кожна в один файл із середовищем виконання всередині:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

Вони з'являються як bws.exe і BetterWindowsServices.exe у bin/Release/.../win-x64/publish/ кожного проєкту. Файли .pdb поруч із ними - це символи налагодження, і для запуску вони не потрібні.

+
+
+ +
+
+

Скільки коштує його робота

+

Виміряно на одній машині з 810 службами. Ваші цифри відрізнятимуться: на них впливають кількість служб, диск і процесор.

+
+

Близько чверті секунди

щоб bws list прочитав усю машину.

+

Близько восьми десятих секунди

від запуску вікна до появи списку на екрані.

+

Близько 100 МБ

для вікна - половина з них це фреймворк інтерфейсу користувача Windows, ще до того, як запрацює будь-який власний код цього інструмента.

+

Близько 16 МБ

для командного рядка на тій самій машині.

+
+
+
diff --git a/site/pages/download/vi.html b/site/pages/download/vi.html new file mode 100644 index 0000000..ff4f341 --- /dev/null +++ b/site/pages/download/vi.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Tải xuống +

Giải nén và chạy, hoặc cài đặt

+

Phiên bản {{version}}. Các bản nén không cần trình cài đặt và không ghi gì vào registry, và việc xem không cần quyền quản trị. Thay vào đó, một trình cài đặt có chữ ký đặt cả hai chương trình lên toàn bộ máy. Miễn phí và mã nguồn mở theo GPL-3.0.

+ +
+
+ +
+
+

Trong bản phát hành có gì

+
+ + + + + + + +
TệpĐó là gì
{{archive_window}}Cửa sổ: BetterWindowsServices.exe, một tệp thực thi độc lập có sẵn runtime .NET bên trong
{{archive_cli}}Dòng lệnh: bws.exe, một tệp thực thi độc lập, cho script, tác vụ theo lịch và CI
{{archive_installer}}Trình cài đặt: cả hai chương trình trong Program Files cho mọi tài khoản trên máy, cửa sổ trong menu Start và bws trong PATH của máy
+
+

Lấy một hoặc cả hai - chúng là hai máy khách của cùng một lõi và cái này không cần cái kia. Trên máy chủ, dòng lệnh là cái nhỏ hơn trong hai và làm mọi thứ mà cửa sổ làm.

+

Trình cài đặt mang đúng những gì hai bản nén chứa. Nó cài đặt âm thầm bằng msiexec /i {{archive_installer}} /qn, phiên bản mới hơn cài đè lên phiên bản cũ, và nó không đóng bất cứ thứ gì đang chạy - nên hãy đóng cửa sổ và mọi bws đang chạy trước khi nâng cấp, vì một bản sao bị để chạy có thể dừng với lỗi. Gỡ cài đặt từ Settings, Apps sẽ xóa các chương trình, mục menu Start và mục PATH, và để yên các tệp của bạn.

+

Các tệp thực thi mang chữ ký Authenticode, nên Windows nêu tên nhà phát hành thay vì cảnh báo về một nhà phát hành không rõ.

+
+
+ +
+
+

Yêu cầu

+ +

Cửa sổ giữ một tệp riêng - bố cục bạn để lại danh sách - dưới %APPDATA%\BetterWindowsServices. Một bản chụp đi tới nơi bạn bảo bws snapshot create đặt nó, và vào thư mục hiện tại khi bạn không bảo.

+

Chương trình nói tiếng Anh. Cửa sổ đọc một tệp ngôn ngữ, languages\gui.<mã>.json, đặt bên cạnh nó và được chọn theo ngôn ngữ của Windows, không cần công tắc. Vì vậy một bản dịch là một đóng góp có thể thêm vào mà không cần biên dịch lại - CONTRIBUTING.md nói cách làm.

+
+
+ +
+
+

Phần mềm diệt virus và EDR

+

Công cụ này làm điều mà một quản trị viên làm với dịch vụ, và một phần trong đó chính là thứ mà phần mềm bảo mật theo dõi.

+

Nó dừng và khởi động dịch vụ, có thể kết thúc tiến trình đằng sau một dịch vụ, và đọc bộ mô tả bảo mật cùng các đặc quyền yêu cầu của mọi dịch vụ. Một EDR đánh dấu tiến trình kết thúc svchost.exe đang làm đúng việc của nó, và một lần dừng cưỡng bức ở đây có thể trông y như vậy.

+

Những gì nó không làm, để bạn kiểm chứng được lời khẳng định: nó không chèn gì vào bất kỳ tiến trình nào, không đóng gói hay làm rối mã thứ gì, không cài dịch vụ hay trình điều khiển nào và không để lại gì đang chạy, và không mở kết nối mạng nào. Nó là mã nguồn mở theo GPL-3.0 và bạn có thể tự xây dựng cả hai tệp thực thi.

+

Nếu chính sách của bạn cần một ngoại lệ, hãy loại trừ hai tệp thực thi theo tệp chứ không theo thư mục. Thứ duy nhất đáng được xử lý cẩn thận như chính công cụ là một tệp bản chụp: nó mô tả cả máy.

+
+
+ +
+
+

Xây dựng từ mã nguồn

+

.NET 10 SDK, trên Windows.

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

Một số bài kiểm thử đọc trình quản lý dịch vụ thật của máy chúng chạy trên và so sánh điều công cụ này nói với điều sc.exe nói. Chúng chỉ đọc. Các tệp thực thi một-tệp mà các bản phát hành mang là hai lần xuất bản này, mỗi lần là một tệp với runtime bên trong:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

Chúng nằm ở bws.exe và BetterWindowsServices.exe dưới bin/Release/.../win-x64/publish/ của mỗi dự án. Các tệp .pdb bên cạnh là ký hiệu gỡ lỗi, và không thứ gì cần chúng để chạy.

+
+
+ +
+
+

Chi phí để chạy

+

Đo trên một máy có 810 dịch vụ. Số liệu của bạn sẽ khác - số dịch vụ, ổ đĩa và bộ xử lý đều ảnh hưởng.

+
+

Khoảng một phần tư giây

để bws list đọc cả máy.

+

Khoảng tám phần mười giây

từ lúc khởi động cửa sổ đến khi danh sách hiện trên màn hình.

+

Khoảng 100 MB

cho cửa sổ - một nửa là khung giao diện người dùng của Windows, trước khi bất kỳ mã nào của công cụ này chạy.

+

Khoảng 16 MB

cho dòng lệnh trên cùng máy đó.

+
+
+
diff --git a/site/pages/download/zh-hans.html b/site/pages/download/zh-hans.html new file mode 100644 index 0000000..a741070 --- /dev/null +++ b/site/pages/download/zh-hans.html @@ -0,0 +1,86 @@ + + + + + +
+
+ 下载 +

解压即用,或安装

+

版本 {{version}}。压缩包不需要安装程序,也不向注册表写入任何内容,查看时不需要管理员权限。使用已签名的安装程序,则会把这两个程序装到整台计算机上。免费开源,采用 GPL-3.0。

+ +
+
+ +
+
+

发布内容

+
+ + + + + + + +
文件说明
{{archive_window}}窗口:BetterWindowsServices.exe,一个自包含的可执行文件,内置自己的 .NET 运行时
{{archive_cli}}命令行:bws.exe,一个自包含的可执行文件,用于脚本、计划任务和 CI
{{archive_installer}}安装程序:为计算机上的每个账户把这两个程序安装到 Program Files,窗口出现在开始菜单中,bws 加入计算机的 PATH
+
+

可以取其一或两者都要,它们是同一引擎的两个客户端,彼此互不依赖。在服务器上,命令行是两者中较小的一个,窗口能做的它都能做。

+

安装程序包含的内容与两个压缩包完全相同。它可以用 msiexec /i {{archive_installer}} /qn 静默安装,较新的版本会覆盖安装在较旧的版本之上,并且它不会关闭任何正在运行的程序,所以升级前请先关闭窗口和任何正在运行的 bws,因为遗留在运行中的副本可能会报错停止。在“设置”的“应用”中卸载,会删除程序、开始菜单项和 PATH 项,而不会动你自己的文件。

+

可执行文件带有 Authenticode 签名,因此 Windows 会显示发布者名称,而不是警告来自未知发布者。

+
+
+ +
+
+

系统要求

+ +

窗口只保留一个自己的文件:你离开时列表的布局,位于 %APPDATA%\BetterWindowsServices 下。快照会保存到你在 bws snapshot create 中指定的位置,未指定时则保存到当前目录。

+

程序使用英文界面。窗口会读取放在它旁边的语言文件 languages\gui.<code>.json,并根据 Windows 的语言选择,没有切换开关。因此翻译是一项无需重新生成就能加入的贡献:CONTRIBUTING.md 说明了方法。

+
+
+ +
+
+

杀毒软件与 EDR

+

这个工具做的是管理员对服务做的事,其中一部分正是安全软件所监视的行为。

+

它会停止和启动服务,可以结束服务背后的进程,并读取每个服务的安全描述符和所需特权。如果某个 EDR 把结束 svchost.exe 的进程标记出来,那它是在履行职责,而这里的强制停止看起来可能与之完全一样。

+

它不会做的事,便于你核对这一说法:它不会向任何进程注入任何内容,不会打包或混淆任何内容,不会安装服务或驱动程序,也不会留下任何运行中的内容,更不会建立任何网络连接。它以 GPL-3.0 开源,你可以自己构建这两个可执行文件。

+

如果你的策略需要排除项,请按文件而不是按文件夹排除这两个可执行文件。唯一值得与工具本身同样小心对待的是快照文件:它描述了整台计算机。

+
+
+ +
+
+

从源代码构建

+

.NET 10 SDK,在 Windows 上。

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

有些测试会读取它所运行的计算机上的真实服务控制管理器,并把这个工具的输出与 sc.exe 的输出进行比较。这些测试是只读的。发布版本所带的单文件可执行文件来自下面这两次发布,每次都生成一个内含运行时的文件:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

它们会以 bws.exe 和 BetterWindowsServices.exe 的名称出现在各项目的 bin/Release/.../win-x64/publish/ 下。旁边的 .pdb 文件是调试符号,运行时并不需要它们。

+
+
+ +
+
+

运行开销

+

在一台有 810 个服务的计算机上测得。你的数字会有所不同:服务数量、磁盘和处理器都会影响结果。

+
+

大约四分之一秒

bws list 读取整台计算机所需的时间。

+

大约十分之八秒

从启动窗口到列表显示在屏幕上。

+

大约 100 MB

窗口占用的内存:其中一半是 Windows 用户界面框架,那还是在这个工具自己的代码运行之前。

+

大约 16 MB

同一台计算机上命令行占用的内存。

+
+
+
diff --git a/site/pages/download/zh-hant.html b/site/pages/download/zh-hant.html new file mode 100644 index 0000000..b72cce7 --- /dev/null +++ b/site/pages/download/zh-hant.html @@ -0,0 +1,86 @@ + + + + + +
+
+ 下載 +

解壓縮即用,或安裝

+

版本 {{version}}。壓縮檔不需要安裝程式,也不向登錄寫入任何內容,檢視時不需要系統管理員權限。使用已簽章的安裝程式,則會把這兩個程式裝到整台電腦上。免費開放原始碼,採用 GPL-3.0。

+ +
+
+ +
+
+

發行內容

+
+ + + + + + + +
檔案說明
{{archive_window}}視窗:BetterWindowsServices.exe,一個獨立式的可執行檔,內建自己的 .NET 執行階段
{{archive_cli}}命令列:bws.exe,一個獨立式的可執行檔,用於指令碼、排程工作和 CI
{{archive_installer}}安裝程式:為電腦上的每個帳戶把這兩個程式安裝到 Program Files,視窗出現在開始功能表中,bws 加入電腦的 PATH
+
+

可以取其一或兩者都要,它們是同一引擎的兩個用戶端,彼此互不相依。在伺服器上,命令列是兩者中較小的一個,視窗能做的它都能做。

+

安裝程式包含的內容與兩個壓縮檔完全相同。它可以用 msiexec /i {{archive_installer}} /qn 靜默安裝,較新的版本會覆蓋安裝在較舊的版本之上,並且它不會關閉任何正在執行的程式,所以升級前請先關閉視窗和任何正在執行的 bws,因為遺留在執行中的副本可能會報錯停止。在「設定」的「應用程式」中解除安裝,會刪除程式、開始功能表項目和 PATH 項目,而不會動你自己的檔案。

+

可執行檔帶有 Authenticode 簽章,因此 Windows 會顯示發行者名稱,而不是警告來自未知發行者。

+
+
+ +
+
+

系統需求

+ +

視窗只保留一個自己的檔案:你離開時清單的版面配置,位於 %APPDATA%\BetterWindowsServices 下。快照會儲存到你在 bws snapshot create 中指定的位置,未指定時則儲存到目前目錄。

+

程式使用英文介面。視窗會讀取放在它旁邊的語言檔案 languages\gui.<code>.json,並依 Windows 的語言選擇,沒有切換開關。因此翻譯是一項無需重新建置就能加入的貢獻:CONTRIBUTING.md 說明了方法。

+
+
+ +
+
+

防毒軟體與 EDR

+

這個工具做的是系統管理員對服務做的事,其中一部分正是資訊安全軟體所監視的行為。

+

它會停止和啟動服務,可以結束服務背後的處理程序,並讀取每個服務的安全性描述元和所需特殊權限。如果某個 EDR 把結束 svchost.exe 的處理程序標記出來,那它是在履行職責,而這裡的強制停止看起來可能與之完全一樣。

+

它不會做的事,便於你核對這一說法:它不會向任何處理程序注入任何內容,不會封裝或混淆任何內容,不會安裝服務或驅動程式,也不會留下任何執行中的內容,更不會建立任何網路連線。它以 GPL-3.0 開放原始碼,你可以自己建置這兩個可執行檔。

+

如果你的原則需要排除項目,請依檔案而不是依資料夾排除這兩個可執行檔。唯一值得與工具本身同樣小心對待的是快照檔案:它描述了整台電腦。

+
+
+ +
+
+

從原始碼建置

+

.NET 10 SDK,在 Windows 上。

+
git clone {{repo}}
+cd BetterWindowsServices
+dotnet build BetterWindowsServices.slnx -c Release
+dotnet test BetterWindowsServices.slnx -c Release
+

有些測試會讀取它所執行的電腦上的真實服務控制管理員,並把這個工具的輸出與 sc.exe 的輸出進行比較。這些測試是唯讀的。發行版本所帶的單一檔案可執行檔來自下面這兩次發佈,每次都產生一個內含執行階段的檔案:

+
dotnet publish src/Bws.Cli/Bws.Cli.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+dotnet publish src/Bws.Gui/Bws.Gui.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true
+

它們會以 bws.exe 和 BetterWindowsServices.exe 的名稱出現在各專案的 bin/Release/.../win-x64/publish/ 下。旁邊的 .pdb 檔案是偵錯符號,執行時並不需要它們。

+
+
+ +
+
+

執行成本

+

在一台有 810 個服務的電腦上測得。你的數字會有所不同:服務數量、磁碟和處理器都會影響結果。

+
+

大約四分之一秒

bws list 讀取整台電腦所需的時間。

+

大約十分之八秒

從啟動視窗到清單顯示在螢幕上。

+

大約 100 MB

視窗佔用的記憶體:其中一半是 Windows 使用者介面架構,那還是在這個工具自己的程式碼執行之前。

+

大約 16 MB

同一台電腦上命令列佔用的記憶體。

+
+
+
diff --git a/site/pages/faq/cs.html b/site/pages/faq/cs.html new file mode 100644 index 0000000..5233bc2 --- /dev/null +++ b/site/pages/faq/cs.html @@ -0,0 +1,78 @@ + + + + + +
+
+ Otázky +

Otázky a hranice

+

Nástroj, který tiše něco nepokrývá, je horší než ten, který říká, co neumí. Hranice jsou také na této stránce, ve dvou skupinách: co z návrhu odmítá, a co dělá Windows a tento nástroj to hlásí tak, jak to je.

+
+
+ +
+
+
+
+

Čím se to liší od sc.exe, Get-Service nebo services.msc?

+

sc query a Get-Service vám řeknou, co běží. services.msc vám to dovolí měnit, po jednom řádku, bez možnosti položit otázku a bez záznamu potom. Tento nástroj položí otázku (start:auto !status:running), ukáže vám plán, než jedná, a uchovává snímek, který můžete o týden později porovnat. Kde se se sc.exe o nějaké službě rozchází, je to chyba - část sady testů spouští obojí a porovnává to položku po položce. Delší srovnání je zde.

+
+
+

Potřebuje internet?

+

Nikdy. Žádná telemetrie, žádná kontrola aktualizací, žádné hlášení pádů, žádný účet, žádný klient čehokoli. Jediný okamžik, kdy se vůbec může dotknout sítě, je když zadáte --follow-network: pak se smí podívat na cestu ke spuštění na sdílené složce jiného stroje a nechat Windows stáhnout certifikát, který tento stroj ještě nemá - ve výchozím stavu vypnuto a nápověda říká proč. Tlačítka GitHub a Donate v okně a stránka v nabídce Help předají vašemu prohlížeči vždy jednu pevnou adresu, když na ně kliknete, a připojuje se váš prohlížeč.

+
+
+

Potřebuje práva správce?

+

Na prohlížení ne. Na změny ano. Bez nich správce ukazuje méně položek a víc jich odmítá a obě poloviny to říkají nahoře místo předstírání, že seznam je celý stroj. Okno nabízí Restart as admin. Samo si práva nikdy nezvyšuje.

+
+
+

Je to zdarma? Můžu to používat v práci?

+

Ano na obojí. GPL-3.0, bez háčků. Snímek, který pořídíte, je váš soubor.

+
+
+

Rozbije mi to server?

+

Samo od sebe ne. Nic se nemění bez plánu, který jste viděli, ovladače se odmítají a plán, který by shodil něco, co stroj potřebuje, to říká. Před čím vás ochránit nemůže, je provedení plánu, který jste nečetli. Seznam služeb, které stroj potřebuje, je výchozí seznam sedmi - obě poloviny RPC a spouštěč DCOM, správce účtů, izolace klíčů, správce relací a Plug and Play - a Vzdálená plocha na něm není, takže při vzdálené relaci plán čtěte.

+
+
+

Je to produkt Microsoftu?

+

Ne. {{product}} je nezávislý open source projekt a není přidružen k Microsoftu, schválen jím ani jím sponzorován. Windows je ochranná známka skupiny společností Microsoft.

+
+
+

Je program v mém jazyce?

+

Ne - program mluví anglicky, a proto je tento web přeložen. Okno čte jazykový soubor languages\gui.<kód>.json, uložený vedle spustitelného souboru, a vybírá ho podle jazyka Windows, bez přepínače, takže překlad je příspěvek, který lze přidat bez nového sestavení programu. Názvy služeb v seznamu jsou takové, jaké je říká váš Windows - v jazyce, ve kterém je váš Windows nastaven.

+
+
+

Proč je okno tmavé, když je můj Windows světlý?

+

Je tmavé a zůstává tmavé, ať je Windows nastaven jakkoli, včetně motivu s vysokým kontrastem. To je ověřeno, ne předpokládáno - drží si vlastní barvy a zůstává čitelné a toto nastavení nesleduje.

+
+
+
+
+ +
+
+

Z návrhu

+ +
+
+ +
+
+

Věci, které dělá Windows a tento nástroj je hlásí tak, jak jsou

+ +

Našli jste problém, nebo službu, kterou tento nástroj hlásí jinak než sc.exe? Sledování problémů je otevřené a rozdíl mezi nimi je to nejužitečnější, co do něj můžete vložit.

+
+
diff --git a/site/pages/faq/id.html b/site/pages/faq/id.html new file mode 100644 index 0000000..53ce1c6 --- /dev/null +++ b/site/pages/faq/id.html @@ -0,0 +1,78 @@ + + + + + +
+
+ Pertanyaan +

Pertanyaan, dan batasannya

+

Alat yang diam-diam tidak mencakup sesuatu lebih buruk daripada alat yang menyatakan apa yang tidak bisa dilakukannya. Batasannya ada juga di halaman ini, dalam dua kelompok: apa yang sengaja ditolaknya, dan apa yang dilakukan Windows dan dilaporkan alat ini apa adanya.

+
+
+ +
+
+
+
+

Apa bedanya dengan sc.exe, Get-Service, atau services.msc?

+

sc query dan Get-Service memberi tahu Anda apa yang berjalan. services.msc memungkinkan Anda mengubahnya, satu baris sekali waktu, tanpa cara untuk mengajukan pertanyaan dan tanpa catatan sesudahnya. Alat ini mengajukan pertanyaannya (start:auto !status:running), menunjukkan rencana sebelum bertindak, dan menyimpan snapshot yang bisa Anda bandingkan seminggu kemudian. Jika hasilnya berbeda dari sc.exe tentang sebuah layanan, itu adalah bug - sebagian suite pengujian menjalankan keduanya dan membandingkannya entri demi entri. Perbandingan yang lebih panjang ada di sini.

+
+
+

Apakah butuh internet?

+

Tidak pernah. Tanpa telemetri, tanpa pemeriksaan pembaruan, tanpa pelaporan kerusakan, tanpa akun, tanpa klien apa pun. Satu-satunya saat ia dapat menyentuh jaringan adalah ketika Anda memberikan --follow-network: saat itu ia boleh melihat jalur peluncuran pada berbagi mesin lain dan membiarkan Windows mengambil sertifikat yang belum dimiliki mesin ini - nonaktif secara bawaan, dan bantuannya menjelaskan alasannya. Tombol GitHub dan Donate di jendela serta halaman di menu Help masing-masing menyerahkan satu alamat tetap ke browser Anda saat ditekan, dan browser Andalah yang terhubung.

+
+
+

Apakah butuh hak administrator?

+

Untuk melihat, tidak. Untuk mengubah, ya. Tanpanya manajer menampilkan lebih sedikit entri dan menolak lebih banyak, dan kedua bagian menyatakannya di bagian atas alih-alih berpura-pura bahwa daftar itu adalah seluruh mesin. Jendela menawarkan Restart as admin. Ia tidak pernah menaikkan haknya sendiri.

+
+
+

Apakah gratis? Bisakah saya memakainya di tempat kerja?

+

Ya untuk keduanya. GPL-3.0, tanpa syarat tambahan. Snapshot yang Anda ambil adalah berkas Anda.

+
+
+

Apakah ini akan merusak server saya?

+

Tidak dengan sendirinya. Tidak ada yang diubah tanpa rencana yang telah Anda lihat, driver ditolak, dan rencana yang akan menjatuhkan sesuatu yang dibutuhkan mesin menyatakannya. Yang tidak bisa dilindunginya adalah menjalankan rencana yang tidak Anda baca. Daftar layanan yang dibutuhkan mesin adalah daftar awal berisi tujuh - dua bagian RPC dan peluncur DCOM, manajer akun, isolasi kunci, manajer sesi, dan plug and play - dan Remote Desktop tidak ada di dalamnya, jadi pada sesi jarak jauh, bacalah rencananya.

+
+
+

Apakah ini produk Microsoft?

+

Bukan. {{product}} adalah proyek sumber terbuka yang independen dan tidak berafiliasi dengan, didukung oleh, atau disponsori oleh Microsoft. Windows adalah merek dagang dari grup perusahaan Microsoft.

+
+
+

Apakah programnya dalam bahasa saya?

+

Tidak - program ini berbahasa Inggris, itulah sebabnya situs ini diterjemahkan. Jendela membaca berkas bahasa, languages\gui.<kode>.json, yang ditaruh di sebelah berkas eksekusi dan memilihnya menurut bahasa Windows, tanpa sakelar, sehingga terjemahan adalah kontribusi yang dapat ditambahkan tanpa membangun ulang program. Nama layanan dalam daftar adalah apa pun yang dikatakan Windows Anda - dalam bahasa yang diatur pada Windows Anda.

+
+
+

Mengapa jendelanya gelap padahal Windows saya terang?

+

Ia gelap dan tetap gelap apa pun pengaturan Windows, termasuk tema kontras tinggi. Itu diperiksa, bukan diasumsikan - ia mempertahankan warnanya sendiri dan tetap terbaca, dan tidak mengikuti pengaturan itu.

+
+
+
+
+ +
+
+

Menurut rancangan

+ +
+
+ +
+
+

Hal-hal yang dilakukan Windows dan dilaporkan alat ini apa adanya

+ +

Menemukan masalah, atau layanan yang dilaporkan alat ini berbeda dari sc.exe? Pelacak masalah terbuka, dan selisih antara keduanya adalah hal paling berguna yang bisa Anda tempelkan di sana.

+
+
diff --git a/site/pages/faq/ja.html b/site/pages/faq/ja.html new file mode 100644 index 0000000..13a7c14 --- /dev/null +++ b/site/pages/faq/ja.html @@ -0,0 +1,78 @@ + + + + + +
+
+ 質問 +

質問と、制限

+

何かを黙ってカバーしないツールは、できないことを伝えるツールより悪いものです。制限もこのページに載せていて、2 つに分けています。設計上あえて拒否していることと、Windows が行うことでこのツールがそのまま報告しているものです。

+
+
+ +
+
+
+
+

sc.exe、Get-Service、services.msc とどう違いますか。

+

sc query と Get-Service は、何が実行されているかを教えてくれます。services.msc は、それを 1 行ずつ変更できますが、質問することはできず、あとに記録も残りません。このツールは質問(start:auto !status:running)をし、行動の前にプランを見せ、1 週間後に差分を取れるスナップショットを保持します。サービスについて sc.exe と食い違う場合は、バグです。テストスイートの一部が両方を実行し、エントリごとに比較しています。詳しい比較はこちらです。

+
+
+

インターネットは必要ですか。

+

一切必要ありません。テレメトリ、更新チェック、クラッシュレポート、アカウント、何かのクライアントも、ありません。ネットワークに触れる可能性があるのは、--follow-network を指定したときだけです。その場合、他のマシンの共有上にある起動パスを調べたり、このマシンにまだない証明書を Windows に取得させたりすることがあります。既定ではオフで、ヘルプがその理由を説明しています。ウィンドウの GitHub ボタンと Donate ボタン、および Help メニューのページは、押したときにそれぞれ決まったアドレスを 1 つブラウザーに渡すだけで、接続するのはブラウザーです。

+
+
+

管理者権限は必要ですか。

+

見るだけなら不要です。変更するには必要です。権限がないと、マネージャーが表示するエントリは少なくなり、拒否されるものが増えます。どちらの側も、一覧がマシン全体であるかのように装わず、画面上部でそのことを伝えます。ウィンドウには Restart as admin があります。自分自身を昇格させることはありません。

+
+
+

無料ですか。仕事で使えますか。

+

どちらも「はい」です。GPL-3.0 で、条件はありません。取得したスナップショットは、あなたのファイルです。

+
+
+

サーバーを壊しませんか。

+

このツール自体が壊すことはありません。ご覧になったプランなしでは何も変更されず、ドライバーは拒否され、マシンに必要なものを停止してしまうプランはそう伝えます。防げないのは、読まなかったプランを実行してしまうことです。マシンに必要なサービスの一覧は 7 つの初期リストです。RPC の 2 つの半分と DCOM ランチャー、アカウント マネージャー、キー分離、セッション マネージャー、プラグ アンド プレイで、リモート デスクトップは含まれていません。そのため、リモートセッションではプランを読んでください。

+
+
+

Microsoft の製品ですか。

+

いいえ。{{product}} は独立したオープンソースプロジェクトで、Microsoft と提携しておらず、Microsoft の承認も後援も受けていません。Windows は Microsoft 企業グループの商標です。

+
+
+

プログラムはお使いの言語に対応していますか。

+

いいえ。プログラムは英語で表示されます。このサイトが翻訳されているのはそのためです。ウィンドウは、実行ファイルの隣に置かれた言語ファイル languages\gui.<code>.json を読み込み、Windows の言語で選択します。切り替えスイッチはありません。したがって翻訳は、プログラムを再ビルドせずに追加できる貢献です。一覧のサービス名は、お使いの Windows が付けている名前、つまり Windows が設定されている言語のものになります。

+
+
+

Windows がライトテーマなのに、ウィンドウが暗いのはなぜですか。

+

Windows の設定にかかわらず、ハイコントラストテーマも含めて、暗いままです。これは想定ではなく確認済みです。独自の色を保持して読みやすさを保ち、その設定には従いません。

+
+
+
+
+ +
+
+

設計上の制限

+ +
+
+ +
+
+

Windows が行うことで、このツールがそのまま報告するもの

+ +

問題を見つけた場合、またはこのツールが sc.exe と異なる報告をするサービスを見つけた場合は?課題トラッカーが開いています。2 つの差分を貼り付けていただくのが、最も役に立ちます。

+
+
diff --git a/site/pages/faq/ko.html b/site/pages/faq/ko.html new file mode 100644 index 0000000..725f91e --- /dev/null +++ b/site/pages/faq/ko.html @@ -0,0 +1,78 @@ + + + + + +
+
+ 질문 +

질문과 한계

+

무언가를 조용히 다루지 못하는 도구는, 못 하는 일을 말해 주는 도구보다 나쁩니다. 한계도 이 페이지에 두 부류로 적었습니다. 설계상 거부하는 일과, Windows가 하는 일 중 이 도구가 있는 그대로 보고하는 것입니다.

+
+
+ +
+
+
+
+

sc.exe, Get-Service, services.msc와 무엇이 다른가요?

+

sc query와 Get-Service는 무엇이 실행 중인지 알려 줍니다. services.msc는 그것을 한 행씩 바꾸게 해 주지만, 질문을 할 방법도 없고 나중에 남는 기록도 없습니다. 이 도구는 질문(start:auto !status:running)을 하고, 실행하기 전에 계획을 보여 주며, 일주일 뒤에 차이를 볼 수 있는 스냅샷을 보관합니다. 서비스에 대해 sc.exe와 다르게 나온다면 그것은 버그입니다. 테스트 모음의 일부가 둘을 모두 실행해 항목별로 비교합니다. 더 자세한 비교는 여기에 있습니다.

+
+
+

인터넷이 필요한가요?

+

전혀 필요하지 않습니다. 원격 측정도, 업데이트 확인도, 충돌 보고도, 계정도, 어떤 것의 클라이언트도 없습니다. 네트워크에 닿을 수 있는 유일한 경우는 --follow-network를 전달할 때입니다. 그러면 다른 컴퓨터의 공유에 있는 시작 경로를 살펴보거나, 이 컴퓨터에 아직 없는 인증서를 Windows가 가져오게 할 수 있습니다. 기본값은 꺼짐이며, 도움말이 그 이유를 설명합니다. 창의 GitHub 버튼과 Donate 버튼, 그리고 Help 메뉴의 페이지는 누를 때 각각 고정된 주소 하나를 브라우저에 넘길 뿐이며, 연결하는 것은 브라우저입니다.

+
+
+

관리자 권한이 필요한가요?

+

보기만 할 때는 필요 없습니다. 변경할 때는 필요합니다. 관리자 권한이 없으면 서비스 관리자가 보여 주는 항목이 적고 더 많이 거부하며, 두 쪽 모두 목록이 컴퓨터 전체인 것처럼 가장하지 않고 맨 위에서 그 사실을 알려 줍니다. 창은 Restart as admin을 제공합니다. 스스로 권한을 올리는 일은 절대 없습니다.

+
+
+

무료인가요? 직장에서 써도 되나요?

+

둘 다 그렇습니다. GPL-3.0이며 아무 조건도 없습니다. 만든 스냅샷은 사용자의 파일입니다.

+
+
+

서버를 망가뜨리지 않나요?

+

도구 자체가 망가뜨리지는 않습니다. 본 적 없는 계획 없이는 아무것도 바뀌지 않고, 드라이버는 거부되며, 컴퓨터에 필요한 것을 내릴 계획은 그 사실을 알려 줍니다. 막아 줄 수 없는 것은 읽지 않은 계획을 실행하는 것입니다. 컴퓨터에 필요한 서비스 목록은 일곱 개로 이루어진 시작용 목록입니다. RPC의 두 부분과 DCOM 실행기, 계정 관리자, 키 격리, 세션 관리자, 플러그 앤 플레이이며, 원격 데스크톱은 들어 있지 않으므로 원격 세션에서는 계획을 읽으세요.

+
+
+

Microsoft 제품인가요?

+

아니요. {{product}}는 독립적인 오픈 소스 프로젝트이며 Microsoft와 제휴하거나 Microsoft의 승인 또는 후원을 받지 않았습니다. Windows는 Microsoft 그룹 회사의 상표입니다.

+
+
+

프로그램이 내 언어로 되어 있나요?

+

아니요. 프로그램은 영어로 표시되며, 이 사이트를 번역한 이유도 그것입니다. 창은 실행 파일 옆에 놓인 언어 파일 languages\gui.<code>.json을 읽고, Windows의 언어에 따라 선택하며 스위치는 없으므로, 번역은 프로그램을 다시 빌드하지 않고 추가할 수 있는 기여입니다. 목록에 있는 서비스 이름은 사용 중인 Windows가 말하는 그대로이며, 곧 Windows가 설정된 언어입니다.

+
+
+

Windows는 밝은데 창은 왜 어두운가요?

+

창은 어둡고, Windows 설정이 무엇이든 고대비 테마를 포함해 계속 어둡습니다. 가정이 아니라 확인한 사실입니다. 자체 색을 유지하며 읽기 쉬운 상태를 유지하고, 그 설정을 따르지 않습니다.

+
+
+
+
+ +
+
+

설계상 한계

+ +
+
+ +
+
+

Windows가 하는 일 중 이 도구가 있는 그대로 보고하는 것

+ +

문제를 찾았거나, 이 도구가 sc.exe와 다르게 보고하는 서비스를 찾았나요? 이슈 트래커가 열려 있으며, 둘의 차이를 붙여 넣는 것이 가장 도움이 됩니다.

+
+
diff --git a/site/pages/faq/nl.html b/site/pages/faq/nl.html new file mode 100644 index 0000000..98a21e9 --- /dev/null +++ b/site/pages/faq/nl.html @@ -0,0 +1,78 @@ + + + + + +
+
+ Vragen +

Vragen, en de grenzen

+

Een hulpmiddel dat stilletjes iets niet dekt is erger dan een hulpmiddel dat zegt wat het niet kan. De grenzen staan ook op deze pagina, in twee groepen: wat het bewust weigert, en wat Windows doet en dit hulpmiddel meldt zoals het is.

+
+
+ +
+
+
+
+

Hoe verschilt dit van sc.exe, Get-Service of services.msc?

+

sc query en Get-Service vertellen u wat er draait. services.msc laat u het wijzigen, één rij tegelijk, zonder een manier om een vraag te stellen en zonder administratie achteraf. Dit hulpmiddel stelt de vraag (start:auto !status:running), toont u het plan voordat het handelt en bewaart een momentopname die u een week later kunt vergelijken. Waar het het oneens is met sc.exe over een service, is dat een bug - een deel van de testsuite draait beide en vergelijkt ze item voor item. De langere vergelijking staat hier.

+
+
+

Heeft het internet nodig?

+

Nooit. Geen telemetrie, geen controle op updates, geen crashrapportage, geen account, geen client van wat dan ook. De enige keer dat het überhaupt een netwerk kan raken is wanneer u --follow-network meegeeft: dan mag het een opstartpad op de share van een andere machine bekijken en Windows een certificaat laten ophalen dat deze machine nog niet heeft - standaard uit, en de help zegt waarom. De knoppen GitHub en Donate in het venster en de pagina in het menu Help geven elk één vast adres aan uw browser door wanneer u erop drukt, en uw browser is wat verbinding maakt.

+
+
+

Heeft het beheerdersrechten nodig?

+

Om te kijken niet. Om te wijzigen wel. Zonder die rechten toont de beheerder minder items en weigert hij er meer, en beide helften zeggen dat bovenaan in plaats van te doen alsof de lijst de hele machine is. Het venster biedt Restart as admin aan. Het verhoogt zichzelf nooit.

+
+
+

Is het gratis? Mag ik het op het werk gebruiken?

+

Ja op beide. GPL-3.0, zonder voorwaarden. Een momentopname die u maakt is uw bestand.

+
+
+

Gaat het mijn server kapotmaken?

+

Niet uit zichzelf. Er wordt niets gewijzigd zonder een plan dat u hebt gezien, stuurprogramma's worden geweigerd, en een plan dat iets zou neerhalen wat de machine nodig heeft, zegt dat. Waartegen het u niet kan beschermen is een plan uitvoeren dat u niet hebt gelezen. De lijst met services die de machine nodig heeft is een startlijst van zeven - de twee helften van RPC en de DCOM-starter, de accountbeheerder, sleutelisolatie, de sessiebeheerder en plug-and-play - en Extern bureaublad staat er niet op, dus lees het plan bij een sessie op afstand.

+
+
+

Is dit een Microsoft-product?

+

Nee. {{product}} is een onafhankelijk open source project en is niet gelieerd aan, goedgekeurd door of gesponsord door Microsoft. Windows is een handelsmerk van de Microsoft-groep van bedrijven.

+
+
+

Is het programma in mijn taal?

+

Nee - het programma spreekt Engels, en daarom is deze site vertaald. Het venster leest een taalbestand, languages\gui.<code>.json, dat naast het uitvoerbare bestand ligt, en kiest het op basis van de taal van Windows, zonder schakelaar. Een vertaling is dus een bijdrage die kan worden toegevoegd zonder het programma opnieuw te bouwen. De namen van de services in de lijst zijn wat uw Windows zegt dat ze zijn - in de taal waarin uw Windows is ingesteld.

+
+
+

Waarom is het venster donker als mijn Windows licht is?

+

Het is donker en blijft donker, wat Windows ook is ingesteld, inclusief een thema met hoog contrast. Dat is gecontroleerd en niet aangenomen - het houdt zijn eigen kleuren en blijft leesbaar, en volgt die instelling niet.

+
+
+
+
+ +
+
+

Uit ontwerp

+ +
+
+ +
+
+

Dingen die Windows doet en die dit hulpmiddel meldt zoals ze zijn

+ +

Een probleem gevonden, of een service die dit hulpmiddel anders meldt dan sc.exe? De issuetracker staat open, en een diff tussen de twee is het nuttigste wat u erin kunt plakken.

+
+
diff --git a/site/pages/faq/page.json b/site/pages/faq/page.json index 9b477d6..ac34ca2 100644 --- a/site/pages/faq/page.json +++ b/site/pages/faq/page.json @@ -12,6 +12,12 @@ "fr": "faq", "es": "preguntas-frecuentes", "it": "domande-frequenti", - "pt-br": "perguntas-frequentes" + "pt-br": "perguntas-frequentes", + "nl": "veelgestelde-vragen", + "cs": "caste-dotazy", + "ro": "intrebari-frecvente", + "tr": "sik-sorulan-sorular", + "id": "pertanyaan-umum", + "vi": "cau-hoi-thuong-gap" } } diff --git a/site/pages/faq/ro.html b/site/pages/faq/ro.html new file mode 100644 index 0000000..7d65bf7 --- /dev/null +++ b/site/pages/faq/ro.html @@ -0,0 +1,78 @@ + + + + + +
+
+ Întrebări +

Întrebări și limite

+

Un instrument care nu acoperă ceva în tăcere este mai rău decât unul care spune ce nu poate face. Limitele sunt și ele pe această pagină, în două grupuri: ce refuză prin construcție și ce face Windows și acest instrument raportează așa cum este.

+
+
+ +
+
+
+
+

Cu ce se deosebește de sc.exe, Get-Service sau services.msc?

+

sc query și Get-Service vă spun ce rulează. services.msc vă lasă să schimbați, un rând pe rând, fără o cale de a pune o întrebare și fără nicio evidență după aceea. Acest instrument pune întrebarea (start:auto !status:running), vă arată planul înainte să acționeze și păstrează un instantaneu pe care îl puteți compara peste o săptămână. Acolo unde nu este de acord cu sc.exe despre un serviciu, este o eroare - o parte din suita de teste le rulează pe amândouă și le compară intrare cu intrare. Comparația mai lungă este aici.

+
+
+

Are nevoie de internet?

+

Niciodată. Fără telemetrie, fără verificare de actualizări, fără raportare de erori, fără cont, fără client de orice fel. Singura dată când poate atinge o rețea este când dați --follow-network: atunci poate privi o cale de lansare pe un share al altei mașini și poate lăsa Windows să preia un certificat pe care această mașină nu îl are deja - dezactivat implicit, iar ajutorul spune de ce. Butoanele GitHub și Donate din fereastră și pagina din meniul Help predau fiecare browserului dumneavoastră o singură adresă fixă când le apăsați, iar browserul este cel care se conectează.

+
+
+

Are nevoie de drepturi de administrator?

+

Pentru a privi, nu. Pentru a schimba, da. Fără ele managerul arată mai puține intrări și refuză mai multe, iar ambele jumătăți spun asta sus, în loc să se prefacă că lista este toată mașina. Fereastra oferă Restart as admin. Nu își ridică niciodată singură drepturile.

+
+
+

Este gratuit? Îl pot folosi la serviciu?

+

Da la amândouă. GPL-3.0, fără condiții ascunse. Un instantaneu pe care îl faceți este fișierul dumneavoastră.

+
+
+

Îmi va strica serverul?

+

Nu de la sine. Nimic nu se schimbă fără un plan pe care l-ați văzut, driverele sunt refuzate, iar un plan care ar doborî ceva de care mașina are nevoie spune asta. Ceea ce nu vă poate proteja este executarea unui plan pe care nu l-ați citit. Lista serviciilor de care mașina are nevoie este o listă de pornire de șapte - cele două jumătăți ale RPC și lansatorul DCOM, managerul de conturi, izolarea cheilor, managerul de sesiuni și plug and play - iar Remote Desktop nu este pe ea, deci într-o sesiune la distanță citiți planul.

+
+
+

Este un produs Microsoft?

+

Nu. {{product}} este un proiect open source independent și nu este afiliat cu Microsoft, nici aprobat sau sponsorizat de Microsoft. Windows este o marcă comercială a grupului de companii Microsoft.

+
+
+

Este programul în limba mea?

+

Nu - programul vorbește engleza, motiv pentru care acest site este tradus. Fereastra citește un fișier de limbă, languages\gui.<cod>.json, așezat lângă executabil și îl alege după limba Windows, fără comutator, deci o traducere este o contribuție care se poate adăuga fără recompilarea programului. Numele serviciilor din listă sunt ceea ce spune Windows-ul dumneavoastră că sunt - în limba în care este configurat Windows-ul dumneavoastră.

+
+
+

De ce este fereastra întunecată când Windows-ul meu este luminos?

+

Este întunecată și rămâne întunecată indiferent cum este setat Windows, inclusiv o temă cu contrast ridicat. Asta este verificat, nu presupus - își păstrează culorile proprii și rămâne lizibilă și nu urmează acea setare.

+
+
+
+
+ +
+
+

Prin construcție

+ +
+
+ +
+
+

Lucruri pe care le face Windows și acest instrument le raportează așa cum sunt

+ +

Ați găsit o problemă sau un serviciu pe care acest instrument îl raportează altfel decât sc.exe? Urmăritorul de probleme este deschis, iar o comparație între cele două este cel mai util lucru pe care îl puteți lipi acolo.

+
+
diff --git a/site/pages/faq/ru.html b/site/pages/faq/ru.html new file mode 100644 index 0000000..5534946 --- /dev/null +++ b/site/pages/faq/ru.html @@ -0,0 +1,78 @@ + + + + + +
+
+ Вопросы +

Вопросы и ограничения

+

Инструмент, который молча чего-то не охватывает, хуже того, который говорит, чего он не умеет. Ограничения тоже есть на этой странице, в двух группах: от чего он отказывается по замыслу и что делает Windows, а этот инструмент сообщает как есть.

+
+
+ +
+
+
+
+

Чем это отличается от sc.exe, Get-Service или services.msc?

+

sc query и Get-Service говорят, что работает. services.msc позволяет это менять, по одной строке, без возможности задать вопрос и без записи после. Этот инструмент задаёт вопрос (start:auto !status:running), показывает план до действия и хранит снимок, который можно сравнить неделю спустя. Где он расходится с sc.exe в отношении службы, это ошибка: часть набора тестов запускает оба и сравнивает их запись за записью. Более подробное сравнение - здесь.

+
+
+

Нужен ли интернет?

+

Никогда. Ни телеметрии, ни проверки обновлений, ни отчётов о сбоях, ни учётной записи, ни клиента чего бы то ни было. Единственный случай, когда он вообще может коснуться сети, - когда вы передаёте --follow-network: тогда он может заглянуть в путь запуска на общем ресурсе другой машины и позволить Windows получить сертификат, которого на этой машине ещё нет - по умолчанию выключено, и справка объясняет почему. Кнопки GitHub и Donate в окне и страница в меню Help при нажатии передают вашему браузеру один фиксированный адрес, а соединяется ваш браузер.

+
+
+

Нужны ли права администратора?

+

Чтобы смотреть - нет. Чтобы менять - да. Без них диспетчер показывает меньше записей и больше отказывает, и обе половины говорят об этом вверху, а не делают вид, что список - это вся машина. Окно предлагает Restart as admin. Само права оно никогда не повышает.

+
+
+

Он бесплатный? Можно ли пользоваться им на работе?

+

Да на оба вопроса. GPL-3.0, без условий. Снимок, который вы делаете, - ваш файл.

+
+
+

Не сломает ли он мой сервер?

+

Сам по себе нет. Ничего не меняется без плана, который вы видели, драйверы отклоняются, а план, который обрушил бы то, что нужно машине, говорит об этом. От чего он защитить не может - это от выполнения плана, который вы не прочитали. Список служб, нужных машине, - это стартовый список из семи: две половины RPC и средство запуска DCOM, диспетчер учётных записей, изоляция ключей, диспетчер сеансов и Plug and Play - и Удалённого рабочего стола в нём нет, поэтому в удалённом сеансе читайте план.

+
+
+

Это продукт Microsoft?

+

Нет. {{product}} - независимый проект с открытым кодом, не связанный с Microsoft, не одобренный и не спонсируемый Microsoft. Windows - товарный знак группы компаний Microsoft.

+
+
+

Есть ли программа на моём языке?

+

Нет: программа говорит по-английски, поэтому этот сайт переведён. Окно читает файл языка, languages\gui.<код>.json, лежащий рядом с исполняемым файлом, и выбирает его по языку Windows, без переключателя, так что перевод - это вклад, который можно добавить без пересборки программы. Имена служб в списке - такие, какими их называет ваша Windows, на языке, на котором она настроена.

+
+
+

Почему окно тёмное, когда моя Windows светлая?

+

Оно тёмное и остаётся тёмным, как бы ни была настроена Windows, включая тему с высокой контрастностью. Это проверено, а не предположено: оно хранит свои цвета и остаётся читаемым и не следует этой настройке.

+
+
+
+
+ +
+
+

По замыслу

+ +
+
+ +
+
+

То, что делает Windows, а этот инструмент сообщает как есть

+ +

Нашли проблему или службу, которую этот инструмент сообщает не так, как sc.exe? Трекер задач открыт, а разница между ними - самое полезное, что можно туда вставить.

+
+
diff --git a/site/pages/faq/tr.html b/site/pages/faq/tr.html new file mode 100644 index 0000000..15b6bae --- /dev/null +++ b/site/pages/faq/tr.html @@ -0,0 +1,78 @@ + + + + + +
+
+ Sorular +

Sorular ve sınırlar

+

Sessizce bir şeyi kapsamayan bir araç, neyi yapamadığını söyleyen bir araçtan daha kötüdür. Sınırlar da bu sayfadadır, iki grupta: tasarım gereği neyi reddettiği ve Windows'un yaptığı, bu aracın olduğu gibi bildirdiği şeyler.

+
+
+ +
+
+
+
+

Bu, sc.exe, Get-Service veya services.msc'den nasıl farklı?

+

sc query ve Get-Service neyin çalıştığını söyler. services.msc onu, soru sorma yolu olmadan ve sonrasında bir kayıt tutmadan, her seferinde tek satır değiştirmenize izin verir. Bu araç soruyu sorar (start:auto !status:running), harekete geçmeden önce planı gösterir ve bir hafta sonra karşılaştırabileceğiniz bir anlık görüntü tutar. Bir hizmet konusunda sc.exe ile anlaşmazlığa düştüğü yerde bu bir hatadır - test paketinin bir bölümü ikisini de çalıştırır ve öğe öğe karşılaştırır. Daha uzun karşılaştırma burada.

+
+
+

İnternet gerekir mi?

+

Asla. Telemetri yok, güncelleme denetimi yok, çökme raporlama yok, hesap yok, hiçbir şeyin istemcisi yok. Bir ağa dokunabildiği tek an --follow-network verdiğiniz andır: o zaman başka bir makinenin paylaşımındaki bir başlatma yoluna bakabilir ve bu makinede henüz olmayan bir sertifikayı Windows'un getirmesine izin verebilir - varsayılan olarak kapalıdır ve yardım nedenini söyler. Penceredeki GitHub ve Donate düğmeleri ile Help menüsündeki sayfa, basıldığında tarayıcınıza sabit birer adres verir ve bağlanan sizin tarayıcınızdır.

+
+
+

Yönetici hakları gerekir mi?

+

Bakmak için hayır. Değiştirmek için evet. Bunlar olmadan yönetici daha az öğe gösterir ve daha fazlasını reddeder; iki yarı da listenin tüm makine olduğunu iddia etmek yerine bunu en üstte söyler. Pencere Restart as admin sunar. Kendi haklarını asla kendisi yükseltmez.

+
+
+

Ücretsiz mi? İşte kullanabilir miyim?

+

İkisine de evet. GPL-3.0, ek koşul yok. Aldığınız bir anlık görüntü sizin dosyanızdır.

+
+
+

Sunucumu bozar mı?

+

Kendi kendine hayır. Gördüğünüz bir plan olmadan hiçbir şey değiştirilmez, sürücüler reddedilir ve makinenin ihtiyaç duyduğu bir şeyi indirecek bir plan bunu söyler. Sizi koruyamayacağı şey, okumadığınız bir planı yürütmenizdir. Makinenin ihtiyaç duyduğu hizmetlerin listesi yedilik bir başlangıç listesidir - RPC'nin iki yarısı ve DCOM başlatıcısı, hesap yöneticisi, anahtar yalıtımı, oturum yöneticisi ve tak-çalıştır - ve Uzak Masaüstü listede yok, dolayısıyla uzak bir oturumda planı okuyun.

+
+
+

Bu bir Microsoft ürünü mü?

+

Hayır. {{product}} bağımsız bir açık kaynak projesidir; Microsoft ile bağlantılı değildir, Microsoft tarafından onaylanmamış ya da desteklenmemiştir. Windows, Microsoft şirketler grubunun bir ticari markasıdır.

+
+
+

Program benim dilimde mi?

+

Hayır - program İngilizce konuşur ve bu site bu yüzden çevrilmiştir. Pencere, yürütülebilir dosyanın yanına konan bir dil dosyasını, languages\gui.<kod>.json, okur ve onu Windows'un diline göre, anahtarsız seçer; yani çeviri, programı yeniden derlemeden eklenebilecek bir katkıdır. Listedeki hizmetlerin adları, Windows'unuzun söylediği gibidir - Windows'unuzun kurulu olduğu dilde.

+
+
+

Windows'um açık renkliyken pencere neden koyu?

+

Koyudur ve Windows nasıl ayarlanmış olursa olsun, yüksek karşıtlık teması dahil, koyu kalır. Bu varsayılmadı, denetlendi - kendi renklerini korur ve okunaklı kalır, bu ayarı izlemez.

+
+
+
+
+ +
+
+

Tasarım gereği

+ +
+
+ +
+
+

Windows'un yaptığı ve bu aracın olduğu gibi bildirdiği şeyler

+ +

Bir sorun mu buldunuz, ya da bu aracın sc.exe'den farklı bildirdiği bir hizmet mi var? Sorun izleyici açıktır ve ikisi arasındaki bir fark, oraya yapıştırabileceğiniz en yararlı şeydir.

+
+
diff --git a/site/pages/faq/uk.html b/site/pages/faq/uk.html new file mode 100644 index 0000000..e3a0ec3 --- /dev/null +++ b/site/pages/faq/uk.html @@ -0,0 +1,78 @@ + + + + + +
+
+ Запитання +

Запитання й обмеження

+

Інструмент, який мовчки щось не охоплює, гірший за той, що каже, чого не вміє. Обмеження теж на цій сторінці, у двох групах: від чого він відмовляється за задумом і що робить Windows, про що цей інструмент повідомляє як є.

+
+
+ +
+
+
+
+

Чим це відрізняється від sc.exe, Get-Service чи services.msc?

+

sc query і Get-Service кажуть, що працює. services.msc дає це змінити, по одному рядку, без можливості поставити запитання і без жодного запису потім. Цей інструмент ставить запитання (start:auto !status:running), показує план, перш ніж діяти, і зберігає знімок, який можна порівняти через тиждень. Де він розходиться з sc.exe щодо служби, це помилка - частина набору тестів запускає обидва й порівнює їх запис за записом. Довше порівняння - тут.

+
+
+

Чи потрібен йому інтернет?

+

Ніколи. Ні телеметрії, ні перевірки оновлень, ні звітів про збої, ні облікового запису, ні клієнта чогось. Єдиний випадок, коли він узагалі може торкнутися мережі, - коли ви передаєте --follow-network: тоді він може подивитися шлях запуску на спільному ресурсі іншої машини й дозволити Windows отримати сертифікат, якого ця машина ще не має, - за замовчуванням вимкнено, і довідка каже чому. Кнопки GitHub і Donate у вікні та сторінка в його меню Help кожна передає браузеру одну фіксовану адресу, коли ви їх натискаєте, і з'єднується саме ваш браузер.

+
+
+

Чи потрібні йому права адміністратора?

+

Щоб дивитися - ні. Щоб змінювати - так. Без них диспетчер показує менше записів і відмовляє частіше, і обидві половини кажуть про це нагорі, а не вдають, що список - це вся машина. Вікно пропонує Restart as admin. Само себе воно ніколи не підвищує.

+
+
+

Він безкоштовний? Чи можна використовувати його на роботі?

+

Так на обидва. GPL-3.0, без жодних умов. Знімок, який ви робите, - це ваш файл.

+
+
+

Чи не зламає він мій сервер?

+

Сам по собі ні. Нічого не змінюється без плану, який ви бачили, драйвери відхиляються, а план, що обвалив би потрібне машині, говорить про це. Від чого він захистити не може - від виконання плану, якого ви не прочитали. Список служб, потрібних машині, - стартовий, із семи: дві половини RPC і засіб запуску DCOM, диспетчер облікових записів, ізоляція ключів, диспетчер сеансів і Plug and Play - а Віддаленого робочого стола в ньому немає, тож у віддаленому сеансі читайте план.

+
+
+

Це продукт Microsoft?

+

Ні. {{product}} - незалежний проєкт із відкритим кодом, не афілійований із Microsoft, не схвалений і не спонсорований Microsoft. Windows - товарний знак групи компаній Microsoft.

+
+
+

Чи є програма моєю мовою?

+

Ні - програма говорить англійською, тому цей сайт перекладено. Вікно читає файл мови, languages\gui.<code>.json, що лежить поруч із виконуваним файлом, і вибирає його за мовою Windows, без перемикача, тож переклад - це внесок, який можна додати без перебудови програми. Назви служб у списку - такі, якими їх називає ваша Windows, тобто мовою, у якій налаштовано вашу Windows.

+
+
+

Чому вікно темне, коли моя Windows світла?

+

Воно темне й лишається темним, що б не було встановлено у Windows, зокрема й тема високої контрастності. Це перевірено, а не припущено: воно зберігає власні кольори й залишається читабельним, і цього налаштування не наслідує.

+
+
+
+
+ +
+
+

За задумом

+ +
+
+ +
+
+

Що робить Windows, про що цей інструмент повідомляє як є

+ +

Знайшли проблему або службу, яку цей інструмент описує інакше, ніж sc.exe? Трекер задач відкритий, а різниця між ними - найкорисніше, що можна туди вставити.

+
+
diff --git a/site/pages/faq/vi.html b/site/pages/faq/vi.html new file mode 100644 index 0000000..471b27d --- /dev/null +++ b/site/pages/faq/vi.html @@ -0,0 +1,78 @@ + + + + + +
+
+ Câu hỏi +

Câu hỏi, và các giới hạn

+

Một công cụ lặng lẽ không bao quát điều gì đó còn tệ hơn công cụ nói rõ nó không làm được gì. Các giới hạn cũng nằm trên trang này, trong hai nhóm: những gì nó từ chối theo thiết kế, và những gì Windows làm mà công cụ này báo cáo đúng như vậy.

+
+
+ +
+
+
+
+

Nó khác gì sc.exe, Get-Service hay services.msc?

+

sc query và Get-Service cho bạn biết điều gì đang chạy. services.msc cho phép bạn thay đổi nó, từng dòng một, không có cách đặt câu hỏi và không có bản ghi nào sau đó. Công cụ này đặt câu hỏi (start:auto !status:running), cho bạn xem kế hoạch trước khi hành động, và giữ một bản chụp mà bạn có thể so sánh một tuần sau. Chỗ nào nó bất đồng với sc.exe về một dịch vụ, đó là một lỗi - một phần bộ kiểm thử chạy cả hai và so sánh từng mục. Bản so sánh dài hơn ở đây.

+
+
+

Nó có cần internet không?

+

Không bao giờ. Không có đo từ xa, không kiểm tra cập nhật, không báo cáo sự cố, không tài khoản, không máy khách của bất cứ thứ gì. Lần duy nhất nó có thể chạm vào mạng là khi bạn truyền --follow-network: khi đó nó có thể nhìn vào đường dẫn khởi chạy trên thư mục chia sẻ của máy khác và để Windows lấy một chứng chỉ mà máy này chưa có - mặc định tắt, và phần trợ giúp nói lý do. Các nút GitHub và Donate trong cửa sổ và trang trong menu Help mỗi cái chuyển một địa chỉ cố định cho trình duyệt của bạn khi bạn nhấn, và trình duyệt của bạn mới là thứ kết nối.

+
+
+

Nó có cần quyền quản trị không?

+

Để xem thì không. Để thay đổi thì có. Nếu không có, trình quản lý hiển thị ít mục hơn và từ chối nhiều hơn, và cả hai nửa đều nói điều đó ở trên cùng thay vì giả vờ rằng danh sách là cả máy. Cửa sổ đề nghị Restart as admin. Nó không bao giờ tự nâng quyền.

+
+
+

Nó miễn phí không? Tôi có dùng ở chỗ làm được không?

+

Có cho cả hai. GPL-3.0, không điều kiện kèm theo. Một bản chụp bạn tạo ra là tệp của bạn.

+
+
+

Nó có làm hỏng máy chủ của tôi không?

+

Không tự nó. Không có gì bị thay đổi mà không có kế hoạch bạn đã xem, trình điều khiển bị từ chối, và một kế hoạch sẽ hạ gục thứ mà máy cần sẽ nói điều đó. Điều nó không thể bảo vệ bạn là việc thực thi một kế hoạch mà bạn không đọc. Danh sách các dịch vụ mà máy cần là một danh sách khởi đầu gồm bảy - hai nửa của RPC và trình khởi chạy DCOM, trình quản lý tài khoản, cô lập khóa, trình quản lý phiên và plug and play - và Remote Desktop không có trong đó, nên khi qua một phiên từ xa, hãy đọc kế hoạch.

+
+
+

Đây có phải sản phẩm của Microsoft không?

+

Không. {{product}} là một dự án mã nguồn mở độc lập và không liên kết với, không được chứng thực hay tài trợ bởi Microsoft. Windows là nhãn hiệu của nhóm công ty Microsoft.

+
+
+

Chương trình có bằng ngôn ngữ của tôi không?

+

Không - chương trình nói tiếng Anh, đó là lý do trang web này được dịch. Cửa sổ đọc một tệp ngôn ngữ, languages\gui.<mã>.json, đặt bên cạnh tệp thực thi và chọn nó theo ngôn ngữ của Windows, không cần công tắc, nên một bản dịch là một đóng góp có thể thêm vào mà không cần biên dịch lại chương trình. Tên các dịch vụ trong danh sách là bất cứ thứ gì Windows của bạn nói - bằng ngôn ngữ mà Windows của bạn được thiết lập.

+
+
+

Vì sao cửa sổ tối khi Windows của tôi sáng?

+

Nó tối và vẫn tối dù Windows được đặt thế nào, kể cả giao diện tương phản cao. Điều đó đã được kiểm chứng chứ không phải giả định - nó giữ màu riêng và vẫn đọc được, và không theo thiết lập đó.

+
+
+
+
+ +
+
+

Theo thiết kế

+ +
+
+ +
+
+

Những điều Windows làm mà công cụ này báo cáo đúng như vậy

+ +

Tìm thấy sự cố, hoặc một dịch vụ mà công cụ này báo khác với sc.exe? Trình theo dõi sự cố đang mở, và sự khác biệt giữa hai bên là thứ hữu ích nhất bạn có thể dán vào đó.

+
+
diff --git a/site/pages/faq/zh-hans.html b/site/pages/faq/zh-hans.html new file mode 100644 index 0000000..6fed1ff --- /dev/null +++ b/site/pages/faq/zh-hans.html @@ -0,0 +1,78 @@ + + + + + +
+
+ 问题 +

问题与局限

+

悄悄漏掉某些内容的工具,比明说自己做不到什么的工具更糟。局限也写在这个页面上,分为两类:它在设计上拒绝做的事,以及 Windows 的行为里这个工具如实报告的部分。

+
+
+ +
+
+
+
+

它与 sc.exe、Get-Service 或 services.msc 有什么不同?

+

sc query 和 Get-Service 告诉你什么在运行。services.msc 让你一行一行地更改它,既无法提问,事后也没有记录。这个工具会提问(start:auto !status:running),在执行前向你展示计划,并保留一个可以在一周后做差异对比的快照。在某个服务上它与 sc.exe 不一致,那就是一个缺陷:测试套件的一部分会同时运行两者,并逐条目地比较。更详细的对比在这里。

+
+
+

需要联网吗?

+

从不需要。没有遥测,没有更新检查,没有崩溃报告,没有账户,也没有任何客户端。它唯一可能接触网络的情况,是你传入 --follow-network 时:这时它可能会查看位于其他计算机共享上的启动路径,并让 Windows 获取这台计算机尚未持有的证书。默认关闭,帮助中说明了原因。窗口里的 GitHub 和 Donate 按钮,以及 Help 菜单里的页面,在你按下时各自只会把一个固定的地址交给你的浏览器,而真正建立连接的是你的浏览器。

+
+
+

需要管理员权限吗?

+

查看不需要,更改需要。没有管理员权限时,服务管理器显示的条目更少,拒绝的操作更多,两部分都会在顶部说明这一点,而不是假装列表就是整台计算机。窗口会提供 Restart as admin。它从不自行提升权限。

+
+
+

免费吗?可以在工作中使用吗?

+

两者都是。GPL-3.0,没有任何附加条件。你生成的快照是你自己的文件。

+
+
+

会弄坏我的服务器吗?

+

它自己不会。没有你看过的计划,就不会更改任何内容,驱动程序会被拒绝,而会关掉计算机必需之物的计划会在警告中说明。它无法保护你的,是执行一份你没有读过的计划。计算机必需的服务清单是一份七项的入门清单:RPC 的两个部分和 DCOM 启动器、账户管理器、密钥隔离、会话管理器以及即插即用,其中没有远程桌面,所以通过远程会话操作时,请阅读计划。

+
+
+

这是 Microsoft 的产品吗?

+

不是。{{product}} 是一个独立的开源项目,与 Microsoft 没有关联,也未获得 Microsoft 的认可或赞助。Windows 是 Microsoft 公司集团的商标。

+
+
+

程序有我的语言版本吗?

+

没有,程序使用英文界面,这也是这个网站被翻译的原因。窗口会读取放在可执行文件旁边的语言文件 languages\gui.<code>.json,并根据 Windows 的语言选择,没有切换开关,所以翻译是一项无需重新生成程序就能加入的贡献。列表中的服务名称是你的 Windows 所写的样子,也就是你的 Windows 所设置的语言。

+
+
+

我的 Windows 是浅色的,窗口为什么是深色的?

+

它是深色的,不论 Windows 如何设置,包括高对比度主题,它都保持深色。这是经过检查而不是想当然:它保留自己的颜色并保持可读,而不会跟随该设置。

+
+
+
+
+ +
+
+

设计使然

+ +
+
+ +
+
+

Windows 的行为,这个工具如实报告

+ +

发现了问题,或者发现了这个工具与 sc.exe 报告不同的服务?问题跟踪器是开放的,把两者的差异贴进去是最有用的信息。

+
+
diff --git a/site/pages/faq/zh-hant.html b/site/pages/faq/zh-hant.html new file mode 100644 index 0000000..793c87e --- /dev/null +++ b/site/pages/faq/zh-hant.html @@ -0,0 +1,78 @@ + + + + + +
+
+ 問題 +

問題與限制

+

悄悄漏掉某些內容的工具,比明說自己做不到什麼的工具更糟。限制也寫在這個頁面上,分為兩類:它在設計上拒絕做的事,以及 Windows 的行為裡這個工具如實回報的部分。

+
+
+ +
+
+
+
+

它與 sc.exe、Get-Service 或 services.msc 有什麼不同?

+

sc query 和 Get-Service 告訴你什麼在執行。services.msc 讓你一列一列地變更它,既無法提問,事後也沒有記錄。這個工具會提問(start:auto !status:running),在執行前向你展示計畫,並保留一個可以在一週後做差異比較的快照。在某個服務上它與 sc.exe 不一致,那就是一個缺陷:測試套件的一部分會同時執行兩者,並逐項目地比較。更詳細的比較在這裡。

+
+
+

需要連上網路嗎?

+

從不需要。沒有遙測,沒有更新檢查,沒有當機回報,沒有帳戶,也沒有任何用戶端。它唯一可能接觸網路的情況,是你傳入 --follow-network 時:這時它可能會查看位於其他電腦共用資料夾上的啟動路徑,並讓 Windows 取得這台電腦尚未持有的憑證。預設關閉,說明中解釋了原因。視窗裡的 GitHub 和 Donate 按鈕,以及 Help 功能表裡的頁面,在你按下時各自只會把一個固定的位址交給你的瀏覽器,而真正建立連線的是你的瀏覽器。

+
+
+

需要系統管理員權限嗎?

+

檢視不需要,變更需要。沒有系統管理員權限時,服務管理員顯示的項目更少,拒絕的動作更多,兩者都會在頂部說明這一點,而不是假裝清單就是整台電腦。視窗會提供 Restart as admin。它從不自行提升權限。

+
+
+

免費嗎?可以在工作中使用嗎?

+

兩者都是。GPL-3.0,沒有任何附加條件。你產生的快照是你自己的檔案。

+
+
+

會弄壞我的伺服器嗎?

+

它自己不會。沒有你看過的計畫,就不會變更任何內容,驅動程式會被拒絕,而會關掉電腦必需之物的計畫會在警告中說明。它無法保護你的,是執行一份你沒有讀過的計畫。電腦必需的服務清單是一份七項的入門清單:RPC 的兩個部分和 DCOM 啟動器、帳戶管理員、金鑰隔離、工作階段管理員以及隨插即用,其中沒有遠端桌面,所以透過遠端工作階段操作時,請閱讀計畫。

+
+
+

這是 Microsoft 的產品嗎?

+

不是。{{product}} 是一個獨立的開放原始碼專案,與 Microsoft 沒有關聯,也未獲得 Microsoft 的認可或贊助。Windows 是 Microsoft 公司集團的商標。

+
+
+

程式有我的語言版本嗎?

+

沒有,程式使用英文介面,這也是這個網站被翻譯的原因。視窗會讀取放在可執行檔旁邊的語言檔案 languages\gui.<code>.json,並依 Windows 的語言選擇,沒有切換開關,所以翻譯是一項無需重新建置程式就能加入的貢獻。清單中的服務名稱是你的 Windows 所寫的樣子,也就是你的 Windows 所設定的語言。

+
+
+

我的 Windows 是淺色的,視窗為什麼是深色的?

+

它是深色的,不論 Windows 如何設定,包括高對比佈景主題,它都保持深色。這是經過檢查而不是想當然:它保留自己的顏色並保持可讀,而不會跟隨該設定。

+
+
+
+
+ +
+
+

設計如此

+ +
+
+ +
+
+

Windows 的行為,這個工具如實回報

+ +

發現了問題,或者發現了這個工具與 sc.exe 回報不同的服務?問題追蹤器是開放的,把兩者的差異貼進去是最有用的資訊。

+
+
diff --git a/site/pages/home/cs.html b/site/pages/home/cs.html new file mode 100644 index 0000000..c818a84 --- /dev/null +++ b/site/pages/home/cs.html @@ -0,0 +1,198 @@ + + + + + + + +
+
+
+

Hledejte ve službách Windows, prohlížejte si každou změnu předem a zjistěte, co se odchýlilo od včerejška

+

{{product}} je services.msc postavený znovu pro lidi, kteří spravují stroje s Windows - okno a příkazový řádek nad jedním jádrem. Položte stroji otázku místo listování osmi sty řádky. Zjistěte, co změna provede, dřív, než na cokoli kliknete. A to, co services.msc nikdy neměl: zmrazte každou službu do souboru a o týden později se zeptejte, co se změnilo.

+ +
    +
  • Volný a bezplatný, GPL-3.0
  • +
  • Jediný soubor, nebo instalační program
  • +
  • K prohlížení nejsou potřeba práva správce
  • +
  • Nikdy nekomunikuje s internetem
  • +
+
+
+ Okno s pěti vybranými položkami a plánem jejich spuštění zobrazeným nad seznamem: pět kroků, poznámka, že dvě z nich už v tomto stavu jsou, řádek bws start pro každou položku a tlačítko Start 5 entries. +
Vybrané položky, plán zobrazený dřív, než se cokoli stane, a řádek bws, který žádá přesně totéž. Program mluví anglicky - okno čte jazykový soubor uložený vedle sebe, takže překlad je možný bez nového sestavení.
+
+
+
+ + +
+
+ Půl minuty s ním +

Jak to vypadá při použití

+

Skutečná relace na Windows nainstalovaných v polštině - zobrazované názvy pocházejí z Windows, takže jsou v jeho jazyce. Samotné okno mluví anglicky.

+
+ Čtyři vybrané položky a plán jejich spuštění, vynucený restart služby Local Session Manager, jehož plán varuje, že stroj bez ní nefunguje, a žádá o její název, než tlačítko zabere, otázky k zahájení pod prázdným vyhledávacím polem a služba Print Spooler nalezená zadáním části názvu a spuštěná. +
Čtyři vybrané položky a plán jejich spuštění, vynucený restart, který žádá název služby, kterou stroj potřebuje, otázky pod prázdným vyhledávacím polem a služba Print Spooler nalezená psaním a spuštěná.
+
+
+
+ Úvodní obrazovka: tři karty s čísly o tomto stroji - běžící služby, služby nastavené na automatické spuštění, které nenaběhly, a služby nastavené na automatické spuštění, jejichž soubor chybí - a tlačítko Show the list. +
Otevře se několika čísly o tomto stroji. Každé je otázka - klikněte na ně a otázka se vloží do vyhledávacího pole.
+
+
+ Seznam služeb se třemi seznamy nad vyhledávacím polem, prázdné vyhledávací pole, filtrační tlačítka rozbalená v řádcích pro stav, typ spouštění, podpis, nesrovnalosti a triggery a pod nimi seznam. +
Filtrační tlačítka píší do vyhledávacího pole, takže to, na co jste klikli, je dotaz, který můžete číst a upravovat.
+
+
+
+
+ +
+
+ Proč to existuje +

services.msc se od Windows 2000 téměř nezměnil

+

Správci v něm tráví hodiny týdně a narážejí na stejné zdi.

+
+
    +
  • Žádné vyhledávání. Jediná navigace je skok na první písmeno zobrazovaného názvu.
  • +
  • Žádné filtrování. Nelze se zeptat ukaž mi, co je nastaveno na automatické spuštění a neběží.
  • +
  • Jeden řádek najednou. Restart dvanácti služeb je dvanáct kliknutí pravým tlačítkem a dvanáct čekání.
  • +
  • "Stopping..." donekonečna, bez cesty ven kromě Správce úloh a hádání procesu.
  • +
  • Žádná historie. Nikdo neví, kdo nastavil typ spouštění na Zakázáno, ani kdy.
  • +
  • Skrytá data. Proces, triggery, privilegia, popisovač zabezpečení, kdo podepsal spustitelný soubor - na všechno je potřeba sc.exe zpaměti, nebo registr.
  • +
  • Žádná parita na příkazovém řádku. sc.exe má syntaxi z devadesátých let a Get-Service, který je součástí Windows, ve Windows PowerShellu 5.1, neukazuje, pod jakým účtem služba běží, natož její popis. PowerShell 7 ukazuje obojí a instaluje se zvlášť.
  • +
+
+

Ostatní nástroje vždy řeší jen část

+

Process Hacker a System Informer ukazují bohatý seznam a umějí vynutit ukončení, ale nemají audit ani příkazový řádek. sc.exe a PsService umějí všechno a nic vám neřeknou. Rutiny *-Service v PowerShellu se dají skriptovat a jsou povrchní.

+

Nikdo nespojuje prohledávatelný seznam, náhled před každou změnou a záznam toho, co se v čase změnilo - a ten záznam je důvod, proč si tento nástroj nechat na stroji i po prvním odpoledni.

+ Úplné srovnání +
+
+
+
+ +
+
+ Co dělá +

Okno a příkazový řádek nad jedním jádrem

+
+

Ptejte se místo listování

start:auto !status:running znamená co by mělo běžet a neběží. Jeden jazyk, ve vyhledávacím poli i v bws list --query, s poli nabízenými při psaní.

+

Ukázat plán, než se cokoli stane

Každé zastavení, spuštění, restart i změna typu spouštění se předem zobrazí se službami, které stáhne s sebou, a náhled je to, co se spustí.

+

Říct, co se odchýlilo a kdo to změnil

bws snapshot create zmrazí stroj do souboru a bws snapshot diff řekne, co se od té doby změnilo, konfiguraci odděleně od toho, co se jen spustilo nebo zastavilo. bws history řekne ze systémového protokolu, kdo změnil typ spouštění a kdo nainstaloval službu. Okno dělá všechny tři věci v části Audit....

+

Opravit běžný problém jedním kliknutím

Karta Tools a bws tool fix restartují službu za tiskárnou, která netiskne, za zmizelým zvukem nebo za zaseklým vyhledáváním, spolu s tím, co na ní závisí, stejným plánem jako všechno ostatní.

+

Zastavit službu, která se nechce zastavit

Nejdřív se zeptá zdvořile a proces ukončí, jen když to selže, a pojmenuje každou další službu, která v něm žije.

+

Ukázat, co services.msc skrývá

Kdo podepsal spustitelný soubor a jestli mu Windows důvěřuje, triggery, privilegia, popisovač zabezpečení, proces a jeho paměť. Jako sloupce i jako věci, podle kterých se dá hledat.

+

Říct, když něco nešlo přečíst

Pole, které nešlo přečíst, se ohlásí jako nepřečtené, nikdy se neukáže jako prázdné. Snímek pořízený bez práv správce to říká uvnitř souboru.

+

Zapadnout do skriptů

--json u každého příkazu, návratový kód pro každý konec a 5, když porovnání najde drift.

+

Běžet z jednoho souboru, offline

Rozbalit a spustit, nebo nainstalovat pro celý stroj. Žádné .NET k instalaci a nikdy nekomunikuje s internetem. Čtení nepotřebuje práva správce. GPL-3.0.

+
+
+
+ +
+
+ Část, kterou services.msc nikdy neměl +

Co se změnilo od včerejška

+

Snímek je celý stroj v jednom okamžiku - každá služba a ovladač s typem spouštění, účtem, cestou ke spuštění, hashem a podepisovatelem souboru, závislostmi, triggery, privilegii a popisovačem zabezpečení. Je to JSON s jedním polem na řádek, takže patří do repozitáře a git diff ho čte.

+
+
$ 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.
+
    +
  • Konfigurace a stav běhu se hlásí odděleně. Dva snímky pořízené s odstupem dne se liší tím, co zrovna běží, a téměř nic z toho není drift - řádek, který stojí za čtení, je změněný typ spouštění.
  • +
  • Co nešlo porovnat, je uvedeno, ne skryto. Pole, které jeden snímek nikdy nečetl, vyjde jako not compared, takže porovnání, které říká nic se nezměnilo, znamená, že se nic nezměnilo v tom, co viděly obě strany.
  • +
  • --exit-code skončí kódem 5, když se konfigurace liší, takže naplánovaná úloha může při nasazení pořídit snímek a první noc, kdy se stroj odchýlí, někoho upozornit.
  • +
  • Dva stroje, dva soubory. Pořiďte snímek na testovacím a jeden na produkčním prostředí a porovnejte je kdekoli.
  • +
+
+ Jak fungují snímky a drift +
+
+ +
+
+ Nic se neděje bez plánu +

Náhled je provedení

+

Každá operace, která zapisuje, nejdřív sestaví plán a týž plán je náhled, kaskáda závislých služeb, odmítnutí dřív, než na cokoli kliknete, příkazový řádek, který žádá totéž, a cesta zpět po provedení.

+
+
$ 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.
+
    +
  • Spusťte to bez --dry-run a tohle jsou kroky, v tomto pořadí, se stejnými důvody vedle nich. Pro skutečné provedení neexistuje druhá cesta v kódu.
  • +
  • To, co spadne s ním, je v plánu. Služby, které by se rozbily, jsou samostatné kroky, a plán, který by shodil něco, co stroj potřebuje, to říká ve varováních.
  • +
  • Odmítnutí přijde dřív než tlačítko. Ovladač, služba, jejíž zastavení správce nepřijme, proces, který systém chrání - odmítnuto při sestavování plánu, s důvodem. Okno tlačítko zešedí a vedle něj řekne proč.
  • +
  • Vynucené zastavení jsou dva kroky a druhý je podmíněný. bws kill požádá službu o zastavení a její proces ukončí, jen když to nezabere, a pojmenuje každou další službu, která v něm žije.
  • +
+
+ Když se služba nezastaví +
+
+ +
+
+ Dvě minuty s ním +

Z příkazového řádku

+

Stejné jádro jako okno, pro skripty, naplánované úlohy a CI. Data jdou na standardní výstup a všechno ostatní na standardní chybový výstup, takže bws list --json | jq funguje a varování nikdy nepřistane ve vašem JSONu.

+
bws list --query "start:auto !status:running"     co by mělo běžet a neběží
+bws list --query "file:missing"                   služby, jejichž spustitelný soubor je pryč
+bws list --query "signed:no peruser:no"           nepodepsané, bez kopií pro jednotlivé relace
+bws show Spooler                                  všechno, co je o jedné položce známo
+bws stop Winmgmt --dry-run --dependents           co by zastavení strhlo s sebou
+bws kill Spooler --dry-run                        co by ukončení jeho procesu vzalo s sebou
+bws start-type Spooler manual --dry-run           co by udělalo jeho sundání z automatického spouštění
+bws snapshot create before.json                   zmrazit stroj před změnou
+bws snapshot diff before.json --live --exit-code  co se od té doby změnilo, 5 pokud se změnila konfigurace
+bws history Spooler                               kdo změnil jeho typ spouštění a kdy
+bws tool fix printer --dry-run                    co by udělala rychlá oprava zaseklé tiskárny
+ Každý příkaz, přepínač a návratový kód +
+
+ +
+
+ Získejte ho +

Rozbalit a spustit, nebo nainstalovat

+

Windows 10 1809 nebo Windows Server 2019 a novější, 64bitové. Archivy nepotřebují instalační program a nic nezapisují do registru a k prohlížení nejsou potřeba práva správce. Cokoli měnit vyžaduje relaci se zvýšenými oprávněními a obě poloviny to říkají místo tichého selhání - okno nabízí Restart as admin.

+
+ + + + + + + +
SouborCo to je
{{archive_window}}Okno, jeden samostatný spustitelný soubor - žádné .NET k instalaci
{{archive_cli}}Příkazový řádek, jeden samostatný spustitelný soubor, pro skripty a CI
{{archive_installer}}Instalační program: oba programy pro každý účet na stroji, okno v nabídce Start a bws v PATH
+
+

Spustitelné soubory nesou podpis Authenticode, takže Windows uvádí vydavatele místo varování před neznámým.

+ +
+
diff --git a/site/pages/home/id.html b/site/pages/home/id.html new file mode 100644 index 0000000..aa974a5 --- /dev/null +++ b/site/pages/home/id.html @@ -0,0 +1,200 @@ + + + + + + + +
+
+
+

Cari layanan Windows Anda, pratinjau setiap perubahan, dan lihat apa yang menyimpang sejak kemarin

+

{{product}} adalah services.msc yang dibangun ulang untuk orang yang mengelola mesin Windows - sebuah jendela dan sebuah baris perintah di atas satu mesin yang sama. Ajukan pertanyaan kepada mesin alih-alih menggulir delapan ratus baris. Lihat apa yang akan dilakukan sebuah perubahan sebelum Anda menekan apa pun. Dan bagian yang tidak pernah dimiliki services.msc: bekukan setiap layanan ke dalam satu berkas, lalu seminggu kemudian tanyakan apa yang berubah.

+ +
    +
  • Bebas dan gratis, GPL-3.0
  • +
  • Satu berkas, atau sebuah installer
  • +
  • Tidak perlu hak administrator untuk melihat
  • +
  • Tidak pernah terhubung ke internet
  • +
+
+
+ Jendela dengan lima entri terpilih dan rencana untuk memulainya yang ditampilkan di atas daftar: lima langkah, catatan bahwa dua di antaranya sudah dalam keadaan itu, satu baris bws start untuk setiap entri, dan tombol Start 5 entries. +
Entri yang dipilih, sebuah rencana yang ditampilkan sebelum apa pun terjadi, dan baris bws yang meminta hal yang persis sama. Program ini berbahasa Inggris - jendela membaca berkas bahasa yang ditaruh di sebelahnya, sehingga terjemahan dimungkinkan tanpa membangun ulang.
+
+
+
+ + +
+
+ Setengah menit bersamanya +

Seperti apa tampilannya saat dipakai

+

Sebuah sesi nyata, pada Windows yang terpasang dalam bahasa Polandia - nama tampilan berasal dari Windows, jadi memakai bahasanya. Jendela itu sendiri berbahasa Inggris.

+
+ Empat entri terpilih dan rencana untuk memulainya, restart paksa Local Session Manager yang rencananya memperingatkan bahwa mesin tidak berfungsi tanpanya dan meminta namanya sebelum tombol bekerja, pertanyaan awal di bawah kotak pencarian kosong, dan Print Spooler yang ditemukan dengan mengetik sebagian namanya lalu dimulai. +
Empat entri terpilih dan rencana untuk memulainya, restart paksa yang meminta nama layanan yang dibutuhkan mesin, pertanyaan di bawah kotak pencarian kosong, dan Print Spooler yang ditemukan dengan mengetik lalu dimulai.
+
+
+
+ Layar pembuka: tiga kartu berisi angka tentang mesin ini - layanan yang berjalan, layanan yang diatur mulai otomatis tetapi tidak naik, dan layanan yang diatur mulai otomatis tetapi berkasnya hilang - dan tombol Show the list. +
Layar ini terbuka dengan beberapa angka tentang mesin ini. Masing-masing adalah sebuah pertanyaan - klik, dan pertanyaan itu masuk ke kotak pencarian.
+
+
+ Daftar layanan dengan tiga daftar di atas kotak pencarian, kotak pencarian kosong, tombol filter yang terbuka dalam baris untuk status, tipe startup, tanda tangan, ketidaksesuaian, dan pemicu, serta daftar di bawahnya. +
Tombol filter menulis ke kotak pencarian, sehingga apa yang Anda klik adalah kueri yang bisa Anda baca dan sunting.
+
+
+
+
+ +
+
+ Mengapa ini ada +

services.msc nyaris tidak berubah sejak Windows 2000

+

Administrator menghabiskan berjam-jam seminggu di dalamnya sambil menabrak tembok yang sama.

+
+
    +
  • Tidak ada pencarian. Satu-satunya navigasi adalah melompat ke huruf pertama sebuah nama tampilan.
  • +
  • Tidak ada pemfilteran. Tidak ada cara untuk bertanya tunjukkan apa yang diatur mulai otomatis dan tidak berjalan.
  • +
  • Satu baris sekali waktu. Me-restart dua belas layanan berarti dua belas klik kanan dan dua belas kali menunggu.
  • +
  • "Stopping..." selamanya, tanpa jalan keluar selain Task Manager dan menebak prosesnya.
  • +
  • Tidak ada riwayat. Tidak ada yang tahu siapa yang mengatur tipe startup itu menjadi Disabled, atau kapan.
  • +
  • Data tersembunyi. Proses, pemicu, hak istimewa, deskriptor keamanan, siapa yang menandatangani berkas eksekusi - semuanya butuh sc.exe dari ingatan, atau registri.
  • +
  • Tidak ada padanan di baris perintah. sc.exe punya sintaks dari era sembilan puluhan, dan Get-Service bawaan Windows, di Windows PowerShell 5.1, tidak menampilkan akun tempat layanan berjalan, apalagi deskripsinya. PowerShell 7 menampilkan keduanya dan dipasang terpisah.
  • +
+
+

Alat lain masing-masing memperbaiki sebagian

+

Process Hacker dan System Informer menampilkan daftar yang kaya dan dapat mematikan proses secara paksa, tetapi tidak punya audit dan tidak punya baris perintah. sc.exe dan PsService bisa melakukan segalanya dan tidak memberi tahu Anda apa pun. Cmdlet *-Service milik PowerShell bisa diskrip dan dangkal.

+

Tidak ada yang menggabungkan daftar yang bisa dicari, pratinjau sebelum setiap perubahan, dan catatan tentang apa yang berubah dari waktu ke waktu - dan catatan itulah alasan mempertahankan alat ini di sebuah mesin setelah sore pertama.

+ Perbandingan lengkap +
+
+
+
+ +
+
+ Apa yang dilakukannya +

Sebuah jendela dan sebuah baris perintah di atas satu mesin yang sama

+
+

Bertanya, bukan menggulir

start:auto !status:running berarti apa yang seharusnya hidup dan tidak hidup. Satu bahasa, di kotak pencarian dan di bws list --query, dengan bidang yang ditawarkan saat Anda mengetik.

+

Tampilkan rencana sebelum apa pun terjadi

Setiap penghentian, permulaan, restart, dan perubahan tipe startup dipratinjau bersama layanan yang ikut jatuh, dan pratinjau itulah yang dijalankan.

+

Katakan apa yang menyimpang, dan siapa yang mengubahnya

bws snapshot create membekukan mesin ke dalam berkas, dan bws snapshot diff menyebutkan apa yang berubah sejak itu, konfigurasi terpisah dari apa yang sekadar mulai atau berhenti. bws history menyebutkan, dari log System, siapa yang mengubah tipe startup dan siapa yang memasang layanan. Jendela melakukan ketiganya di bawah Audit....

+

Perbaiki masalah umum dengan sekali tekan

Tab Tools dan bws tool fix me-restart layanan di balik printer yang tidak mencetak, suara yang hilang, atau pencarian yang macet, bersama apa yang bergantung padanya, melalui rencana yang sama dengan yang lain.

+

Hentikan layanan yang tidak mau berhenti

Ia meminta dengan sopan terlebih dahulu dan mengakhiri proses hanya jika itu gagal, sambil menyebut setiap layanan lain yang hidup di dalamnya.

+

Tampilkan apa yang disembunyikan services.msc

Siapa yang menandatangani berkas eksekusi dan apakah Windows memercayainya, pemicu, hak istimewa, deskriptor keamanan, proses dan memorinya. Sebagai kolom, dan sebagai hal yang bisa dicari.

+

Katakan saat sesuatu tidak bisa dibaca

Bidang yang tidak bisa dibacanya dilaporkan sebagai tidak terbaca, tidak pernah ditampilkan kosong. Snapshot yang diambil tanpa hak administrator menyatakannya di dalam berkas itu sendiri.

+

Cocok dengan skrip

--json di setiap perintah, kode keluar untuk setiap akhiran, dan 5 ketika sebuah perbandingan menemukan penyimpangan.

+

Berjalan dari satu berkas, offline

Ekstrak dan jalankan, atau pasang untuk seluruh mesin. Tidak ada .NET yang perlu dipasang, dan tidak pernah terhubung ke internet. Membaca tidak membutuhkan hak administrator. GPL-3.0.

+
+
+
+ +
+
+ Bagian yang tidak pernah dilakukan services.msc +

Apa yang berubah sejak kemarin

+

Snapshot adalah seluruh mesin pada satu saat - setiap layanan dan driver, dengan tipe startup, akun, jalur peluncuran, hash dan penandatangan berkasnya, dependensi, pemicu, hak istimewa, dan deskriptor keamanan. Berupa JSON dengan satu bidang per baris, sehingga bisa masuk ke repositori dan git diff membacanya.

+
+
$ 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.
+
    +
  • Konfigurasi dan status berjalan dilaporkan terpisah. Dua snapshot yang diambil berselang sehari berbeda pada apa yang kebetulan berjalan, dan hampir tidak ada yang merupakan penyimpangan - tipe startup yang berubah adalah baris yang perlu dibaca.
  • +
  • Apa yang tidak bisa dibandingkan dicantumkan, tidak disembunyikan. Bidang yang tidak pernah dibaca oleh sebuah snapshot muncul sebagai not compared, sehingga perbandingan yang berbunyi tidak ada yang berubah berarti tidak ada yang berubah pada apa yang bisa dilihat kedua sisi.
  • +
  • --exit-code berakhir dengan 5 ketika konfigurasi berbeda, sehingga tugas terjadwal dapat mengambil snapshot saat penerapan dan memanggil seseorang pada malam pertama mesin menyimpang.
  • +
  • Dua mesin, dua berkas. Ambil satu snapshot di staging dan satu di produksi, lalu bandingkan di mana saja.
  • +
+
+ Cara kerja snapshot dan penyimpangan +
+
+ +
+
+ Tidak ada yang terjadi tanpa rencana +

Pratinjau adalah eksekusinya

+

Setiap operasi yang menulis membangun rencana terlebih dahulu, dan rencana yang sama itu adalah pratinjau, kaskade layanan dependen, penolakan sebelum Anda menekan apa pun, baris perintah yang meminta hal yang sama, dan jalan kembali sesudahnya.

+
+
$ 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.
+
    +
  • Jalankan tanpa --dry-run dan inilah langkah-langkahnya, dalam urutan itu, dengan alasan yang sama di sampingnya. Tidak ada jalur kode kedua untuk eksekusi yang sebenarnya.
  • +
  • Apa yang ikut jatuh ada di dalam rencana. Layanan yang akan rusak adalah langkah tersendiri, dan rencana yang akan menjatuhkan sesuatu yang dibutuhkan mesin menyebutkannya dalam peringatan.
  • +
  • Penolakan datang sebelum tombol. Sebuah driver, layanan yang penghentiannya tidak diterima manajer, proses yang dilindungi sistem - ditolak saat rencana dibangun, beserta alasannya. Jendela mengabu-abukan tombol dan menjelaskan alasannya di sampingnya.
  • +
  • Penghentian paksa adalah dua langkah, dan yang kedua bersyarat. bws kill meminta layanan berhenti dan mengakhiri prosesnya hanya jika itu tidak berhasil, sambil menyebut setiap layanan lain yang hidup di dalamnya.
  • +
+
+ Ketika layanan tidak mau berhenti +
+
+ +
+
+ Dua menit bersamanya +

Dari baris perintah

+

Mesin yang sama dengan jendela, untuk skrip, tugas terjadwal, dan CI. Data masuk ke keluaran standar dan yang lain ke galat standar, sehingga bws list --json | jq berfungsi dan peringatan tidak pernah mendarat di JSON Anda.

+
bws list --query "start:auto !status:running"     apa yang seharusnya hidup dan tidak hidup
+bws list --query "file:missing"                   layanan yang berkas eksekusinya hilang
+bws list --query "signed:no peruser:no"           tidak bertanda tangan, tanpa salinan per sesi
+bws show Spooler                                  semua yang diketahui tentang satu entri
+bws stop Winmgmt --dry-run --dependents           apa yang akan ikut jatuh bila dihentikan
+bws kill Spooler --dry-run                        apa yang akan ikut terbawa bila prosesnya diakhiri
+bws start-type Spooler manual --dry-run           apa yang terjadi bila dikeluarkan dari otomatis
+bws snapshot create before.json                   bekukan mesin sebelum perubahan
+bws snapshot diff before.json --live --exit-code  apa yang berubah sejak itu, 5 bila konfigurasinya berubah
+bws history Spooler                               siapa yang mengubah tipe startup-nya, dan kapan
+bws tool fix printer --dry-run                    apa yang akan dilakukan perbaikan cepat untuk printer yang macet
+ Setiap perintah, opsi, dan kode keluar +
+
+ +
+
+ Dapatkan +

Ekstrak dan jalankan, atau pasang

+

Windows 10 1809 atau Windows Server 2019 dan yang lebih baru, 64-bit. Arsip tidak membutuhkan installer dan tidak menulis apa pun ke registri, dan melihat tidak membutuhkan hak administrator. Mengubah apa pun membutuhkan sesi dengan hak tinggi, dan kedua bagian menyatakannya alih-alih gagal diam-diam - jendela menawarkan Restart as admin.

+
+ + + + + + + +
BerkasApa itu
{{archive_window}}Jendela, satu berkas eksekusi mandiri - tidak ada .NET yang perlu dipasang
{{archive_cli}}Baris perintah, satu berkas eksekusi mandiri, untuk skrip dan CI
{{archive_installer}}Installer: kedua program untuk setiap akun di mesin, jendela di menu Start, dan bws di PATH
+
+

Berkas eksekusi membawa tanda tangan Authenticode, sehingga Windows menyebut penerbitnya alih-alih memperingatkan tentang penerbit yang tidak dikenal.

+ +
+
diff --git a/site/pages/home/ja.html b/site/pages/home/ja.html new file mode 100644 index 0000000..99b7cf1 --- /dev/null +++ b/site/pages/home/ja.html @@ -0,0 +1,199 @@ + + + + + + + +
+
+
+

Windows のサービスを検索し、変更を実行前にプレビューし、昨日から何がドリフトしたかを確認する

+

{{product}} は、Windows マシンを管理する人のために作り直した services.msc です。ウィンドウとコマンドラインが、同じエンジンの上で動きます。800 行をスクロールする代わりに、マシンに質問してください。何かを押す前に、変更で何が起きるかを確認できます。そして services.msc にはなかった機能があります。すべてのサービスをファイルに固定し、1 週間後に何が変わったかを尋ねられます。

+ +
    +
  • 無料でオープンソース、GPL-3.0
  • +
  • 1 つのファイル、またはインストーラー
  • +
  • 見るだけなら管理者権限は不要
  • +
  • インターネットには一切接続しません
  • +
+
+
+ 5 つのエントリを選択し、リストの上にそれらを開始するプランが表示されたウィンドウ。5 つのステップ、そのうち 2 つはすでにその状態であるという注記、各エントリ用の bws start 行、Start 5 entries ボタンがあります。 +
選択されたエントリ、何かが起きる前に表示されるプラン、そして全く同じことを要求する bws の行。プログラムは英語で表示されます。ウィンドウは隣に置かれた言語ファイルを読み込むため、再ビルドなしで翻訳できます。
+
+
+
+ + +
+
+ 30 秒で見る +

実際に使うとこうなります

+

ポーランド語でインストールされた Windows での実際のセッションです。表示名は Windows から取得するため、その言語で表示されます。ウィンドウ自体は英語です。

+
+ 4 つのエントリを選択してそれらを開始するプラン。Local Session Manager の強制再起動では、プランが「これがないとマシンは動作しない」と警告し、ボタンが有効になる前にその名前の入力を求めます。空の検索ボックスの下にある最初の質問。名前の一部を入力して見つかった Print Spooler が開始されます。 +
4 つのエントリを選択してそれらを開始するプラン、マシンに必要なサービスの名前を尋ねる強制再起動、空の検索ボックスの下の質問、そして入力して見つけ、開始した Print Spooler。
+
+
+
+ 最初の画面。このマシンについての数字が書かれた 3 枚のカード(実行中のサービス、自動開始に設定されているのに起動しなかったサービス、自動開始に設定されているのにファイルがなくなったサービス)と、Show the list ボタン。 +
最初に、このマシンについての数字がいくつか表示されます。それぞれが質問になっていて、クリックするとその質問が検索ボックスに入ります。
+
+
+ 検索ボックスの上に 3 つのリストがあるサービス一覧。空の検索ボックス、状態、スタートアップの種類、署名、不一致、トリガーごとの行に展開されたフィルターボタン、その下の一覧。 +
フィルターボタンは検索ボックスに書き込むので、クリックした内容は読んで編集できるクエリになります。
+
+
+
+
+ +
+
+ なぜ作ったのか +

services.msc は Windows 2000 からほとんど変わっていません

+

管理者は毎週何時間もこれを使い、同じ壁にぶつかっています。

+
+
    +
  • 検索がありません。操作できるのは、表示名の最初の文字へジャンプすることだけです。
  • +
  • 絞り込みがありません。自動開始に設定されているのに実行されていないものを表示してと尋ねる方法がありません。
  • +
  • 1 行ずつしか操作できません。12 個のサービスを再起動するには、右クリックを 12 回、待機を 12 回繰り返します。
  • +
  • 「Stopping...」のまま戻らない。逃げ道は、タスク マネージャーとプロセスの推測だけです。
  • +
  • 履歴がありません。誰がいつスタートアップの種類を Disabled にしたのか、誰にもわかりません。
  • +
  • 隠れたデータ。プロセス、トリガー、特権、セキュリティ記述子、実行ファイルの署名者。これらすべてに、記憶に頼った sc.exe かレジストリが必要です。
  • +
  • コマンドラインが同等ではありません。sc.exe の構文は 1990 年代のものです。Windows に付属する Windows PowerShell 5.1 の Get-Service は、サービスを実行しているアカウントを表示せず、説明も表示しません。PowerShell 7 はどちらも表示しますが、別途インストールが必要です。
  • +
+
+

ほかのツールは、それぞれ一部だけを解決します

+

Process Hacker と System Informer は豊富な一覧を表示し、強制終了もできますが、監査機能もコマンドラインもありません。sc.exe と PsService は何でもできますが、何も教えてくれません。PowerShell の *-Service コマンドレットはスクリプトで使えますが、浅い情報しか得られません。

+

検索できる一覧、すべての変更の前のプレビュー、時間をかけた変更の記録を組み合わせたものはありません。そして最初の 1 日が過ぎてもこのツールをマシンに置いておく理由は、この記録です。

+ 詳しい比較 +
+
+
+
+ +
+
+ できること +

ウィンドウとコマンドラインが、同じエンジンの上で動きます

+
+

スクロールではなく、質問する

start:auto !status:running は起動しているはずなのに起動していないものです。検索ボックスでも bws list --query でも同じ言語で、入力中にフィールドが候補として表示されます。

+

何かが起きる前にプランを表示する

停止、開始、再起動、スタートアップの種類の変更はすべて、巻き込まれるサービスとともに事前にプレビューされ、プレビューがそのまま実行されます。

+

何がドリフトしたか、誰が変更したかを伝える

bws snapshot create はマシンをファイルに固定し、bws snapshot diff はその後に何が変わったかを、単に開始や停止をしただけのものとは分けて構成として示します。bws history は System ログから、誰がスタートアップの種類を変更し、誰がサービスをインストールしたかを示します。ウィンドウでは、この 3 つすべてを Audit... から実行できます。

+

よくある問題を 1 回の操作で修正する

Tools タブと bws tool fix は、印刷されないプリンター、出なくなった音、止まった検索の裏にあるサービスを、それに依存するものとともに、ほかの操作と同じプランで再起動します。

+

止まらないサービスを止める

最初は丁寧に停止を要求し、それが失敗した場合にのみプロセスを終了します。同じプロセスに存在するほかのサービスはすべて名前が示されます。

+

services.msc が隠しているものを表示する

実行ファイルを誰が署名したか、Windows がそれを信頼しているか、トリガー、特権、セキュリティ記述子、プロセスとそのメモリ。列として表示でき、検索条件にもできます。

+

読み取れなかったときに伝える

読み取れなかったフィールドは、空ではなく読み取れなかったものとして報告されます。管理者権限なしで取得したスナップショットには、ファイルの中にそのことが記録されます。

+

スクリプトに組み込める

すべてのコマンドで --json、終了のたびに終了コード、差分でドリフトが見つかったときは 5。

+

1 つのファイルからオフラインで動かす

展開して実行するか、マシン全体にインストールします。.NET のインストールは不要で、インターネットには一切接続しません。読み取りに管理者権限は不要です。GPL-3.0。

+
+
+
+ +
+
+ services.msc にはなかった機能 +

昨日から何が変わったか

+

スナップショットは、ある時点のマシン全体です。すべてのサービスとドライバーについて、スタートアップの種類、アカウント、起動パス、ファイルのハッシュと署名者、依存関係、トリガー、特権、セキュリティ記述子が含まれます。1 行に 1 フィールドの JSON なので、リポジトリに入れることができ、git diff で読めます。

+
+
$ 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.
+
    +
  • 構成と実行状態は分けて報告されます。1 日あけて取得した 2 つのスナップショットは、たまたま実行されているものが異なるだけで、そのほとんどはドリフトではありません。読むべき行は、変更されたスタートアップの種類です。
  • +
  • 比較できなかったものは、隠さず一覧に出ます。片方のスナップショットが一度も読み取っていないフィールドは not compared と表示されます。したがって、何も変わっていないと示す差分は、両方が見られた範囲で何も変わっていないという意味です。
  • +
  • --exit-code は、構成が異なる場合に 5 で終了します。そのため、スケジュールされたタスクがデプロイ時にスナップショットを取り、マシンがドリフトした最初の夜に誰かを呼び出せます。
  • +
  • 2 台のマシン、2 つのファイル。ステージング環境と本番環境でそれぞれスナップショットを取り、どこでも比較できます。
  • +
+
+ スナップショットとドリフトの仕組み +
+
+ +
+
+ プランなしでは何も起きません +

プレビューが、そのまま実行です

+

書き込みを行う操作はすべて、最初にプランを作ります。同じプランが、プレビュー、依存サービスへの連鎖、何かを押す前の拒否、同じことを要求するコマンドライン、そして実行後に元へ戻す方法になります。

+
+
$ 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 を外して実行すると、それがそのままのステップです。同じ順序で、同じ理由が横に表示されます。実際の実行のための別のコード経路はありません。
  • +
  • 一緒に停止するものがプランに含まれます。壊れるサービスはそれぞれ独立したステップになり、マシンに必要なものを停止してしまうプランは、警告でそう伝えます。
  • +
  • 拒否はボタンより前に来ます。ドライバー、マネージャーが停止を受け付けないサービス、システムが保護しているプロセスは、プランを作る時点で理由とともに拒否されます。ウィンドウではボタンがグレーになり、その横に理由が表示されます。
  • +
  • 強制停止は 2 つのステップで、2 つ目は条件付きです。bws kill はサービスに停止を要求し、それがうまくいかない場合にのみプロセスを終了します。そのプロセスに存在するほかのサービスはすべて名前が示されます。
  • +
+
+ サービスが止まらないとき +
+
+ +
+
+ 2 分で試す +

コマンドラインから

+

スクリプト、スケジュールされたタスク、CI のための、ウィンドウと同じエンジンです。データは標準出力に、それ以外はすべて標準エラーに出力されるので、bws list --json | jq が動作し、警告が JSON に混ざることはありません。

+
bws list --query "start:auto !status:running"     起動しているはずなのに起動していないもの
+bws list --query "file:missing"                   実行ファイルがなくなったサービス
+bws list --query "signed:no peruser:no"           署名なし。セッションごとのコピーを除く
+bws show Spooler                                  1 つのエントリについてわかっているすべて
+bws stop Winmgmt --dry-run --dependents           停止すると何が巻き込まれるか
+bws kill Spooler --dry-run                        プロセスを終了すると何が巻き込まれるか
+bws start-type Spooler manual --dry-run           自動からはずすと何が起きるか
+bws snapshot create before.json                   変更の前にマシンを固定する
+bws snapshot diff before.json --live --exit-code  それ以降の変更点。構成が変わっていれば 5
+bws history Spooler                               誰がいつスタートアップの種類を変更したか
+bws tool fix printer --dry-run                    止まったプリンターのクイック修正が行うこと
+ すべてのコマンド、オプション、終了コード +
+
+ +
+
+ 入手する +

展開して実行、またはインストール

+

Windows 10 1809 または Windows Server 2019 以降、64 ビット。アーカイブにインストーラーは不要で、レジストリには何も書き込みません。見るだけなら管理者権限は不要です。何かを変更するには昇格したセッションが必要で、どちらの側もそのことを黙って失敗せずに伝えます。ウィンドウには Restart as admin があります。

+
+ + + + + + + +
ファイル内容
{{archive_window}}ウィンドウです。1 つの自己完結型の実行ファイルで、.NET のインストールは不要です
{{archive_cli}}コマンドラインです。スクリプトと CI のための、1 つの自己完結型の実行ファイルです
{{archive_installer}}インストーラーです。マシン上のすべてのアカウント向けに両方のプログラムをインストールし、ウィンドウをスタート メニューに、bws を PATH に追加します
+
+

実行ファイルには Authenticode 署名があるため、Windows は不明な発行元として警告せず、発行元の名前を表示します。

+ +
+
diff --git a/site/pages/home/ko.html b/site/pages/home/ko.html new file mode 100644 index 0000000..5a2722e --- /dev/null +++ b/site/pages/home/ko.html @@ -0,0 +1,200 @@ + + + + + + + +
+
+
+

Windows 서비스를 검색하고, 모든 변경을 실행 전에 미리 보고, 어제 이후 무엇이 드리프트했는지 확인하세요

+

{{product}}는 Windows 컴퓨터를 관리하는 사람을 위해 다시 만든 services.msc입니다. 창과 명령줄이 하나의 엔진 위에서 동작합니다. 800개 행을 스크롤하는 대신 컴퓨터에 질문하세요. 아무것도 누르기 전에 변경이 무엇을 하는지 확인하세요. 그리고 services.msc에 없던 기능이 있습니다. 모든 서비스를 파일로 고정해 두고, 일주일 뒤 무엇이 바뀌었는지 물을 수 있습니다.

+ +
    +
  • 무료 오픈 소스, GPL-3.0
  • +
  • 파일 하나 또는 설치 프로그램
  • +
  • 보기만 할 때는 관리자 권한이 필요 없음
  • +
  • 인터넷에 접속하지 않음
  • +
+
+
+ 항목 다섯 개를 선택하고 목록 위에 그 항목들을 시작하는 계획이 표시된 창입니다. 다섯 단계, 그중 둘은 이미 그 상태라는 참고, 각 항목에 대한 bws start 줄, Start 5 entries 버튼이 있습니다. +
선택한 항목, 아무 일이 일어나기 전에 표시되는 계획, 그리고 정확히 같은 일을 요청하는 bws 줄입니다. 프로그램은 영어로 표시됩니다. 창은 옆에 놓인 언어 파일을 읽으므로 다시 빌드하지 않고도 번역할 수 있습니다.
+
+
+
+ + +
+
+ 30초 체험 +

실제로 사용하면 이렇게 보입니다

+

폴란드어로 설치된 Windows에서의 실제 세션입니다. 표시 이름은 Windows에서 가져오므로 Windows의 언어로 표시됩니다. 창 자체는 영어입니다.

+
+ 항목 네 개를 선택하고 그 항목들을 시작하는 계획, Local Session Manager의 강제 재시작(계획이 컴퓨터가 이것 없이는 동작하지 않는다고 경고하고 버튼이 동작하기 전에 이름을 입력하라고 요구함), 빈 검색 상자 아래의 시작용 질문, 이름의 일부를 입력해 찾아 시작한 Print Spooler. +
항목 네 개를 선택하고 그 항목들을 시작하는 계획, 컴퓨터에 필요한 서비스의 이름을 요구하는 강제 재시작, 빈 검색 상자 아래의 질문, 입력해서 찾아 시작한 Print Spooler.
+
+
+
+ 첫 화면: 이 컴퓨터에 대한 숫자가 담긴 카드 세 장(실행 중인 서비스, 자동으로 시작하도록 설정됐지만 올라오지 않은 서비스, 자동으로 시작하도록 설정됐지만 파일이 사라진 서비스)과 Show the list 버튼. +
창은 이 컴퓨터에 대한 숫자 몇 개와 함께 열립니다. 각 숫자는 질문이며, 클릭하면 그 질문이 검색 상자에 들어갑니다.
+
+
+ 검색 상자 위에 목록 세 개가 있는 서비스 목록, 빈 검색 상자, 상태, 시작 유형, 서명, 불일치, 트리거별 행으로 펼쳐진 필터 버튼, 그 아래의 목록. +
필터 버튼은 검색 상자에 내용을 쓰므로, 클릭한 것은 읽고 편집할 수 있는 쿼리가 됩니다.
+
+
+
+
+ +
+
+ 만든 이유 +

services.msc는 Windows 2000 이후 거의 바뀌지 않았습니다

+

관리자는 매주 몇 시간씩 이것을 사용하며 같은 벽에 부딪힙니다.

+
+
    +
  • 검색이 없습니다. 유일한 탐색은 표시 이름의 첫 글자로 건너뛰는 것입니다.
  • +
  • 필터링이 없습니다. 자동으로 시작하도록 설정됐지만 실행 중이 아닌 것을 보여 줘라고 물을 방법이 없습니다.
  • +
  • 한 번에 한 행씩만 됩니다. 서비스 열두 개를 재시작하려면 오른쪽 클릭 열두 번과 기다림 열두 번이 필요합니다.
  • +
  • 끝없는 “Stopping...” 작업 관리자와 프로세스를 짐작하는 것 외에는 빠져나갈 길이 없습니다.
  • +
  • 기록이 없습니다. 누가 언제 시작 유형을 Disabled로 설정했는지 아무도 모릅니다.
  • +
  • 숨겨진 데이터. 프로세스, 트리거, 권한, 보안 설명자, 실행 파일에 서명한 주체까지, 이 모든 것을 보려면 기억에 의존한 sc.exe나 레지스트리가 필요합니다.
  • +
  • 동등한 명령줄이 없습니다. sc.exe는 1990년대 구문을 쓰고, Windows에 포함된 Windows PowerShell 5.1의 Get-Service는 서비스가 실행되는 계정은 물론 설명도 보여 주지 않습니다. PowerShell 7은 둘 다 보여 주며, 별도로 설치합니다.
  • +
+
+

다른 도구는 각자 일부만 해결합니다

+

Process Hacker와 System Informer는 풍부한 목록을 보여 주고 강제 종료를 할 수 있지만 감사 기능과 명령줄이 없습니다. sc.exe와 PsService는 모든 것을 할 수 있지만 아무것도 알려 주지 않습니다. PowerShell의 *-Service cmdlet은 스크립트에 쓸 수 있지만 얕습니다.

+

검색 가능한 목록, 모든 변경 전의 미리 보기, 시간에 따른 변경 기록을 함께 갖춘 도구는 없습니다. 그리고 첫 오후가 지난 뒤에도 이 도구를 컴퓨터에 두는 이유가 바로 그 기록입니다.

+ 전체 비교 +
+
+
+
+ +
+
+ 하는 일 +

창과 명령줄이 하나의 엔진 위에서 동작합니다

+
+

스크롤하지 말고 물어보세요

start:auto !status:running은 떠 있어야 하는데 떠 있지 않은 것입니다. 검색 상자와 bws list --query에서 같은 하나의 언어를 쓰며, 입력하는 동안 필드가 제안됩니다.

+

무슨 일이 일어나기 전에 계획을 보여 줍니다

모든 중지, 시작, 재시작, 시작 유형 변경은 함께 내려가는 서비스와 함께 미리 보이며, 미리 보기가 곧 실행되는 내용입니다.

+

무엇이 드리프트했고 누가 바꿨는지 알려 줍니다

bws snapshot create는 컴퓨터를 파일로 고정하고, bws snapshot diff는 그 이후 무엇이 바뀌었는지를, 단순히 시작되거나 중지된 것과 구분해 구성 기준으로 알려 줍니다. bws history는 System 로그에서 누가 시작 유형을 바꿨고 누가 서비스를 설치했는지 알려 줍니다. 창은 Audit... 아래에서 세 가지를 모두 합니다.

+

흔한 문제를 한 번에 해결합니다

Tools 탭과 bws tool fix는 인쇄되지 않는 프린터, 사라진 소리, 멈춘 검색 뒤에 있는 서비스를, 그것에 종속된 것과 함께, 다른 모든 작업과 같은 계획을 통해 재시작합니다.

+

멈추지 않는 서비스를 멈춥니다

먼저 정중하게 요청하고, 그것이 실패할 때만 프로세스를 종료하며, 그 안에서 실행 중인 다른 서비스를 모두 이름으로 알려 줍니다.

+

services.msc가 숨기는 것을 보여 줍니다

실행 파일에 서명한 주체와 Windows가 그것을 신뢰하는지, 트리거, 권한, 보안 설명자, 프로세스와 그 메모리를 보여 줍니다. 열로 보여 주고 검색 조건으로도 쓸 수 있습니다.

+

읽지 못했을 때 그렇다고 말합니다

읽지 못한 필드는 비어 있는 것으로 표시되지 않고 읽지 못한 것으로 보고됩니다. 관리자 권한 없이 만든 스냅샷은 파일 안에 그 사실을 기록합니다.

+

스크립트에 맞습니다

모든 명령에 --json, 모든 종료 방식에 종료 코드, 차이에서 드리프트가 발견되면 5.

+

파일 하나로, 오프라인으로 실행합니다

압축을 풀어 실행하거나 컴퓨터 전체에 설치합니다. 설치할 .NET이 없고, 인터넷에 접속하지 않습니다. 읽기에는 관리자 권한이 필요 없습니다. GPL-3.0.

+
+
+
+ +
+
+ services.msc에 없던 기능 +

어제 이후 무엇이 바뀌었는가

+

스냅샷은 한 시점의 컴퓨터 전체입니다. 모든 서비스와 드라이버의 시작 유형, 계정, 시작 경로, 파일의 해시와 서명자, 종속성, 트리거, 권한, 보안 설명자가 들어 있습니다. 한 줄에 필드 하나인 JSON이라서 저장소에 넣을 수 있고 git diff로 읽을 수 있습니다.

+
+
$ 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.
+
    +
  • 구성과 실행 상태를 따로 보고합니다. 하루 간격으로 만든 스냅샷 두 개는 우연히 실행 중인 것이 다르고, 그중 거의 아무것도 드리프트가 아닙니다. 읽어야 할 줄은 바뀐 시작 유형입니다.
  • +
  • 비교하지 못한 것은 숨기지 않고 나열합니다. 스냅샷 하나가 한 번도 읽지 않은 필드는 not compared로 나오므로, 아무것도 바뀌지 않았다라고 말하는 차이는 양쪽이 볼 수 있었던 범위에서 아무것도 바뀌지 않았다는 뜻입니다.
  • +
  • --exit-code는 구성이 다르면 5로 종료합니다. 따라서 예약 작업이 배포 때 스냅샷을 만들고, 컴퓨터가 드리프트한 첫날 밤에 누군가를 호출할 수 있습니다.
  • +
  • 컴퓨터 둘, 파일 둘. 스테이징 환경과 운영 환경에서 각각 스냅샷을 만들어 어디서든 비교하세요.
  • +
+
+ 스냅샷과 드리프트의 동작 방식 +
+
+ +
+
+ 계획 없이는 아무 일도 일어나지 않습니다 +

미리 보기가 곧 실행입니다

+

쓰기를 하는 모든 작업은 먼저 계획을 만들고, 같은 계획이 미리 보기, 종속 서비스로의 연쇄, 아무것도 누르기 전의 거부, 같은 일을 요청하는 명령줄, 그리고 나중의 되돌리기가 됩니다.

+
+
$ 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 없이 실행하면 그 단계들이 그대로 실행됩니다. 같은 순서로, 같은 이유가 옆에 표시됩니다. 실제 작업을 위한 두 번째 코드 경로는 없습니다.
  • +
  • 함께 내려가는 것이 계획에 들어 있습니다. 망가질 서비스는 각각 별도의 단계가 되고, 컴퓨터에 필요한 것을 내릴 계획은 경고로 그 사실을 알려 줍니다.
  • +
  • 거부는 버튼보다 먼저 옵니다. 드라이버, 서비스 관리자가 중지를 받아들이지 않는 서비스, 시스템이 보호하는 프로세스는 계획을 만들 때 이유와 함께 거부됩니다. 창은 버튼을 회색으로 만들고 그 옆에 이유를 표시합니다.
  • +
  • 강제 중지는 두 단계이며, 두 번째는 조건부입니다. bws kill은 서비스에 중지를 요청하고, 그것이 통하지 않을 때만 프로세스를 종료하며, 그 안에 있는 다른 서비스를 모두 이름으로 알려 줍니다.
  • +
+
+ 서비스가 멈추지 않을 때 +
+
+ +
+
+ 2분 체험 +

명령줄에서

+

스크립트, 예약 작업, CI를 위한, 창과 같은 엔진입니다. 데이터는 표준 출력으로, 나머지는 모두 표준 오류로 나가므로 bws list --json | jq가 동작하고 경고가 JSON에 섞이지 않습니다.

+
bws list --query "start:auto !status:running"     떠 있어야 하는데 떠 있지 않은 것
+bws list --query "file:missing"                   실행 파일이 사라진 서비스
+bws list --query "signed:no peruser:no"           서명 없음, 세션별 복사본 제외
+bws show Spooler                                  한 항목에 대해 알려진 모든 것
+bws stop Winmgmt --dry-run --dependents           중지하면 무엇이 함께 내려가는지
+bws kill Spooler --dry-run                        프로세스를 종료하면 무엇이 함께 사라지는지
+bws start-type Spooler manual --dry-run           자동에서 빼면 무슨 일이 일어나는지
+bws snapshot create before.json                   변경 전에 컴퓨터를 고정
+bws snapshot diff before.json --live --exit-code  그 이후 바뀐 것, 구성이 바뀌었으면 5
+bws history Spooler                               누가 언제 시작 유형을 바꿨는지
+bws tool fix printer --dry-run                    멈춘 프린터의 빠른 해결이 하는 일
+ 모든 명령, 옵션, 종료 코드 +
+
+ +
+
+ 받기 +

압축을 풀어 실행하거나 설치하세요

+

Windows 10 1809 또는 Windows Server 2019 이상, 64비트. 압축 파일에는 설치 프로그램이 필요 없고 레지스트리에 아무것도 쓰지 않으며, 보기만 할 때는 관리자 권한이 필요 없습니다. 무엇이든 변경하려면 상승된 세션이 필요하며, 두 쪽 모두 조용히 실패하지 않고 그 사실을 알려 줍니다. 창은 Restart as admin을 제공합니다.

+
+ + + + + + + +
파일설명
{{archive_window}}창입니다. 자체 포함 실행 파일 하나이며, 설치할 .NET이 없습니다
{{archive_cli}}명령줄입니다. 스크립트와 CI를 위한 자체 포함 실행 파일 하나입니다
{{archive_installer}}설치 프로그램입니다. 컴퓨터의 모든 계정을 위해 두 프로그램을 설치하고, 창은 시작 메뉴에, bws는 PATH에 추가합니다
+
+

실행 파일에는 Authenticode 서명이 있으므로, Windows는 알 수 없는 게시자를 경고하는 대신 게시자 이름을 표시합니다.

+ +
+
diff --git a/site/pages/home/nl.html b/site/pages/home/nl.html new file mode 100644 index 0000000..0e4e0ad --- /dev/null +++ b/site/pages/home/nl.html @@ -0,0 +1,200 @@ + + + + + + + +
+
+
+

Zoek in uw Windows-services, bekijk elke wijziging voordat die draait en zie wat er is afgedreven sinds gisteren

+

{{product}} is services.msc, opnieuw gebouwd voor wie Windows-machines beheert - een venster en een opdrachtregel op één engine. Stel de machine een vraag in plaats van achthonderd rijen door te scrollen. Zie wat een wijziging gaat doen voordat u ergens op drukt. En wat services.msc nooit had: elke service in een bestand vastleggen en een week later vragen wat er is veranderd.

+ +
    +
  • Vrij en gratis, GPL-3.0
  • +
  • Eén bestand, of een installatieprogramma
  • +
  • Geen beheerdersrechten om te kijken
  • +
  • Maakt nooit verbinding met internet
  • +
+
+
+ Het venster met vijf geselecteerde items en het plan om ze te starten boven de lijst: vijf stappen, een opmerking dat twee ervan al in die toestand zijn, een bws start-regel voor elk item en de knop Start 5 entries. +
Geselecteerde items, een plan dat wordt getoond voordat er iets gebeurt, en de bws-regel die precies hetzelfde vraagt. Het programma spreekt Engels - het venster leest een taalbestand dat ernaast ligt, dus een vertaling is mogelijk zonder opnieuw te bouwen.
+
+
+
+ + +
+
+ Een halve minuut ermee +

Hoe het eruitziet in gebruik

+

Een echte sessie, op een in het Pools geïnstalleerd Windows - de weergavenamen komen van Windows, dus staan ze in de taal ervan. Het venster zelf spreekt Engels.

+
+ Vier geselecteerde items en het plan om ze te starten, een geforceerde herstart van de Local Session Manager waarvan het plan waarschuwt dat de machine niet werkt zonder deze en om de naam ervan vraagt voordat de knop werkt, de startvragen onder het lege zoekvak, en de Print Spooler die is gevonden door een deel van de naam te typen en is gestart. +
Vier geselecteerde items en het plan om ze te starten, een geforceerde herstart die vraagt om de naam van een service die de machine nodig heeft, de vragen onder een leeg zoekvak en de Print Spooler die al typend is gevonden en gestart.
+
+
+
+ Het openingsscherm: drie kaarten met cijfers over deze machine - draaiende services, services die automatisch starten maar niet zijn opgekomen, en services die automatisch starten waarvan het bestand weg is - en een knop Show the list. +
Het opent met enkele cijfers over deze machine. Elk is een vraag - klik erop en de vraag gaat naar het zoekvak.
+
+
+ De lijst met services met de drie lijsten boven het zoekvak, een leeg zoekvak, de filterknoppen in rijen geopend voor toestand, opstarttype, handtekening, afwijkingen en triggers, en de lijst eronder. +
De filterknoppen schrijven in het zoekvak, zodat wat u hebt aangeklikt een query is die u kunt lezen en bewerken.
+
+
+
+
+ +
+
+ Waarom dit bestaat +

services.msc is sinds Windows 2000 nauwelijks veranderd

+

Beheerders besteden er elke week uren aan en lopen steeds tegen dezelfde muren op.

+
+
    +
  • Geen zoekfunctie. De enige navigatie is springen naar de eerste letter van een weergavenaam.
  • +
  • Geen filter. Er is geen manier om te vragen toon me wat automatisch moet starten en niet draait.
  • +
  • Eén rij tegelijk. Twaalf services herstarten is twaalf keer rechtsklikken en twaalf keer wachten.
  • +
  • "Wordt gestopt..." voor altijd, zonder andere uitweg dan Taakbeheer en het proces raden.
  • +
  • Geen geschiedenis. Niemand weet wie dat opstarttype op Uitgeschakeld heeft gezet, of wanneer.
  • +
  • Verborgen gegevens. Het proces, de triggers, de bevoegdheden, de beveiligingsdescriptor, wie het uitvoerbare bestand heeft ondertekend - alles vraagt sc.exe uit het hoofd, of het register.
  • +
  • Geen gelijkwaardigheid op de opdrachtregel. sc.exe heeft een syntaxis uit de jaren negentig, en de Get-Service die met Windows meekomt, in Windows PowerShell 5.1, toont niet onder welk account een service draait, laat staan de beschrijving. PowerShell 7 toont beide en wordt apart geïnstalleerd.
  • +
+
+

De andere hulpmiddelen lossen elk een deel op

+

Process Hacker en System Informer tonen een rijke lijst en kunnen een proces geforceerd beëindigen, maar hebben geen audit en geen opdrachtregel. sc.exe en PsService kunnen alles en vertellen u niets. De *-Service-cmdlets van PowerShell zijn scriptbaar en oppervlakkig.

+

Niemand combineert een doorzoekbare lijst, een voorvertoning vóór elke wijziging en een logboek van wat er in de loop van de tijd is veranderd - en dat logboek is de reden om dit hulpmiddel na de eerste middag op een machine te houden.

+ De volledige vergelijking +
+
+
+
+ +
+
+ Wat het doet +

Een venster en een opdrachtregel op één engine

+
+

Vragen in plaats van scrollen

start:auto !status:running is wat moet draaien en niet draait. Eén taal, in het zoekvak en in bws list --query, met de velden als suggestie terwijl u typt.

+

Het plan tonen voordat er iets gebeurt

Elke stop, start, herstart en wijziging van het opstarttype wordt vooraf getoond, met de services die erdoor meevallen, en de voorvertoning is wat er draait.

+

Zeggen wat er is afgedreven en wie het heeft gewijzigd

bws snapshot create legt de machine vast in een bestand en bws snapshot diff zegt wat er sindsdien is veranderd, de configuratie los van wat alleen is gestart of gestopt. bws history zegt aan de hand van het systeemlogboek wie een opstarttype heeft gewijzigd en wie een service heeft geïnstalleerd. Het venster doet alle drie onder Audit....

+

Een veelvoorkomend probleem met één klik oplossen

Het tabblad Tools en bws tool fix herstarten de service achter een printer die niet print, geluid dat weg is of een vastgelopen zoekopdracht, samen met wat ervan afhangt, via hetzelfde plan als al het andere.

+

Een service stoppen die niet wil stoppen

Het vraagt eerst beleefd en beëindigt het proces alleen als dat mislukt, waarbij elke andere service die erin leeft wordt genoemd.

+

Tonen wat services.msc verbergt

Wie het uitvoerbare bestand heeft ondertekend en of Windows het vertrouwt, triggers, bevoegdheden, de beveiligingsdescriptor, het proces en het geheugen ervan. Als kolommen en als zoekcriteria.

+

Zeggen wanneer iets niet gelezen kon worden

Een veld dat het niet kon lezen wordt gemeld als niet gelezen, nooit getoond als leeg. Een momentopname zonder beheerdersrechten zegt dat in het bestand zelf.

+

In scripts passen

--json bij elke opdracht, een afsluitcode voor elk einde en 5 wanneer een vergelijking drift vindt.

+

Draaien vanuit één bestand, offline

Uitpakken en starten, of installeren voor de hele machine. Geen .NET om te installeren, en het maakt nooit verbinding met internet. Voor lezen zijn geen beheerdersrechten nodig. GPL-3.0.

+
+
+
+ +
+
+ Wat services.msc nooit deed +

Wat er sinds gisteren is veranderd

+

Een momentopname is de hele machine op één moment - elke service en elk stuurprogramma, met opstarttype, account, opstartpad, de hash en de ondertekenaar van het bestand, afhankelijkheden, triggers, bevoegdheden en beveiligingsdescriptor. Het is JSON met één veld per regel, dus het past in een repository en git diff leest het.

+
+
$ 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.
+
    +
  • Configuratie en uitvoeringstoestand worden apart gemeld. Twee momentopnamen met een dag ertussen verschillen in wat er toevallig draait, en bijna niets daarvan is drift - het opstarttype dat is veranderd is de regel om te lezen.
  • +
  • Wat niet kon worden vergeleken wordt vermeld, niet verborgen. Een veld dat een momentopname nooit las, komt eruit als not compared, zodat een vergelijking die zegt niets is veranderd betekent dat er niets is veranderd in wat beide kanten konden zien.
  • +
  • --exit-code eindigt met 5 wanneer de configuratie verschilt, zodat een geplande taak bij de uitrol een momentopname kan maken en de eerste nacht dat de machine afdrijft iemand kan waarschuwen.
  • +
  • Twee machines, twee bestanden. Maak een momentopname op acceptatie en een op productie en vergelijk ze overal.
  • +
+
+ Hoe momentopnamen en drift werken +
+
+ +
+
+ Niets gebeurt zonder plan +

De voorvertoning is de uitvoering

+

Elke bewerking die schrijft bouwt eerst een plan, en datzelfde plan is de voorvertoning, de waterval van afhankelijke services, de weigering voordat u ergens op drukt, de opdrachtregel die hetzelfde vraagt en de weg terug achteraf.

+
+
$ 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.
+
    +
  • Voer het uit zonder --dry-run en dit zijn de stappen, in die volgorde, met dezelfde redenen ernaast. Er is geen tweede codepad voor de echte uitvoering.
  • +
  • Wat ermee meevalt staat in het plan. De services die zouden uitvallen zijn stappen op zich, en een plan dat iets zou neerhalen wat de machine nodig heeft, zegt dat in de waarschuwingen.
  • +
  • Een weigering komt vóór de knop. Een stuurprogramma, een service waarvoor de beheerder geen stop accepteert, een proces dat het systeem beschermt - geweigerd bij het bouwen van het plan, met de reden. Het venster maakt de knop grijs en zegt waarom ernaast.
  • +
  • Geforceerd stoppen is twee stappen, en de tweede is voorwaardelijk. bws kill vraagt de service te stoppen en beëindigt het proces alleen als dat niet werkt, waarbij elke andere service die erin leeft wordt genoemd.
  • +
+
+ Wanneer een service niet wil stoppen +
+
+ +
+
+ Twee minuten ermee +

Vanaf de opdrachtregel

+

Dezelfde engine als het venster, voor scripts, geplande taken en CI. Gegevens gaan naar de standaarduitvoer en al het andere naar de standaardfout, zodat bws list --json | jq werkt en een waarschuwing nooit in uw JSON belandt.

+
bws list --query "start:auto !status:running"     wat moet draaien en niet draait
+bws list --query "file:missing"                   services waarvan het uitvoerbare bestand weg is
+bws list --query "signed:no peruser:no"           niet ondertekend, zonder de kopieën per sessie
+bws show Spooler                                  alles wat bekend is over een item
+bws stop Winmgmt --dry-run --dependents           wat stoppen ervan zou meenemen
+bws kill Spooler --dry-run                        wat het beëindigen van het proces zou meenemen
+bws start-type Spooler manual --dry-run           wat het van automatisch halen zou doen
+bws snapshot create before.json                   de machine vastleggen voor een wijziging
+bws snapshot diff before.json --live --exit-code  wat er sindsdien is veranderd, 5 als de configuratie dat is
+bws history Spooler                               wie het opstarttype heeft gewijzigd, en wanneer
+bws tool fix printer --dry-run                    wat de snelle oplossing voor een vastgelopen printer zou doen
+ Elke opdracht, optie en afsluitcode +
+
+ +
+
+ Het binnenhalen +

Uitpakken en starten, of installeren

+

Windows 10 1809 of Windows Server 2019 en later, 64-bits. De archieven hebben geen installatieprogramma nodig en schrijven niets naar het register, en kijken vraagt geen beheerdersrechten. Iets wijzigen vraagt een sessie met verhoogde rechten, en beide helften zeggen dat in plaats van stil te mislukken - het venster biedt Restart as admin aan.

+
+ + + + + + + +
BestandWat het is
{{archive_window}}Het venster, één zelfstandig uitvoerbaar bestand - geen .NET om te installeren
{{archive_cli}}De opdrachtregel, één zelfstandig uitvoerbaar bestand, voor scripts en CI
{{archive_installer}}Het installatieprogramma: beide programma's voor elk account op de machine, het venster in het startmenu en bws in het PATH
+
+

De uitvoerbare bestanden dragen een Authenticode-handtekening, zodat Windows de uitgever noemt in plaats van te waarschuwen voor een onbekende.

+ +
+
diff --git a/site/pages/home/page.json b/site/pages/home/page.json index 724fbbd..e604c29 100644 --- a/site/pages/home/page.json +++ b/site/pages/home/page.json @@ -11,6 +11,12 @@ "fr": "", "es": "", "it": "", - "pt-br": "" + "pt-br": "", + "nl": "", + "cs": "", + "ro": "", + "tr": "", + "id": "", + "vi": "" } } diff --git a/site/pages/home/ro.html b/site/pages/home/ro.html new file mode 100644 index 0000000..1c5be63 --- /dev/null +++ b/site/pages/home/ro.html @@ -0,0 +1,200 @@ + + + + + + + +
+
+
+

Căutați în serviciile Windows, previzualizați fiecare modificare și vedeți ce a derivat de ieri

+

{{product}} este services.msc reconstruit pentru cei care administrează mașini Windows - o fereastră și o linie de comandă peste același motor. Puneți mașinii o întrebare în loc să derulați opt sute de rânduri. Vedeți ce va face o modificare înainte să apăsați orice. Și ceea ce services.msc nu a avut niciodată: înghețați fiecare serviciu într-un fișier și, peste o săptămână, întrebați ce s-a schimbat.

+ +
    +
  • Liber și gratuit, GPL-3.0
  • +
  • Un singur fișier sau un program de instalare
  • +
  • Nu cere drepturi de administrator pentru a privi
  • +
  • Nu comunică niciodată cu internetul
  • +
+
+
+ Fereastra cu cinci intrări alese și planul pentru pornirea lor afișat deasupra listei: cinci pași, o notă că două dintre ele sunt deja în acea stare, o linie bws start pentru fiecare intrare și butonul Start 5 entries. +
Intrări alese, un plan afișat înainte să se întâmple ceva și linia bws care cere exact același lucru. Programul vorbește engleza - fereastra citește un fișier de limbă așezat lângă ea, deci o traducere este posibilă fără recompilare.
+
+
+
+ + +
+
+ O jumătate de minut cu el +

Cum arată în uz

+

O sesiune reală, pe un Windows instalat în poloneză - numele afișate vin de la Windows, deci sunt în limba lui. Fereastra însăși vorbește engleza.

+
+ Patru intrări alese și planul pentru pornirea lor, o repornire forțată a serviciului Local Session Manager al cărei plan avertizează că mașina nu funcționează fără el și cere numele lui înainte ca butonul să funcționeze, întrebările de pornire de sub caseta de căutare goală și Print Spooler găsit tastând o parte din nume și pornit. +
Patru intrări alese și planul pentru pornirea lor, o repornire forțată care cere numele unui serviciu de care mașina are nevoie, întrebările de sub o casetă de căutare goală și Print Spooler găsit prin tastare și pornit.
+
+
+
+ Ecranul de deschidere: trei carduri cu numere despre această mașină - servicii care rulează, servicii setate să pornească automat care nu au pornit și servicii setate să pornească automat al căror fișier lipsește - și un buton Show the list. +
Se deschide cu câteva numere despre această mașină. Fiecare este o întrebare - faceți clic pe ea și întrebarea ajunge în caseta de căutare.
+
+
+ Lista serviciilor cu cele trei liste deasupra casetei de căutare, o casetă de căutare goală, butoanele de filtrare deschise pe rânduri pentru stare, tip de pornire, semnătură, neconcordanțe și declanșatoare, iar dedesubt lista. +
Butoanele de filtrare scriu în caseta de căutare, așa că ceea ce ați apăsat este o interogare pe care o puteți citi și edita.
+
+
+
+
+ +
+
+ De ce există +

services.msc aproape că nu s-a schimbat din Windows 2000

+

Administratorii petrec ore pe săptămână în el, lovindu-se de aceleași ziduri.

+
+
    +
  • Fără căutare. Singura navigare este saltul la prima literă a unui nume afișat.
  • +
  • Fără filtrare. Nu există nicio cale de a întreba arată-mi ce este setat să pornească automat și nu rulează.
  • +
  • Un singur rând pe rând. Repornirea a douăsprezece servicii înseamnă douăsprezece clicuri dreapta și douăsprezece așteptări.
  • +
  • "Stopping..." la nesfârșit, fără altă ieșire decât Task Manager și ghicitul procesului.
  • +
  • Fără istoric. Nimeni nu știe cine a setat acel tip de pornire pe Disabled, sau când.
  • +
  • Date ascunse. Procesul, declanșatoarele, privilegiile, descriptorul de securitate, cine a semnat fișierul executabil - toate cer sc.exe din memorie sau registrul.
  • +
  • Fără echivalent în linia de comandă. sc.exe are o sintaxă din anii nouăzeci, iar Get-Service care vine cu Windows, în Windows PowerShell 5.1, nu arată contul sub care rulează un serviciu, darămite descrierea lui. PowerShell 7 le arată pe amândouă și se instalează separat.
  • +
+
+

Celelalte instrumente rezolvă fiecare o parte

+

Process Hacker și System Informer arată o listă bogată și pot forța încheierea unui proces, dar nu au audit și nici linie de comandă. sc.exe și PsService pot face orice și nu vă spun nimic. Cmdleturile *-Service din PowerShell se pot automatiza și sunt superficiale.

+

Nimeni nu combină o listă în care se poate căuta, o previzualizare înainte de fiecare modificare și o evidență a ceea ce s-a schimbat în timp - iar evidența este motivul pentru care merită păstrat acest instrument pe o mașină după prima după-amiază.

+ Comparația completă +
+
+
+
+ +
+
+ Ce face +

O fereastră și o linie de comandă peste același motor

+
+

Întrebați, în loc să derulați

start:auto !status:running înseamnă ce ar trebui să fie pornit și nu este. Un singur limbaj, în caseta de căutare și în bws list --query, cu câmpurile oferite pe măsură ce tastați.

+

Arată planul înainte să se întâmple ceva

Fiecare oprire, pornire, repornire și schimbare a tipului de pornire este previzualizată împreună cu serviciile pe care le trage după ea, iar previzualizarea este ceea ce se execută.

+

Spune ce a derivat și cine a schimbat

bws snapshot create îngheață mașina într-un fișier, iar bws snapshot diff spune ce s-a schimbat de atunci, configurația separat de ceea ce doar a pornit sau s-a oprit. bws history spune, din jurnalul System, cine a schimbat un tip de pornire și cine a instalat un serviciu. Fereastra le face pe toate trei la Audit....

+

Remediază o problemă frecventă dintr-o apăsare

Fila Tools și bws tool fix repornesc serviciul din spatele unei imprimante care nu tipărește, al sunetului dispărut sau al unei căutări blocate, împreună cu ce depinde de el, prin același plan ca orice altceva.

+

Oprește un serviciu care nu vrea să se oprească

Cere mai întâi politicos și încheie procesul doar dacă asta eșuează, numind fiecare alt serviciu care trăiește în el.

+

Arată ce ascunde services.msc

Cine a semnat fișierul executabil și dacă Windows are încredere în el, declanșatoare, privilegii, descriptorul de securitate, procesul și memoria lui. Ca coloane și ca lucruri după care se poate căuta.

+

Spune când n-a putut citi ceva

Un câmp pe care nu l-a putut citi este raportat ca necitit, niciodată afișat ca gol. Un instantaneu făcut fără drepturi de administrator spune asta în interiorul fișierului.

+

Se potrivește în scripturi

--json la fiecare comandă, un cod de ieșire pentru fiecare final și 5 când o comparație găsește derivă.

+

Rulează dintr-un singur fișier, offline

Dezarhivați și rulați sau instalați pentru toată mașina. Fără .NET de instalat și nu comunică niciodată cu internetul. Citirea nu cere drepturi de administrator. GPL-3.0.

+
+
+
+ +
+
+ Ceea ce services.msc nu a făcut niciodată +

Ce s-a schimbat de ieri

+

Un instantaneu este întreaga mașină la un moment dat - fiecare serviciu și driver, cu tipul de pornire, contul, calea de lansare, hash-ul și semnatarul fișierului, dependențele, declanșatoarele, privilegiile și descriptorul de securitate. Este JSON cu un câmp pe rând, deci poate intra într-un depozit și git diff îl citește.

+
+
$ 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.
+
    +
  • Configurația și starea de rulare sunt raportate separat. Două instantanee făcute la o zi distanță diferă prin ce se întâmplă să ruleze și aproape nimic din asta nu este derivă - tipul de pornire care s-a schimbat este rândul de citit.
  • +
  • Ce nu s-a putut compara este listat, nu ascuns. Un câmp pe care un instantaneu nu l-a citit niciodată iese ca not compared, deci o comparație care spune nimic nu s-a schimbat înseamnă că nimic nu s-a schimbat în ceea ce vedeau ambele părți.
  • +
  • --exit-code se încheie cu 5 când configurația diferă, astfel încât o sarcină programată poate face un instantaneu la implementare și poate alerta pe cineva în prima noapte în care mașina derivă.
  • +
  • Două mașini, două fișiere. Faceți un instantaneu pe mediul de testare și unul pe producție și comparați-le oriunde.
  • +
+
+ Cum funcționează instantaneele și deriva +
+
+ +
+
+ Nimic nu se întâmplă fără plan +

Previzualizarea este execuția

+

Fiecare operație care scrie construiește mai întâi un plan, iar același plan este previzualizarea, cascada serviciilor dependente, refuzul înainte să apăsați orice, linia de comandă care cere același lucru și drumul înapoi după aceea.

+
+
$ 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.
+
    +
  • Rulați fără --dry-run și acestea sunt pașii, în această ordine, cu aceleași motive alături. Nu există o a doua cale de cod pentru execuția reală.
  • +
  • Ce cade odată cu el este în plan. Serviciile care s-ar defecta sunt pași de sine stătători, iar un plan care ar doborî ceva de care mașina are nevoie spune asta în avertismente.
  • +
  • Un refuz vine înaintea butonului. Un driver, un serviciu pentru care managerul nu acceptă o oprire, un proces pe care sistemul îl protejează - refuzat la construirea planului, cu motivul. Fereastra face butonul gri și spune alături de ce.
  • +
  • Oprirea forțată înseamnă doi pași, iar al doilea este condiționat. bws kill cere serviciului să se oprească și îi încheie procesul doar dacă asta nu funcționează, numind fiecare alt serviciu care trăiește în el.
  • +
+
+ Când un serviciu nu se oprește +
+
+ +
+
+ Două minute cu el +

Din linia de comandă

+

Același motor ca fereastra, pentru scripturi, sarcini programate și CI. Datele merg la ieșirea standard și tot restul la eroarea standard, deci bws list --json | jq funcționează, iar un avertisment nu ajunge niciodată în JSON-ul dumneavoastră.

+
bws list --query "start:auto !status:running"     ce ar trebui să fie pornit și nu este
+bws list --query "file:missing"                   servicii al căror fișier executabil a dispărut
+bws list --query "signed:no peruser:no"           nesemnate, fără copiile pe sesiune
+bws show Spooler                                  tot ce se știe despre o intrare
+bws stop Winmgmt --dry-run --dependents           ce ar doborî oprirea lui
+bws kill Spooler --dry-run                        ce ar lua cu sine încheierea procesului lui
+bws start-type Spooler manual --dry-run           ce ar face scoaterea lui din pornirea automată
+bws snapshot create before.json                   îngheață mașina înainte de o schimbare
+bws snapshot diff before.json --live --exit-code  ce s-a schimbat de atunci, 5 dacă s-a schimbat configurația
+bws history Spooler                               cine i-a schimbat tipul de pornire și când
+bws tool fix printer --dry-run                    ce ar face remedierea rapidă pentru o imprimantă blocată
+ Fiecare comandă, opțiune și cod de ieșire +
+
+ +
+
+ Obțineți-l +

Dezarhivați și rulați, sau instalați

+

Windows 10 1809 sau Windows Server 2019 și mai noi, pe 64 de biți. Arhivele nu au nevoie de program de instalare și nu scriu nimic în registru, iar privitul nu cere drepturi de administrator. Orice modificare cere o sesiune cu drepturi ridicate, iar ambele jumătăți spun asta în loc să eșueze în tăcere - fereastra oferă Restart as admin.

+
+ + + + + + + +
FișierCe este
{{archive_window}}Fereastra, un singur executabil independent - fără .NET de instalat
{{archive_cli}}Linia de comandă, un singur executabil independent, pentru scripturi și CI
{{archive_installer}}Programul de instalare: ambele programe pentru fiecare cont de pe mașină, fereastra în meniul Start și bws în PATH
+
+

Executabilele poartă o semnătură Authenticode, așa că Windows numește editorul în loc să avertizeze despre unul necunoscut.

+ +
+
diff --git a/site/pages/home/ru.html b/site/pages/home/ru.html new file mode 100644 index 0000000..c900d5d --- /dev/null +++ b/site/pages/home/ru.html @@ -0,0 +1,200 @@ + + + + + + + +
+
+
+

Ищите среди служб Windows, просматривайте каждое изменение заранее и смотрите, что ушло в дрейф со вчерашнего дня

+

{{product}} - это services.msc, перестроенный для тех, кто администрирует машины с Windows: окно и командная строка на одном движке. Задавайте машине вопрос вместо того, чтобы прокручивать восемьсот строк. Смотрите, что сделает изменение, прежде чем что-либо нажмёте. И то, чего в services.msc никогда не было: заморозьте каждую службу в файл и через неделю спросите, что изменилось.

+ +
    +
  • Свободный и бесплатный, GPL-3.0
  • +
  • Один файл или установщик
  • +
  • Для просмотра не нужны права администратора
  • +
  • Никогда не обращается к интернету
  • +
+
+
+ Окно с пятью выбранными записями и планом их запуска над списком: пять шагов, примечание, что две из них уже в этом состоянии, строка bws start для каждой записи и кнопка Start 5 entries. +
Выбранные записи, план, показанный до того, как что-либо произойдёт, и строка bws, которая просит ровно то же самое. Программа говорит по-английски: окно читает лежащий рядом файл языка, так что перевод возможен без пересборки.
+
+
+
+ + +
+
+ Полминуты с ним +

Как это выглядит в работе

+

Настоящий сеанс на Windows, установленной на польском: отображаемые имена приходят из Windows, поэтому они на её языке. Само окно говорит по-английски.

+
+ Четыре выбранные записи и план их запуска, принудительный перезапуск Local Session Manager, план которого предупреждает, что без неё машина не работает, и просит ввести её имя, прежде чем кнопка заработает, вопросы для начала под пустым полем поиска и Print Spooler, найденный вводом части имени и запущенный. +
Четыре выбранные записи и план их запуска, принудительный перезапуск, который просит имя нужной машине службы, вопросы под пустым полем поиска и Print Spooler, найденный вводом и запущенный.
+
+
+
+ Начальный экран: три карточки с числами об этой машине - работающие службы, службы с автозапуском, которые не поднялись, и службы с автозапуском, чей файл пропал - и кнопка Show the list. +
Он открывается несколькими числами об этой машине. Каждое из них - вопрос: щёлкните, и вопрос попадёт в поле поиска.
+
+
+ Список служб с тремя списками над полем поиска, пустое поле поиска, кнопки фильтров, раскрытые рядами для состояния, типа запуска, подписи, расхождений и триггеров, и список ниже. +
Кнопки фильтров пишут в поле поиска, так что то, что вы нажали, - это запрос, который можно читать и править.
+
+
+
+
+ +
+
+ Зачем это нужно +

services.msc почти не менялся со времён Windows 2000

+

Администраторы проводят в нём часы каждую неделю и упираются в одни и те же стены.

+
+
    +
  • Нет поиска. Единственная навигация - прыжок на первую букву отображаемого имени.
  • +
  • Нет фильтрации. Нельзя спросить покажи, что настроено на автозапуск и не работает.
  • +
  • По одной строке за раз. Перезапуск двенадцати служб - это двенадцать щелчков правой кнопкой и двенадцать ожиданий.
  • +
  • «Stopping...» навсегда, без другого выхода, кроме Диспетчера задач и угадывания процесса.
  • +
  • Нет истории. Никто не знает, кто поставил этот тип запуска в Disabled и когда.
  • +
  • Скрытые данные. Процесс, триггеры, привилегии, дескриптор безопасности, кто подписал исполняемый файл - для всего этого нужен sc.exe по памяти или реестр.
  • +
  • Нет равноценной командной строки. У sc.exe синтаксис из девяностых, а Get-Service, поставляемый с Windows, в Windows PowerShell 5.1 не показывает, от какой учётной записи работает служба, не говоря уже об описании. PowerShell 7 показывает и то и другое, и ставится отдельно.
  • +
+
+

Другие инструменты закрывают каждый свою часть

+

Process Hacker и System Informer показывают богатый список и умеют принудительно завершать процессы, но в них нет аудита и командной строки. sc.exe и PsService умеют всё и ничего вам не говорят. Командлеты *-Service в PowerShell пригодны для скриптов и поверхностны.

+

Никто не соединяет список с поиском, предпросмотр перед каждым изменением и запись того, что менялось со временем, - а эта запись и есть причина оставить этот инструмент на машине после первого же дня.

+ Полное сравнение +
+
+
+
+ +
+
+ Что он делает +

Окно и командная строка на одном движке

+
+

Спрашивайте, а не прокручивайте

start:auto !status:running - это что должно работать и не работает. Один язык, в поле поиска и в bws list --query, с подсказкой полей по мере ввода.

+

Показывайте план до того, как что-то произойдёт

Каждая остановка, запуск, перезапуск и смена типа запуска просматривается заранее вместе со службами, которые она тянет за собой, и предпросмотр - это то, что выполняется.

+

Говорите, что ушло в дрейф и кто это изменил

bws snapshot create замораживает машину в файл, а bws snapshot diff говорит, что изменилось с тех пор, отделяя конфигурацию от того, что просто запустилось или остановилось. bws history по журналу System говорит, кто изменил тип запуска и кто установил службу. Окно делает всё три в разделе Audit....

+

Чините частую проблему одним нажатием

Вкладка Tools и bws tool fix перезапускают службу, стоящую за не печатающим принтером, пропавшим звуком или зависшим поиском, вместе с тем, что от неё зависит, по тому же плану, что и всё остальное.

+

Останавливайте службу, которая не хочет останавливаться

Сначала просит вежливо и завершает процесс, только если это не удалось, называя каждую другую службу, которая в нём живёт.

+

Показывайте то, что скрывает services.msc

Кто подписал исполняемый файл и доверяет ли ему Windows, триггеры, привилегии, дескриптор безопасности, процесс и его память. В виде столбцов и в виде того, по чему можно искать.

+

Говорите, когда что-то не удалось прочитать

Поле, которое не удалось прочитать, сообщается как непрочитанное и никогда не показывается пустым. Снимок, сделанный без прав администратора, сообщает об этом внутри файла.

+

Вписывайтесь в скрипты

--json у каждой команды, код завершения для каждого исхода и 5, когда сравнение находит дрейф.

+

Работайте из одного файла, автономно

Распакуйте и запустите или установите на всю машину. Ставить .NET не нужно, и он никогда не обращается к интернету. Для чтения права администратора не нужны. GPL-3.0.

+
+
+
+ +
+
+ То, чего services.msc никогда не делал +

Что изменилось со вчерашнего дня

+

Снимок - это вся машина в один момент: каждая служба и драйвер с типом запуска, учётной записью, путём запуска, хешем и подписантом файла, зависимостями, триггерами, привилегиями и дескриптором безопасности. Это JSON с одним полем на строку, поэтому он помещается в репозиторий, и git diff его читает.

+
+
$ 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.
+
    +
  • Конфигурация и состояние выполнения сообщаются раздельно. Два снимка с разницей в день различаются тем, что случайно работает, и почти ничто из этого не дрейф - строка, которую стоит читать, это изменившийся тип запуска.
  • +
  • То, что нельзя было сравнить, перечислено, а не скрыто. Поле, которое один снимок никогда не читал, выходит как not compared, поэтому сравнение, говорящее ничего не изменилось, означает, что ничего не изменилось в том, что видели обе стороны.
  • +
  • --exit-code завершается кодом 5, когда конфигурация отличается, так что запланированная задача может сделать снимок при развёртывании и позвать кого-нибудь в первую же ночь, когда машина ушла в дрейф.
  • +
  • Две машины, два файла. Сделайте снимок на тестовой среде и один на рабочей и сравните их где угодно.
  • +
+
+ Как работают снимки и дрейф +
+
+ +
+
+ Ничего не происходит без плана +

Предпросмотр - это и есть выполнение

+

Каждая операция, которая записывает, сначала строит план, и этот же план - предпросмотр, каскад зависимых служб, отказ до того, как вы что-либо нажмёте, командная строка, которая просит то же самое, и дорога назад потом.

+
+
$ 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, и это те самые шаги, в том же порядке, с теми же причинами рядом. Второго пути в коде для настоящего выполнения нет.
  • +
  • То, что падает вместе с ним, есть в плане. Службы, которые сломались бы, - отдельные шаги, а план, который обрушил бы то, что нужно машине, говорит об этом в предупреждениях.
  • +
  • Отказ приходит раньше кнопки. Драйвер, служба, остановку которой диспетчер не принимает, процесс, который система защищает - отказ при построении плана, с причиной. Окно делает кнопку серой и рядом говорит почему.
  • +
  • Принудительная остановка - это два шага, и второй условный. bws kill просит службу остановиться и завершает её процесс, только если это не сработало, называя каждую другую службу, которая в нём живёт.
  • +
+
+ Когда служба не останавливается +
+
+ +
+
+ Две минуты с ним +

Из командной строки

+

Тот же движок, что и в окне, для скриптов, запланированных задач и CI. Данные идут в стандартный вывод, а всё остальное в стандартный поток ошибок, поэтому bws list --json | jq работает, а предупреждение никогда не попадёт в ваш JSON.

+
bws list --query "start:auto !status:running"     что должно работать и не работает
+bws list --query "file:missing"                   службы, чей исполняемый файл пропал
+bws list --query "signed:no peruser:no"           неподписанные, без копий для каждого сеанса
+bws show Spooler                                  всё, что известно об одной записи
+bws stop Winmgmt --dry-run --dependents           что потянет за собой остановка
+bws kill Spooler --dry-run                        что унесёт с собой завершение его процесса
+bws start-type Spooler manual --dry-run           что даст снятие его с автозапуска
+bws snapshot create before.json                   заморозить машину перед изменением
+bws snapshot diff before.json --live --exit-code  что изменилось с тех пор, 5, если изменилась конфигурация
+bws history Spooler                               кто изменил его тип запуска и когда
+bws tool fix printer --dry-run                    что сделало бы быстрое исправление зависшего принтера
+ Каждая команда, параметр и код завершения +
+
+ +
+
+ Получите его +

Распакуйте и запустите или установите

+

Windows 10 1809 или Windows Server 2019 и новее, 64-разрядная. Архивам не нужен установщик, и они ничего не пишут в реестр, а для просмотра не нужны права администратора. Для любого изменения нужен сеанс с повышенными правами, и обе половины говорят об этом, а не молча отказывают - окно предлагает Restart as admin.

+
+ + + + + + + +
ФайлЧто это
{{archive_window}}Окно, один автономный исполняемый файл - ставить .NET не нужно
{{archive_cli}}Командная строка, один автономный исполняемый файл, для скриптов и CI
{{archive_installer}}Установщик: обе программы для каждой учётной записи на машине, окно в меню «Пуск» и bws в PATH
+
+

Исполняемые файлы несут подпись Authenticode, поэтому Windows называет издателя, а не предупреждает о неизвестном.

+ +
+
diff --git a/site/pages/home/tr.html b/site/pages/home/tr.html new file mode 100644 index 0000000..6d6d8ad --- /dev/null +++ b/site/pages/home/tr.html @@ -0,0 +1,200 @@ + + + + + + + +
+
+
+

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

+

{{product}}, 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
{{archive_window}}Pencere, tek bir bağımsız yürütülebilir dosya - kurulacak .NET yok
{{archive_cli}}Komut satırı, tek bir bağımsız yürütülebilir dosya; betikler ve CI için
{{archive_installer}}Yü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.

+ +
+
diff --git a/site/pages/home/uk.html b/site/pages/home/uk.html new file mode 100644 index 0000000..13194f9 --- /dev/null +++ b/site/pages/home/uk.html @@ -0,0 +1,200 @@ + + + + + + + +
+
+
+

Шукайте серед служб Windows, переглядайте кожну зміну заздалегідь і дивіться, що пішло в дрейф від учорашнього дня

+

{{product}} - це services.msc, перебудований для тих, хто адмініструє машини з Windows: вікно й командний рядок на одному рушії. Ставте машині запитання замість прокручування восьмисот рядків. Дивіться, що зробить зміна, перш ніж щось натиснете. І те, чого в services.msc ніколи не було: заморозьте кожну службу у файл і за тиждень спитайте, що змінилося.

+ +
    +
  • Безкоштовний, з відкритим кодом, GPL-3.0
  • +
  • Один файл або інсталятор
  • +
  • Для перегляду права адміністратора не потрібні
  • +
  • Ніколи не звертається до інтернету
  • +
+
+
+ Вікно з п'ятьма вибраними записами та планом їх запуску над списком: п'ять кроків, примітка, що два з них уже в цьому стані, рядок bws start для кожного запису й кнопка Start 5 entries. +
Вибрані записи, план, показаний до того, як щось станеться, і рядок bws, що просить рівно те саме. Програма говорить англійською: вікно читає файл мови, що лежить поруч, тож переклад можливий без перебудови.
+
+
+
+ + +
+
+ Півхвилини з ним +

Як це виглядає в роботі

+

Справжній сеанс на Windows, встановленій польською: відображувані імена приходять із Windows, тому вони її мовою. Саме вікно говорить англійською.

+
+ Чотири вибрані записи та план їх запуску, примусовий перезапуск Local Session Manager, план якого попереджає, що без неї машина не працює, і просить ввести її ім'я, перш ніж кнопка запрацює, запитання для початку під порожнім полем пошуку та Print Spooler, знайдений уведенням частини імені й запущений. +
Чотири вибрані записи та план їх запуску, примусовий перезапуск, що просить ім'я потрібної машині служби, запитання під порожнім полем пошуку та Print Spooler, знайдений уведенням і запущений.
+
+
+
+ Початковий екран: три картки з числами про цю машину - працюючі служби, служби з автозапуском, що не піднялися, та служби з автозапуском, чий файл зник - і кнопка Show the list. +
Він відкривається кількома числами про цю машину. Кожне з них - запитання: клацніть, і запитання потрапить у поле пошуку.
+
+
+ Список служб із трьома списками над полем пошуку, порожнє поле пошуку, кнопки фільтрів, розкриті рядами для стану, типу запуску, підпису, розбіжностей і тригерів, та список нижче. +
Кнопки фільтрів пишуть у поле пошуку, тож те, що ви натиснули, - це запит, який можна читати й редагувати.
+
+
+
+
+ +
+
+ Навіщо це потрібно +

services.msc майже не змінювався від часів Windows 2000

+

Адміністратори проводять у ньому години щотижня й упираються в одні й ті самі стіни.

+
+
    +
  • Немає пошуку. Єдина навігація - стрибок на першу літеру відображуваного імені.
  • +
  • Немає фільтрації. Не можна спитати покажи, що налаштовано на автозапуск і не працює.
  • +
  • По одному рядку за раз. Перезапуск дванадцяти служб - це дванадцять клацань правою кнопкою й дванадцять очікувань.
  • +
  • «Stopping...» назавжди, без іншого виходу, окрім Диспетчера завдань і вгадування процесу.
  • +
  • Немає історії. Ніхто не знає, хто поставив цей тип запуску в Disabled і коли.
  • +
  • Приховані дані. Процес, тригери, привілеї, дескриптор безпеки, хто підписав виконуваний файл - для всього цього потрібен sc.exe з пам'яті або реєстр.
  • +
  • Немає рівноцінного командного рядка. sc.exe має синтаксис із дев'яностих, а Get-Service, що постачається з Windows, у Windows PowerShell 5.1 не показує, від якого облікового запису працює служба, не кажучи вже про опис. PowerShell 7 показує і те, й інше, і встановлюється окремо.
  • +
+
+

Інші інструменти закривають кожен свою частину

+

Process Hacker і System Informer показують багатий список і вміють примусово завершувати процеси, але в них немає аудиту й командного рядка. sc.exe і PsService уміють усе й нічого вам не кажуть. Командлети *-Service у PowerShell придатні для скриптів і поверхневі.

+

Ніхто не поєднує список із пошуком, попередній перегляд перед кожною зміною та запис того, що змінювалося з часом - а цей запис і є причиною залишити цей інструмент на машині після першого ж дня.

+ Повне порівняння +
+
+
+
+ +
+
+ Що він робить +

Вікно й командний рядок на одному рушії

+
+

Питайте, а не прокручуйте

start:auto !status:running - це що має працювати й не працює. Одна мова, у полі пошуку й у bws list --query, з підказкою полів під час уведення.

+

Показуйте план, перш ніж щось станеться

Кожна зупинка, запуск, перезапуск і зміна типу запуску переглядається заздалегідь разом зі службами, які вона тягне за собою, а попередній перегляд - це те, що виконується.

+

Кажіть, що пішло в дрейф і хто це змінив

bws snapshot create заморожує машину у файл, а bws snapshot diff каже, що змінилося відтоді, відокремлюючи конфігурацію від того, що просто запустилося чи зупинилося. bws history за журналом System каже, хто змінив тип запуску й хто встановив службу. Вікно робить усе три в розділі Audit....

+

Лагодьте поширену проблему одним натисканням

Вкладка Tools і bws tool fix перезапускають службу, що стоїть за принтером, який не друкує, зниклим звуком чи завислим пошуком, разом із тим, що від неї залежить, за тим самим планом, що й усе інше.

+

Зупиняйте службу, яка не хоче зупинятися

Спершу просить чемно й завершує процес, лише якщо це не вдалося, називаючи кожну іншу службу, що в ньому живе.

+

Показуйте те, що приховує services.msc

Хто підписав виконуваний файл і чи довіряє йому Windows, тригери, привілеї, дескриптор безпеки, процес і його пам'ять. У вигляді стовпців і у вигляді того, за чим можна шукати.

+

Кажіть, коли щось не вдалося прочитати

Поле, яке не вдалося прочитати, повідомляється як непрочитане й ніколи не показується порожнім. Знімок, зроблений без прав адміністратора, повідомляє про це всередині файлу.

+

Вписуйтеся в скрипти

--json у кожної команди, код завершення для кожного закінчення й 5, коли порівняння знаходить дрейф.

+

Працюйте з одного файлу, автономно

Розпакуйте й запустіть або встановіть на всю машину. Ставити .NET не потрібно, і він ніколи не звертається до інтернету. Для читання права адміністратора не потрібні. GPL-3.0.

+
+
+
+ +
+
+ Те, чого services.msc ніколи не робив +

Що змінилося від учорашнього дня

+

Знімок - це вся машина в один момент: кожна служба й драйвер із типом запуску, обліковим записом, шляхом запуску, хешем і підписантом файлу, залежностями, тригерами, привілеями й дескриптором безпеки. Це JSON з одним полем на рядок, тож він потрапляє в репозиторій, і git diff його читає.

+
+
$ 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.
+
    +
  • Конфігурація й стан виконання повідомляються окремо. Два знімки з різницею в день відрізняються тим, що випадково працює, і майже ніщо з цього не дрейф - рядок, який варто читати, це змінений тип запуску.
  • +
  • Те, що не вдалося порівняти, перелічено, а не приховано. Поле, якого один знімок ніколи не читав, виходить як not compared, тож порівняння, що каже нічого не змінилося, означає, що нічого не змінилося в тому, що бачили обидві сторони.
  • +
  • --exit-code завершується кодом 5, коли конфігурація відрізняється, тож запланована задача може зробити знімок під час розгортання й покликати когось у першу ж ніч, коли машина пішла в дрейф.
  • +
  • Дві машини, два файли. Зробіть знімок на тестовому середовищі й один на робочому та порівняйте їх будь-де.
  • +
+
+ Як працюють знімки та дрейф +
+
+ +
+
+ Нічого не відбувається без плану +

Попередній перегляд - це і є виконання

+

Кожна операція, що записує, спершу будує план, і цей самий план - це попередній перегляд, каскад залежних служб, відмова до того, як ви щось натиснете, командний рядок, що просить те саме, і дорога назад потім.

+
+
$ 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, і це ті самі кроки, у тому самому порядку, з тими самими причинами поруч. Другого шляху в коді для справжнього виконання немає.
  • +
  • Те, що падає разом із ним, є в плані. Служби, які зламалися б, - окремі кроки, а план, що обвалив би потрібне машині, говорить про це в попередженнях.
  • +
  • Відмова приходить раніше за кнопку. Драйвер, служба, зупинку якої диспетчер не приймає, процес, який система захищає - відмова під час побудови плану, з причиною. Вікно робить кнопку сірою й поруч каже чому.
  • +
  • Примусова зупинка - це два кроки, і другий умовний. bws kill просить службу зупинитися й завершує її процес, лише якщо це не спрацювало, називаючи кожну іншу службу, що в ньому живе.
  • +
+
+ Коли служба не зупиняється +
+
+ +
+
+ Дві хвилини з ним +

З командного рядка

+

Той самий рушій, що й у вікні, для скриптів, запланованих задач і CI. Дані йдуть у стандартний вивід, а все інше в стандартний потік помилок, тому bws list --json | jq працює, а попередження ніколи не потрапить у ваш JSON.

+
bws list --query "start:auto !status:running"     що має працювати й не працює
+bws list --query "file:missing"                   служби, чий виконуваний файл зник
+bws list --query "signed:no peruser:no"           непідписані, без копій для кожного сеансу
+bws show Spooler                                  усе, що відомо про один запис
+bws stop Winmgmt --dry-run --dependents           що потягне за собою зупинка
+bws kill Spooler --dry-run                        що забере з собою завершення його процесу
+bws start-type Spooler manual --dry-run           що дасть зняття його з автозапуску
+bws snapshot create before.json                   заморозити машину перед зміною
+bws snapshot diff before.json --live --exit-code  що змінилося відтоді, 5, якщо змінилася конфігурація
+bws history Spooler                               хто змінив його тип запуску і коли
+bws tool fix printer --dry-run                    що зробило б швидке виправлення завислого принтера
+ Кожна команда, параметр і код завершення +
+
+ +
+
+ Отримайте його +

Розпакуйте й запустіть або встановіть

+

Windows 10 1809 або Windows Server 2019 і новіші, 64-розрядні. Архівам не потрібен інсталятор, і вони нічого не пишуть у реєстр, а для перегляду права адміністратора не потрібні. Для будь-якої зміни потрібен сеанс із підвищеними правами, і обидві половини кажуть про це, а не мовчки відмовляють - вікно пропонує Restart as admin.

+
+ + + + + + + +
ФайлЩо це
{{archive_window}}Вікно, один автономний виконуваний файл - ставити .NET не потрібно
{{archive_cli}}Командний рядок, один автономний виконуваний файл, для скриптів і CI
{{archive_installer}}Інсталятор: обидві програми для кожного облікового запису на машині, вікно в меню «Пуск» і bws у PATH
+
+

Виконувані файли несуть підпис Authenticode, тому Windows називає видавця, а не попереджає про невідомого.

+ +
+
diff --git a/site/pages/home/vi.html b/site/pages/home/vi.html new file mode 100644 index 0000000..6274778 --- /dev/null +++ b/site/pages/home/vi.html @@ -0,0 +1,200 @@ + + + + + + + +
+
+
+

Tìm trong các dịch vụ Windows, xem trước mọi thay đổi và biết điều gì đã lệch kể từ hôm qua

+

{{product}} là services.msc được xây dựng lại cho những người quản trị máy Windows - một cửa sổ và một dòng lệnh trên cùng một lõi. Hãy đặt câu hỏi cho máy thay vì cuộn qua tám trăm dòng. Xem một thay đổi sẽ làm gì trước khi bạn nhấn bất cứ thứ gì. Và phần mà services.msc chưa bao giờ có: đóng băng mọi dịch vụ vào một tệp, rồi một tuần sau hỏi điều gì đã thay đổi.

+ +
    +
  • Miễn phí và mã nguồn mở, GPL-3.0
  • +
  • Một tệp, hoặc một trình cài đặt
  • +
  • Không cần quyền quản trị để xem
  • +
  • Không bao giờ kết nối với internet
  • +
+
+
+ Cửa sổ với năm mục được chọn và kế hoạch khởi động chúng hiển thị phía trên danh sách: năm bước, một ghi chú rằng hai trong số đó đã ở trạng thái ấy, một dòng bws start cho mỗi mục và nút Start 5 entries. +
Các mục được chọn, một kế hoạch hiển thị trước khi có bất cứ điều gì xảy ra, và dòng bws yêu cầu chính xác điều tương tự. Chương trình nói tiếng Anh - cửa sổ đọc một tệp ngôn ngữ đặt bên cạnh nó, nên có thể dịch mà không cần biên dịch lại.
+
+
+
+ + +
+
+ Nửa phút cùng nó +

Nó trông ra sao khi dùng

+

Một phiên thật, trên Windows cài bằng tiếng Ba Lan - tên hiển thị đến từ Windows, nên bằng ngôn ngữ của nó. Bản thân cửa sổ nói tiếng Anh.

+
+ Bốn mục được chọn và kế hoạch khởi động chúng, một lần khởi động lại cưỡng bức Local Session Manager mà kế hoạch cảnh báo rằng máy không hoạt động nếu thiếu nó và yêu cầu nhập tên của nó trước khi nút hoạt động, các câu hỏi gợi ý bên dưới ô tìm kiếm trống, và Print Spooler được tìm thấy bằng cách gõ một phần tên rồi khởi động. +
Bốn mục được chọn và kế hoạch khởi động chúng, một lần khởi động lại cưỡng bức yêu cầu nhập tên của dịch vụ mà máy cần, các câu hỏi bên dưới ô tìm kiếm trống, và Print Spooler được tìm thấy khi gõ rồi khởi động.
+
+
+
+ Màn hình mở đầu: ba thẻ con số về máy này - dịch vụ đang chạy, dịch vụ đặt tự khởi động nhưng chưa lên, và dịch vụ đặt tự khởi động nhưng tệp của nó đã mất - và một nút Show the list. +
Nó mở ra với vài con số về máy này. Mỗi con số là một câu hỏi - nhấp vào, và câu hỏi đi vào ô tìm kiếm.
+
+
+ Danh sách dịch vụ với ba danh sách phía trên ô tìm kiếm, một ô tìm kiếm trống, các nút lọc mở thành từng hàng cho trạng thái, kiểu khởi động, chữ ký, điểm không khớp và trình kích hoạt, và danh sách bên dưới. +
Các nút lọc ghi vào ô tìm kiếm, nên thứ bạn đã nhấp là một truy vấn mà bạn có thể đọc và sửa.
+
+
+
+
+ +
+
+ Vì sao nó tồn tại +

services.msc hầu như không thay đổi kể từ Windows 2000

+

Quản trị viên mất hàng giờ mỗi tuần trong đó và va vào cùng những bức tường.

+
+
    +
  • Không có tìm kiếm. Cách điều hướng duy nhất là nhảy tới chữ cái đầu của một tên hiển thị.
  • +
  • Không có bộ lọc. Không có cách nào để hỏi cho tôi xem những gì được đặt tự khởi động mà không chạy.
  • +
  • Mỗi lần một dòng. Khởi động lại mười hai dịch vụ là mười hai lần nhấp chuột phải và mười hai lần chờ.
  • +
  • "Stopping..." mãi mãi, không có lối thoát nào ngoài Task Manager và đoán tiến trình.
  • +
  • Không có lịch sử. Không ai biết ai đã đặt kiểu khởi động đó thành Disabled, hay khi nào.
  • +
  • Dữ liệu bị ẩn. Tiến trình, trình kích hoạt, đặc quyền, bộ mô tả bảo mật, ai đã ký tệp thực thi - tất cả đều cần sc.exe gõ theo trí nhớ, hoặc registry.
  • +
  • Không có tương đương trên dòng lệnh. sc.exe có cú pháp từ thập niên chín mươi, và Get-Service đi kèm Windows, trong Windows PowerShell 5.1, không hiển thị tài khoản mà dịch vụ chạy, nói gì đến mô tả. PowerShell 7 hiển thị cả hai và được cài riêng.
  • +
+
+

Các công cụ khác mỗi cái sửa một phần

+

Process Hacker và System Informer hiển thị một danh sách phong phú và có thể buộc kết thúc tiến trình, nhưng không có kiểm toán và không có dòng lệnh. sc.exe và PsService có thể làm mọi thứ và không cho bạn biết gì. Các cmdlet *-Service của PowerShell viết script được và nông cạn.

+

Không ai kết hợp một danh sách có thể tìm kiếm, một bản xem trước trước mỗi thay đổi, và một bản ghi về những gì đã thay đổi theo thời gian - và bản ghi đó là lý do để giữ công cụ này trên máy sau buổi chiều đầu tiên.

+ So sánh đầy đủ +
+
+
+
+ +
+
+ Nó làm gì +

Một cửa sổ và một dòng lệnh trên cùng một lõi

+
+

Hỏi thay vì cuộn

start:auto !status:running nghĩa là những gì lẽ ra phải chạy mà không chạy. Một ngôn ngữ, trong ô tìm kiếm và trong bws list --query, với các trường được gợi ý khi bạn gõ.

+

Cho xem kế hoạch trước khi có gì xảy ra

Mỗi lần dừng, khởi động, khởi động lại và đổi kiểu khởi động đều được xem trước cùng với các dịch vụ bị kéo theo, và bản xem trước chính là thứ sẽ chạy.

+

Cho biết điều gì đã lệch, và ai đã thay đổi

bws snapshot create đóng băng máy vào một tệp, và bws snapshot diff cho biết điều gì đã thay đổi từ đó, cấu hình tách riêng khỏi những gì chỉ vừa khởi động hoặc dừng. bws history cho biết, từ nhật ký System, ai đã đổi kiểu khởi động và ai đã cài một dịch vụ. Cửa sổ làm cả ba dưới Audit....

+

Sửa một sự cố phổ biến chỉ bằng một lần nhấn

Thẻ Tools và bws tool fix khởi động lại dịch vụ đằng sau máy in không in, âm thanh biến mất hoặc tìm kiếm bị treo, cùng với những gì phụ thuộc vào nó, qua cùng một kế hoạch như mọi thứ khác.

+

Dừng một dịch vụ không chịu dừng

Nó hỏi lịch sự trước và chỉ kết thúc tiến trình nếu điều đó thất bại, nêu tên mọi dịch vụ khác sống trong đó.

+

Cho xem những gì services.msc giấu

Ai đã ký tệp thực thi và Windows có tin nó không, trình kích hoạt, đặc quyền, bộ mô tả bảo mật, tiến trình và bộ nhớ của nó. Dưới dạng cột, và dưới dạng thứ để tìm kiếm.

+

Nói khi không đọc được điều gì

Một trường không đọc được sẽ được báo là chưa đọc, không bao giờ hiển thị là trống. Một bản chụp lấy khi không có quyền quản trị nói điều đó ngay trong tệp.

+

Khớp với script

--json ở mọi lệnh, một mã thoát cho mọi kết cục, và 5 khi một lần so sánh phát hiện sai lệch.

+

Chạy từ một tệp, ngoại tuyến

Giải nén và chạy, hoặc cài cho cả máy. Không có .NET để cài, và nó không bao giờ kết nối với internet. Đọc không cần quyền quản trị. GPL-3.0.

+
+
+
+ +
+
+ Phần mà services.msc chưa bao giờ làm +

Điều gì đã thay đổi kể từ hôm qua

+

Một bản chụp là cả máy tại một thời điểm - mọi dịch vụ và trình điều khiển, với kiểu khởi động, tài khoản, đường dẫn khởi chạy, mã băm và người ký của tệp, các phụ thuộc, trình kích hoạt, đặc quyền và bộ mô tả bảo mật. Nó là JSON với một trường mỗi dòng, nên có thể đưa vào kho mã và git diff đọc được nó.

+
+
$ 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.
+
    +
  • Cấu hình và trạng thái chạy được báo riêng. Hai bản chụp cách nhau một ngày khác nhau ở những gì tình cờ đang chạy và hầu như không có gì trong đó là sai lệch - kiểu khởi động đã thay đổi mới là dòng cần đọc.
  • +
  • Những gì không thể so sánh được liệt kê, không bị giấu. Một trường mà một bản chụp chưa bao giờ đọc sẽ hiện ra là not compared, nên một lần so sánh nói không có gì thay đổi nghĩa là không có gì thay đổi trong những gì cả hai phía đều thấy được.
  • +
  • --exit-code kết thúc bằng 5 khi cấu hình khác nhau, để một tác vụ theo lịch có thể chụp lúc triển khai và gọi ai đó vào đêm đầu tiên máy bị lệch.
  • +
  • Hai máy, hai tệp. Chụp một bản trên môi trường thử nghiệm và một bản trên môi trường sản xuất rồi so sánh chúng ở bất cứ đâu.
  • +
+
+ Bản chụp và sai lệch hoạt động ra sao +
+
+ +
+
+ Không có gì xảy ra mà không có kế hoạch +

Bản xem trước chính là việc thực thi

+

Mọi thao tác ghi đều dựng một kế hoạch trước, và chính kế hoạch ấy là bản xem trước, chuỗi các dịch vụ phụ thuộc, lời từ chối trước khi bạn nhấn bất cứ thứ gì, dòng lệnh yêu cầu điều tương tự, và đường quay lại sau đó.

+
+
$ 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.
+
    +
  • Chạy không có --dry-run và đây là các bước, theo thứ tự đó, với cùng những lý do bên cạnh. Không có đường mã thứ hai cho việc thực thi thật.
  • +
  • Những gì bị kéo theo đều nằm trong kế hoạch. Các dịch vụ sẽ hỏng là những bước riêng, và một kế hoạch sẽ hạ gục thứ mà máy cần sẽ nói điều đó trong phần cảnh báo.
  • +
  • Lời từ chối đến trước nút bấm. Một trình điều khiển, một dịch vụ mà trình quản lý không chấp nhận lệnh dừng, một tiến trình mà hệ thống bảo vệ - bị từ chối khi kế hoạch được dựng, kèm lý do. Cửa sổ làm xám nút và nói lý do ngay bên cạnh.
  • +
  • Dừng cưỡng bức gồm hai bước, và bước thứ hai có điều kiện. bws kill yêu cầu dịch vụ dừng và chỉ kết thúc tiến trình của nó nếu điều đó không có tác dụng, nêu tên mọi dịch vụ khác sống trong đó.
  • +
+
+ Khi một dịch vụ không chịu dừng +
+
+ +
+
+ Hai phút cùng nó +

Từ dòng lệnh

+

Cùng lõi với cửa sổ, cho script, tác vụ theo lịch và CI. Dữ liệu đi tới đầu ra chuẩn và mọi thứ khác đi tới lỗi chuẩn, nên bws list --json | jq hoạt động và một cảnh báo không bao giờ rơi vào JSON của bạn.

+
bws list --query "start:auto !status:running"     những gì lẽ ra phải chạy mà không chạy
+bws list --query "file:missing"                   các dịch vụ có tệp thực thi đã mất
+bws list --query "signed:no peruser:no"           chưa ký, không kể các bản sao theo phiên
+bws show Spooler                                  mọi thứ đã biết về một mục
+bws stop Winmgmt --dry-run --dependents           việc dừng nó sẽ kéo theo những gì
+bws kill Spooler --dry-run                        việc kết thúc tiến trình của nó sẽ cuốn theo những gì
+bws start-type Spooler manual --dry-run           việc bỏ nó khỏi chế độ tự động sẽ gây ra gì
+bws snapshot create before.json                   đóng băng máy trước một thay đổi
+bws snapshot diff before.json --live --exit-code  điều gì đã thay đổi từ đó, 5 nếu cấu hình đã đổi
+bws history Spooler                               ai đã đổi kiểu khởi động của nó, và khi nào
+bws tool fix printer --dry-run                    cách sửa nhanh cho máy in bị treo sẽ làm gì
+ Mọi lệnh, tùy chọn và mã thoát +
+
+ +
+
+ Lấy nó +

Giải nén và chạy, hoặc cài đặt

+

Windows 10 1809 hoặc Windows Server 2019 trở lên, 64-bit. Các bản nén không cần trình cài đặt và không ghi gì vào registry, và việc xem không cần quyền quản trị. Thay đổi bất cứ thứ gì cần một phiên nâng quyền, và cả hai nửa đều nói điều đó thay vì lặng lẽ thất bại - cửa sổ đề nghị Restart as admin.

+
+ + + + + + + +
TệpĐó là gì
{{archive_window}}Cửa sổ, một tệp thực thi độc lập - không có .NET để cài
{{archive_cli}}Dòng lệnh, một tệp thực thi độc lập, cho script và CI
{{archive_installer}}Trình cài đặt: cả hai chương trình cho mọi tài khoản trên máy, cửa sổ trong menu Start và bws trong PATH
+
+

Các tệp thực thi mang chữ ký Authenticode, nên Windows nêu tên nhà phát hành thay vì cảnh báo về một nhà phát hành không rõ.

+ +
+
diff --git a/site/pages/home/zh-hans.html b/site/pages/home/zh-hans.html new file mode 100644 index 0000000..9fddaa4 --- /dev/null +++ b/site/pages/home/zh-hans.html @@ -0,0 +1,198 @@ + + + + + + + +
+
+
+

搜索你的 Windows 服务,在每次更改前预览,并查看自昨天以来哪些内容发生了漂移

+

{{product}} 是为管理 Windows 计算机的人重新打造的 services.msc:窗口和命令行共用同一个引擎。不必再滚动浏览八百行,直接向计算机提问。在按下任何按钮之前,就能看到某项更改会做什么。还有 services.msc 从未具备的功能:把每个服务冻结到一个文件里,一周后再询问发生了什么变化。

+ +
    +
  • 免费开源,GPL-3.0
  • +
  • 单个文件,或安装程序
  • +
  • 查看时无需管理员权限
  • +
  • 从不连接互联网
  • +
+
+
+ 窗口中选中了五个条目,列表上方显示启动它们的计划:五个步骤,一条说明其中两个已处于该状态,每个条目对应一行 bws start,以及 Start 5 entries 按钮。 +
选中的条目、在任何操作发生之前显示的计划,以及请求完全相同操作的 bws 命令行。程序使用英文界面:窗口会读取放在它旁边的语言文件,因此无需重新生成就能翻译。
+
+
+
+ + +
+
+ 半分钟体验 +

实际使用是这样的

+

这是在安装了波兰语的 Windows 上的真实会话:显示名称来自 Windows,因此是它的语言。窗口本身是英文的。

+
+ 选中四个条目以及启动它们的计划,强制重启 Local Session Manager(其计划警告说没有它计算机无法工作,并要求在按钮可用之前先输入它的名称),空搜索框下方用于起步的问题,以及通过输入名称的一部分找到并启动的 Print Spooler。 +
选中四个条目以及启动它们的计划、要求输入计算机所需服务名称的强制重启、空搜索框下方的问题,以及通过输入找到并启动的 Print Spooler。
+
+
+
+ 起始屏幕:三张关于这台计算机的数字卡片,分别是正在运行的服务、设为自动启动但未启动的服务、设为自动启动但文件已丢失的服务,以及 Show the list 按钮。 +
它从几个关于这台计算机的数字开始。每个数字都是一个问题:点击它,问题就会进入搜索框。
+
+
+ 服务列表,搜索框上方有三个列表,搜索框为空,筛选按钮按状态、启动类型、签名、不一致和触发器分行展开,下面是列表。 +
筛选按钮会写入搜索框,所以你点击的内容就是一条可以阅读和编辑的查询。
+
+
+
+
+ +
+
+ 为什么需要它 +

services.msc 自 Windows 2000 以来几乎没有变化

+

管理员每周都要在其中花上几个小时,一次次撞上同样的墙。

+
+
    +
  • 没有搜索。唯一的导航方式,是跳转到显示名称的首字母。
  • +
  • 没有筛选。无法询问显示设为自动启动但没有运行的内容。
  • +
  • 一次只能处理一行。重启十二个服务,就是十二次右键单击和十二次等待。
  • +
  • 永远停在“Stopping...”,除了任务管理器和猜测进程之外别无出路。
  • +
  • 没有历史记录。没人知道是谁、在何时把这个启动类型设成了 Disabled。
  • +
  • 隐藏的数据。进程、触发器、特权、安全描述符、谁给可执行文件签了名,所有这些都需要凭记忆使用 sc.exe,或去翻注册表。
  • +
  • 命令行能力不对等。sc.exe 的语法还停留在九十年代,而 Windows 自带的 Windows PowerShell 5.1 中的 Get-Service 不显示服务运行所用的账户,更不用说描述了。PowerShell 7 两者都显示,但需要单独安装。
  • +
+
+

其他工具各自只解决了一部分

+

Process Hacker 和 System Informer 展示信息丰富的列表,还能强制结束进程,但没有审计功能,也没有命令行。sc.exe 和 PsService 什么都能做,却什么也不告诉你。PowerShell 的 *-Service cmdlet 适合脚本,但比较浅。

+

没有任何一个工具同时提供可搜索的列表、每次更改前的预览,以及随时间推移的更改记录,而这份记录正是第一个下午过后仍把这个工具留在计算机上的理由。

+ 完整对比 +
+
+
+
+ +
+
+ 它能做什么 +

窗口和命令行共用同一个引擎

+
+

提问,而不是滚动

start:auto !status:running 的意思是应该在运行却没有运行的内容。同一种语言既用于搜索框,也用于 bws list --query,输入时还会提示字段。

+

在任何操作发生前先展示计划

每一次停止、启动、重启和启动类型更改,都会连同被一并关闭的服务一起预览,而预览就是实际执行的内容。

+

告诉你哪些内容发生了漂移,以及是谁改的

bws snapshot create 把计算机冻结到文件中,bws snapshot diff 告诉你之后发生了哪些变化,把配置与仅仅是启动或停止区分开。bws history 从 System 日志中告诉你是谁更改了启动类型、谁安装了服务。窗口在 Audit... 下完成这三件事。

+

一键修复常见问题

Tools 选项卡和 bws tool fix 会重启无法打印的打印机、没了声音或卡住的搜索背后的服务,连同依赖它的内容,走的是与其他所有操作相同的计划。

+

停止停不下来的服务

先礼貌地请求,只有失败时才结束进程,并列出同在该进程中的每一个其他服务。

+

展示 services.msc 隐藏的内容

谁给可执行文件签了名、Windows 是否信任它、触发器、特权、安全描述符、进程及其内存。既以列的形式显示,也可以作为搜索条件。

+

无法读取时会明说

无法读取的字段会报告为未读取,绝不会显示为空。没有管理员权限时生成的快照,会在文件内部注明这一点。

+

融入脚本

每个命令都支持 --json,每种结束方式都有退出代码,当差异发现漂移时返回 5。

+

单个文件,离线运行

解压即用,或为整台计算机安装。无需安装 .NET,也从不连接互联网。读取不需要管理员权限。GPL-3.0。

+
+
+
+ +
+
+ services.msc 从未做到的事 +

自昨天以来发生了什么变化

+

快照是某一时刻的整台计算机:每个服务和驱动程序,包括它的启动类型、账户、启动路径、其文件的哈希和签名者、依赖关系、触发器、特权和安全描述符。它是每行一个字段的 JSON,所以可以放进代码仓库,git diff 也能读懂它。

+
+
$ 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.
+
    +
  • 配置与运行状态分开报告。相隔一天生成的两个快照,在恰好正在运行的内容上会有所不同,而其中几乎没有一项是漂移。值得阅读的是那一行:被更改的启动类型。
  • +
  • 无法比较的内容会被列出,而不是被隐藏。某个快照从未读取过的字段,会显示为 not compared,因此一份写着没有任何变化的差异,表示的是在双方都能看到的范围内没有任何变化。
  • +
  • 当配置不同时,--exit-code 以 5 结束,因此计划任务可以在部署时生成快照,并在计算机发生漂移的第一个夜晚通知相关人员。
  • +
  • 两台计算机,两个文件。在暂存环境和生产环境各生成一个快照,然后在任何地方对比它们。
  • +
+
+ 快照与漂移的工作原理 +
+
+ +
+
+ 没有计划,什么都不会发生 +

预览就是执行

+

每个会写入的操作都会先生成一份计划,这份计划既是预览,也是依赖服务的级联、在你按下任何按钮之前给出的拒绝、请求相同操作的命令行,以及事后的回退方法。

+
+
$ 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 再运行,执行的就是这些步骤,顺序相同,旁边的原因也相同。真正执行时没有第二条代码路径。
  • +
  • 一并关闭的内容都写在计划里。会受影响的服务各自是独立的步骤,如果某项计划会关掉计算机必需的东西,警告里会写明。
  • +
  • 拒绝出现在按钮之前。驱动程序、服务管理器不接受停止请求的服务、系统保护的进程,都会在生成计划时连同原因一起被拒绝。窗口会把按钮置灰,并在旁边说明原因。
  • +
  • 强制停止分两步,第二步是有条件的。bws kill 先请求服务停止,只有无效时才结束它的进程,并列出同在该进程中的每一个其他服务。
  • +
+
+ 服务停不下来时 +
+
+ +
+
+ 两分钟体验 +

从命令行使用

+

与窗口相同的引擎,用于脚本、计划任务和 CI。数据输出到标准输出,其余所有内容输出到标准错误,因此 bws list --json | jq 可以正常工作,警告也绝不会混进你的 JSON。

+
bws list --query "start:auto !status:running"     应该在运行却没有运行的内容
+bws list --query "file:missing"                   可执行文件已丢失的服务
+bws list --query "signed:no peruser:no"           未签名,不含按会话生成的副本
+bws show Spooler                                  关于一个条目的所有已知信息
+bws stop Winmgmt --dry-run --dependents           停止它会连带关闭什么
+bws kill Spooler --dry-run                        结束它的进程会连带带走什么
+bws start-type Spooler manual --dry-run           把它从自动启动中移除会怎样
+bws snapshot create before.json                   在更改前冻结计算机
+bws snapshot diff before.json --live --exit-code  此后的变化,配置有变化则返回 5
+bws history Spooler                               谁在何时更改了它的启动类型
+bws tool fix printer --dry-run                    快速修复卡住的打印机会做什么
+ 每个命令、选项和退出代码 +
+
+ +
+
+ 获取 +

解压即用,或安装

+

Windows 10 1809 或 Windows Server 2019 及更高版本,64 位。压缩包不需要安装程序,也不向注册表写入任何内容,查看时不需要管理员权限。更改任何内容都需要提升权限的会话,两部分都会明说,而不是悄悄失败:窗口会提供 Restart as admin。

+
+ + + + + + + +
文件说明
{{archive_window}}窗口,一个自包含的可执行文件,无需安装 .NET
{{archive_cli}}命令行,一个自包含的可执行文件,用于脚本和 CI
{{archive_installer}}安装程序:为计算机上的每个账户安装这两个程序,窗口出现在开始菜单中,bws 加入 PATH
+
+

可执行文件带有 Authenticode 签名,因此 Windows 会显示发布者名称,而不是警告来自未知发布者。

+ +
+
diff --git a/site/pages/home/zh-hant.html b/site/pages/home/zh-hant.html new file mode 100644 index 0000000..a923946 --- /dev/null +++ b/site/pages/home/zh-hant.html @@ -0,0 +1,198 @@ + + + + + + + +
+
+
+

搜尋你的 Windows 服務,在每次變更前預覽,並查看自昨天以來哪些內容發生了漂移

+

{{product}} 是為管理 Windows 電腦的人重新打造的 services.msc:視窗和命令列共用同一個引擎。不必再捲動瀏覽八百列,直接向電腦提問。在按下任何按鈕之前,就能看到某項變更會做什麼。還有 services.msc 從未具備的功能:把每個服務凍結到一個檔案裡,一週後再詢問發生了什麼變化。

+ +
    +
  • 免費開放原始碼,GPL-3.0
  • +
  • 單一檔案,或安裝程式
  • +
  • 檢視時不需要系統管理員權限
  • +
  • 從不連上網際網路
  • +
+
+
+ 視窗中選取了五個項目,清單上方顯示啟動它們的計畫:五個步驟,一則說明其中兩個已處於該狀態,每個項目對應一行 bws start,以及 Start 5 entries 按鈕。 +
選取的項目、在任何動作發生之前顯示的計畫,以及要求完全相同動作的 bws 命令列。程式使用英文介面:視窗會讀取放在它旁邊的語言檔案,因此無需重新建置就能翻譯。
+
+
+
+ + +
+
+ 半分鐘體驗 +

實際使用是這樣的

+

這是在安裝了波蘭語的 Windows 上的真實工作階段:顯示名稱來自 Windows,因此是它的語言。視窗本身是英文的。

+
+ 選取四個項目以及啟動它們的計畫,強制重新啟動 Local Session Manager(其計畫警告說沒有它電腦無法運作,並要求在按鈕可用之前先輸入它的名稱),空白搜尋框下方用於起步的問題,以及透過輸入名稱的一部分找到並啟動的 Print Spooler。 +
選取四個項目以及啟動它們的計畫、要求輸入電腦所需服務名稱的強制重新啟動、空白搜尋框下方的問題,以及透過輸入找到並啟動的 Print Spooler。
+
+
+
+ 起始畫面:三張關於這台電腦的數字卡片,分別是正在執行的服務、設為自動啟動但未啟動的服務、設為自動啟動但檔案已遺失的服務,以及 Show the list 按鈕。 +
它從幾個關於這台電腦的數字開始。每個數字都是一個問題:按一下它,問題就會進入搜尋框。
+
+
+ 服務清單,搜尋框上方有三個清單,搜尋框為空,篩選按鈕依狀態、啟動類型、簽章、不一致和觸發程序分列展開,下面是清單。 +
篩選按鈕會寫入搜尋框,所以你按下的內容就是一條可以閱讀和編輯的查詢。
+
+
+
+
+ +
+
+ 為什麼需要它 +

services.msc 自 Windows 2000 以來幾乎沒有變化

+

系統管理員每週都要在其中花上幾個小時,一次次撞上同樣的牆。

+
+
    +
  • 沒有搜尋。唯一的導覽方式,是跳到顯示名稱的首字母。
  • +
  • 沒有篩選。無法詢問設為自動啟動但沒有執行的是哪些。
  • +
  • 一次只能處理一列。重新啟動十二個服務,就是十二次按右鍵和十二次等待。
  • +
  • 永遠停在「Stopping...」,除了工作管理員和猜測處理程序之外別無出路。
  • +
  • 沒有歷程記錄。沒人知道是誰、在何時把這個啟動類型設成了 Disabled。
  • +
  • 隱藏的資料。處理程序、觸發程序、特殊權限、安全性描述元、誰替可執行檔簽章,所有這些都需要憑記憶使用 sc.exe,或去翻登錄。
  • +
  • 命令列能力不對等。sc.exe 的語法還停留在九〇年代,而 Windows 內建的 Windows PowerShell 5.1 中的 Get-Service 不顯示服務執行所用的帳戶,更不用說描述了。PowerShell 7 兩者都顯示,但需要另外安裝。
  • +
+
+

其他工具各自只解決了一部分

+

Process Hacker 和 System Informer 展示資訊豐富的清單,還能強制結束處理程序,但沒有稽核功能,也沒有命令列。sc.exe 和 PsService 什麼都能做,卻什麼也不告訴你。PowerShell 的 *-Service cmdlet 適合指令碼,但比較淺。

+

沒有任何一個工具同時提供可搜尋的清單、每次變更前的預覽,以及隨時間推移的變更記錄,而這份記錄正是第一個下午過後仍把這個工具留在電腦上的理由。

+ 完整比較 +
+
+
+
+ +
+
+ 它能做什麼 +

視窗和命令列共用同一個引擎

+
+

提問,而不是捲動

start:auto !status:running 的意思是應該在執行卻沒有執行的內容。同一種語言既用於搜尋框,也用於 bws list --query,輸入時還會提示欄位。

+

在任何動作發生前先展示計畫

每一次停止、啟動、重新啟動和啟動類型變更,都會連同被一併關閉的服務一起預覽,而預覽就是實際執行的內容。

+

告訴你哪些內容發生了漂移,以及是誰改的

bws snapshot create 把電腦凍結到檔案中,bws snapshot diff 告訴你之後發生了哪些變化,把組態與僅僅是啟動或停止區分開。bws history 從 System 記錄檔中告訴你是誰變更了啟動類型、誰安裝了服務。視窗在 Audit... 下完成這三件事。

+

一鍵修復常見問題

Tools 索引標籤和 bws tool fix 會重新啟動無法列印的印表機、沒了聲音或卡住的搜尋背後的服務,連同依賴它的內容,走的是與其他所有動作相同的計畫。

+

停止停不下來的服務

先禮貌地要求,只有失敗時才結束處理程序,並列出同在該處理程序中的每一個其他服務。

+

展示 services.msc 隱藏的內容

誰替可執行檔簽章、Windows 是否信任它、觸發程序、特殊權限、安全性描述元、處理程序及其記憶體。既以欄的形式顯示,也可以作為搜尋條件。

+

無法讀取時會明說

無法讀取的欄位會回報為未讀取,絕不會顯示為空白。沒有系統管理員權限時產生的快照,會在檔案內部註明這一點。

+

融入指令碼

每個命令都支援 --json,每種結束方式都有結束代碼,當差異發現漂移時傳回 5。

+

單一檔案,離線執行

解壓縮即用,或為整台電腦安裝。無需安裝 .NET,也從不連上網際網路。讀取不需要系統管理員權限。GPL-3.0。

+
+
+
+ +
+
+ services.msc 從未做到的事 +

自昨天以來發生了什麼變化

+

快照是某一時刻的整台電腦:每個服務和驅動程式,包括它的啟動類型、帳戶、啟動路徑、其檔案的雜湊和簽署者、相依性、觸發程序、特殊權限和安全性描述元。它是每行一個欄位的 JSON,所以可以放進程式碼存放庫,git diff 也能看懂它。

+
+
$ 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.
+
    +
  • 組態與執行狀態分開回報。相隔一天產生的兩個快照,在恰好正在執行的內容上會有所不同,而其中幾乎沒有一項是漂移。值得閱讀的是那一行:被變更的啟動類型。
  • +
  • 無法比較的內容會被列出,而不是被隱藏。某個快照從未讀取過的欄位,會顯示為 not compared,因此一份寫著沒有任何變化的差異,表示的是在雙方都能看到的範圍內沒有任何變化。
  • +
  • 當組態不同時,--exit-code 以 5 結束,因此排程工作可以在部署時產生快照,並在電腦發生漂移的第一個夜晚通知相關人員。
  • +
  • 兩台電腦,兩個檔案。在預備環境和正式環境各產生一個快照,然後在任何地方比較它們。
  • +
+
+ 快照與漂移的運作方式 +
+
+ +
+
+ 沒有計畫,什麼都不會發生 +

預覽就是執行

+

每個會寫入的動作都會先產生一份計畫,這份計畫既是預覽,也是相依服務的連鎖、在你按下任何按鈕之前給出的拒絕、要求相同動作的命令列,以及事後的復原方法。

+
+
$ 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 再執行,執行的就是這些步驟,順序相同,旁邊的原因也相同。真正執行時沒有第二條程式碼路徑。
  • +
  • 一併關閉的內容都寫在計畫裡。會受影響的服務各自是獨立的步驟,如果某項計畫會關掉電腦必需的東西,警告裡會寫明。
  • +
  • 拒絕出現在按鈕之前。驅動程式、服務管理員不接受停止要求的服務、系統保護的處理程序,都會在產生計畫時連同原因一起被拒絕。視窗會把按鈕反灰,並在旁邊說明原因。
  • +
  • 強制停止分兩步,第二步是有條件的。bws kill 先要求服務停止,只有無效時才結束它的處理程序,並列出同在該處理程序中的每一個其他服務。
  • +
+
+ 服務停不下來時 +
+
+ +
+
+ 兩分鐘體驗 +

從命令列使用

+

與視窗相同的引擎,用於指令碼、排程工作和 CI。資料輸出到標準輸出,其餘所有內容輸出到標準錯誤,因此 bws list --json | jq 可以正常運作,警告也絕不會混進你的 JSON。

+
bws list --query "start:auto !status:running"     應該在執行卻沒有執行的內容
+bws list --query "file:missing"                   可執行檔已遺失的服務
+bws list --query "signed:no peruser:no"           未簽章,不含依工作階段產生的副本
+bws show Spooler                                  關於一個項目的所有已知資訊
+bws stop Winmgmt --dry-run --dependents           停止它會連帶關閉什麼
+bws kill Spooler --dry-run                        結束它的處理程序會連帶帶走什麼
+bws start-type Spooler manual --dry-run           把它從自動啟動中移除會怎樣
+bws snapshot create before.json                   在變更前凍結電腦
+bws snapshot diff before.json --live --exit-code  此後的變化,組態有變化則傳回 5
+bws history Spooler                               誰在何時變更了它的啟動類型
+bws tool fix printer --dry-run                    快速修復卡住的印表機會做什麼
+ 每個命令、選項和結束代碼 +
+
+ +
+
+ 取得 +

解壓縮即用,或安裝

+

Windows 10 1809 或 Windows Server 2019 及更高版本,64 位元。壓縮檔不需要安裝程式,也不向登錄寫入任何內容,檢視時不需要系統管理員權限。變更任何內容都需要提升權限的工作階段,兩者都會明說,而不是悄悄失敗:視窗會提供 Restart as admin。

+
+ + + + + + + +
檔案說明
{{archive_window}}視窗,一個獨立式的可執行檔,無需安裝 .NET
{{archive_cli}}命令列,一個獨立式的可執行檔,用於指令碼和 CI
{{archive_installer}}安裝程式:為電腦上的每個帳戶安裝這兩個程式,視窗出現在開始功能表中,bws 加入 PATH
+
+

可執行檔帶有 Authenticode 簽章,因此 Windows 會顯示發行者名稱,而不是警告來自未知發行者。

+ +
+
diff --git a/site/pages/query-language/cs.html b/site/pages/query-language/cs.html new file mode 100644 index 0000000..a1f2f44 --- /dev/null +++ b/site/pages/query-language/cs.html @@ -0,0 +1,177 @@ + + + + + + + +
+
+ Dotazovací jazyk +

Položte stroji otázku

+

Jeden jazyk, ve vyhledávacím poli okna i v bws list --query. Samotné slovo hledá v názvu, zobrazovaném názvu, účtu a cestě ke spuštění. Pole ho zúží. {{field_count}} polí a stejný text znamená v obou polovinách nástroje totéž.

+
+
+ +
+
+

Šest, které odpovídají na skutečnou otázku

+
+

Co by mělo běžet a neběží

start:auto !status:running

První dotaz, který většina lidí napíše, a ten, na který services.msc neumí odpovědět vůbec.

+

Služby, jejichž soubor je pryč

file:missing

Položka ukazující na spustitelný soubor, který na disku není. Obvykle odinstalace, která po sobě nechala registraci.

+

Nepodepsané, bez šumu z relací

signed:no peruser:no

Rodiny pro jednotlivé uživatele vytvářejí kopii pro každou relaci a plní seznam téměř duplikáty. Tohle se ptá na zbytek.

+

Běží, ačkoli je zakázáno

mismatch:running

Konfigurace a stav, které si odporují - položka, kterou má správce nastavenou, aby se nikdy nespustila, a přesto běží.

+

Cokoli, co žádá o práva ladění

privilege:SeDebugPrivilege

Privilegium, které procesu umožňuje otevřít jakýkoli jiný. Stojí za to vědět, které služby o něj žádají.

+

Co nástroj nemohl přečíst

account:?

Položky, u kterých tato relace nemohla přečíst účet. Otázka, kterou services.msc neumí ani položit.

+
+
+
+ +
+
+

Jak se dotaz píše

+
+
+

Termíny

+
    +
  • Termíny se oddělují mezerami a musí platit všechny - klíčové slovo and neexistuje, protože by nemohlo znamenat nic jiného.
  • +
  • Totéž pole napsané dvakrát je jediná výjimka: status:running status:stopped znamená jedno nebo druhé, protože přesně to zapíše zaškrtnutí dvou filtrů. Dvě meze čísla stále zužují - pid:>1000 pid:<2000 je rozsah mezi nimi.
  • +
  • ! před termínem ho neguje: !status:running. V dávkovém souboru s setlocal EnableDelayedExpansion cmd tento ! beze slova sní a dotaz pak tiše znamená něco jiného - tam napište ^! uvnitř uvozovek.
  • +
  • Čárka uvnitř pole je nebo: start:manual,disabled.
  • +
  • Uvozovky chrání vše s mezerami nebo dvojtečkami: account:"NT SERVICE\McmSvc".
  • +
  • Cesta vložená tak, jak je - C:\Windows\System32\svchost.exe - se hledá, ne čte jako pole s názvem C.
  • +
+
+
+

Jak se porovnává text

+
    +
  • name:spool odpovídá všemu, co to obsahuje - výchozí chování, protože to lidé od vyhledávacího pole čekají.
  • +
  • name:=spooler je přesná shoda.
  • +
  • name:spool* bere zástupné znaky, * a ?.
  • +
  • name:/^Sql.*/ je regulární výraz a mezi lomítky se píše tak, jak se regulární výrazy píší: \?, \\ a čárka tam znamenají to, co tam znamenají. Lomítko, které se nikdy nezavře, je chyba - chcete-li hledat samotné lomítko, napište \/ nebo použijte uvozovky.
  • +
  • Velikost písmen se ignoruje, i mimo ASCII - zobrazovaný název v polštině nebo řečtině odpovídá, ať je napsán jakkoli.
  • +
+
+
+

Tři slova, která přijímá každé pole

+ {{list:reserved-words}} +

Špatně napsaná hodnota je chyba, nikdy prázdný výsledek. status:runing odpoví Did you mean running? a skončí kódem 2. Prázdný seznam by vypadal jako odpověď a rozdíl mezi "nic neodpovídá" a "napsali jste to špatně" je rozdíl mezi čistým strojem a auditem, který nic neprokázal. Dotaz, který by nic nezúžil, se odmítne i na příkazovém řádku, takže skript neoperuje s celým strojem kvůli překlepu.

+
+
+ +
+
+

Další příklady

+

Každý funguje stejně ve vyhledávacím poli okna i za bws list --query a každý byl před napsáním sem spuštěn na skutečném Windows. Co najde, závisí na stroji - a u otázky na potíže je prázdná odpověď ta, kterou chcete.

+
+

Stav a typ spouštění

+
+ + + + + + + + +
DotazCo najde
status:stopPending,startPendingZaseklé při zastavování nebo spouštění - čekání, které snap-in ukazuje a které nikdy neskončí.
start:auto status:stopped trigger:noneNastaveno na automatické spuštění, zastaveno a nečeká na trigger - krátký seznam, který stojí za přečtení po restartu.
start:delayedAutomatické, spuštěné o něco později než ostatní automatické položky.
start:manual,disabled status:runningBěží, ačkoli ji při startu nic nespouští - něco o ni požádalo, spustil ji trigger, nebo někdo.
+
+

Účty

+
+ + + + + + + +
DotazCo najde
account:localsystem !publisher:microsoftBěží jako LocalSystem, nejsilnější účet, ze souboru, který Microsoft nepodepsal. Dotaz na vydavatele čte podpisy sám, takže trvá pár sekund.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessSlužby běžící pod jakýmkoli jiným účtem - virtuálním, spravovaným nebo osobním.
account:"NT SERVICE"Virtuální účet služby samotné. Uvozovky drží slova pohromadě kvůli mezeře.
+
+

Soubory a podpisy

+
+ + + + + + + + + + +
DotazCo najde
signed:notSigned,untrustedRoot,tamperedBez podpisu, řetězec, kterému Windows nedůvěřuje, nebo soubor změněný po podepsání.
signed:trusted !publisher:microsoftPodepsané, důvěryhodné a ne od Microsoftu - software, který na tento stroj nainstalovaly jiné firmy.
type:driver start:boot,system !signed:trustedOvladače načítané při startu Windows, jejichž podpisu Windows nedůvěřuje. Na zdravém stroji žádné.
!path:C:\Windows type:ownProcessSlužba s vlastním procesem, jejíž soubor leží mimo složku Windows.
path:\AppData\Spouštěno zevnitř něčího profilu, což je poslední místo, kde se služba čeká.
path:\System32\\ type:ownProcessZpětné lomítko před mezerou udělá z mezery součást slova, takže cesta končící zpětným lomítkem se píše se dvěma, pokud za ní následuje další termín. Na konci dotazu stačí jedno.
+
+

Triggery a závislosti

+
+ + + + + + + + + +
DotazCo najde
trigger:device status:stoppedČeká na příchod zařízení, takže je zastavená z důvodu.
trigger:networkSpouštěno, když požadavek dorazí na síťový koncový bod - port, pojmenovanou rouru nebo rozhraní RPC.
trigger:stopPoložky, které trigger umí i zastavit, ne jen spustit.
dependson:WinmgmtPoložky, které ke svému běhu potřebují WMI.
requiredby:SpoolerVšechno, co Print Spooler potřebuje ke svému běhu, a co zase potřebují ty.
+
+

Privilegia a procesy

+
+ + + + + + + + + + +
DotazCo najde
privilege:SeTcbPrivilegeŽádá o jednání jako součást operačního systému.
privilege:SeImpersonatePrivilege !account:localsystemMůže jednat jménem klienta a přitom běžet pod jiným účtem než LocalSystem.
sidtype:unrestrictedNese vlastní SID služby ve svém procesu, takže jej oprávnění mohou pojmenovat samostatně. sidtype:restricted se ptá na ty, jejichž proces je navíc omezen pro zápis.
type:sharedProcess status:runningBěží uvnitř sdíleného svchost spolu s dalšími.
memory:>200MBProces využívající více než 200 MB. Paměť se čte sama, když se na ni dotaz ptá.
pid:1000-2000V procesu, jehož id leží mezi 1000 a 2000.
+
+

Názvy a text

+
+ + + + + + + + + + + +
DotazCo najde
spoolSamotné slovo, hledané v názvu, zobrazovaném názvu, účtu a cestě ke spuštění.
name:=wuauservPřesně tento název a nic, co jej jen obsahuje.
name:win*Názvy začínající na win, zapsané se zástupným znakem.
name:/svc$/Názvy končící na svc, zapsané jako regulární výraz.
description:noneŽádný popis vůbec, což platí pro většinu ovladačů.
description:?Popis, který Windows nedokázal vydat, obvykle proto, že ukazuje na jazykový soubor, který neexistuje.
peruser:templateŠablony pro jednotlivé uživatele, které Windows kopíruje pro každou přihlášenou relaci.
+
+
+
+
+ +
+
+

Každé pole

+

Sestaveno ze samotného programu, takže tato tabulka se nemůže rozejít s tím, co nástroj přijímá. Pole bez seznamu hodnot bere text, číslo nebo velikost - třetí sloupec říká které.

+ {{table:query-fields}} +
+
+ +
+
+

Dvě věci, které stojí za to znát

+
+
+

Některá pole jsou drahá a dotaz na ně zapne čtení

+

Podpisy trvají na celém stroji několik sekund a paměť je měření, ne nastavení, takže ani jedno se pro výpis nečte, pokud se o to nepožádá. Dotaz, který jedno z nich zmiňuje, zapne toto čtení sám - nemusíte si pamatovat --signatures navíc k signed:no. V okně dotaz na podpisy říká, že odpověď je neúplná, dokud nedorazí, místo aby ukázal kratší seznam, jako by byl odpovědí.

+
+
+

Výsledek posouzený podle něčeho nečitelného to říká

+

Pokud byly položky posuzovány podle pole, které tato relace nemohla přečíst, nese výsledek řádek s udáním kolika - protože takový výsledek může některé položky postrádat nebo obsahovat takové, které do něj nepatří. To je totéž pravidlo, které dodržuje celý nástroj: neúspěšné čtení je vidět v odpovědi, nikdy se nepohltí. Vydavatel dostane stejné zacházení, když ho tvrdí jen certifikát: vedle jakéhokoli verdiktu jiného než trusted se název ukáže jako not verified a publisher: počítá položku jako nejistou na vlastním řádku - takže !publisher:microsoft ponechá soubor Microsoftu, který někdo po podepsání změnil.

+
+
+ Reference příkazového řádku +
+
diff --git a/site/pages/query-language/id.html b/site/pages/query-language/id.html new file mode 100644 index 0000000..8091119 --- /dev/null +++ b/site/pages/query-language/id.html @@ -0,0 +1,178 @@ + + + + + + + +
+
+ Bahasa kueri +

Ajukan pertanyaan kepada mesin

+

Satu bahasa, di kotak pencarian jendela dan di bws list --query. Satu kata polos mencari pada nama, nama tampilan, akun, dan jalur peluncuran. Sebuah bidang mempersempitnya. {{field_count}} bidang, dan teks yang sama berarti hal yang sama di kedua bagian alat ini.

+
+
+ +
+
+

Enam yang menjawab pertanyaan nyata

+
+

Apa yang seharusnya hidup dan tidak hidup

start:auto !status:running

Kueri pertama yang ditulis kebanyakan orang, dan yang sama sekali tidak bisa dijawab services.msc.

+

Layanan yang berkasnya hilang

file:missing

Entri yang menunjuk ke berkas eksekusi yang tidak ada di disk. Biasanya pencopotan yang meninggalkan registrasinya.

+

Tidak bertanda tangan, tanpa kebisingan sesi

signed:no peruser:no

Keluarga per pengguna membuat satu salinan per sesi dan memenuhi daftar dengan hampir-duplikat. Ini menanyakan sisanya.

+

Berjalan padahal dinonaktifkan

mismatch:running

Konfigurasi dan status yang tidak sesuai - entri yang diatur manajer agar tidak pernah dimulai, tetapi tetap berjalan.

+

Apa pun yang meminta hak debug

privilege:SeDebugPrivilege

Hak istimewa yang memungkinkan sebuah proses membuka proses lain mana pun. Layak diketahui layanan mana yang memintanya.

+

Apa yang tidak bisa dibaca alat ini

account:?

Entri yang akunnya tidak bisa dibaca sesi ini. Pertanyaan yang bahkan tidak bisa diajukan services.msc.

+
+
+
+ +
+
+

Cara kueri ditulis

+
+
+

Istilah

+
    +
  • Istilah dipisahkan spasi dan semuanya harus cocok - tidak ada kata kunci and karena tidak ada arti lain yang mungkin.
  • +
  • Bidang yang sama ditulis dua kali adalah satu-satunya pengecualian: status:running status:stopped berarti salah satunya, karena itulah yang ditulis dengan mencentang dua filter. Dua batas pada sebuah angka tetap mempersempit - pid:>1000 pid:<2000 adalah rentang di antara keduanya.
  • +
  • ! di depan sebuah istilah menegasikannya: !status:running. Dalam berkas batch dengan setlocal EnableDelayedExpansion, cmd memakan ! itu tanpa sepatah kata pun dan kueri diam-diam berarti hal lain - tulis ^! di dalam tanda kutip di sana.
  • +
  • Koma di dalam bidang berarti atau: start:manual,disabled.
  • +
  • Tanda kutip melindungi apa pun yang mengandung spasi atau titik dua: account:"NT SERVICE\McmSvc".
  • +
  • Jalur yang ditempel apa adanya - C:\Windows\System32\svchost.exe - dicari, tidak dibaca sebagai bidang bernama C.
  • +
+
+
+

Cara teks dicocokkan

+
    +
  • name:spool cocok dengan apa pun yang mengandungnya - bawaannya, karena itulah yang diharapkan orang dari kotak pencarian.
  • +
  • name:=spooler adalah kecocokan persis.
  • +
  • name:spool* menerima wildcard, * dan ?.
  • +
  • name:/^Sql.*/ adalah ekspresi reguler, dan di dalam garis miring ia ditulis seperti ekspresi reguler ditulis: \?, \\, dan koma berarti di sana apa yang berarti di sana. Garis miring yang tidak pernah ditutup adalah galat - untuk mencari garis miring itu sendiri, tulis \/ atau pakai tanda kutip.
  • +
  • Huruf besar-kecil diabaikan, termasuk di luar ASCII - nama tampilan dalam bahasa Polandia atau Yunani cocok dengan cara apa pun mengetikkannya.
  • +
+
+
+

Tiga kata yang diterima setiap bidang

+ {{list:reserved-words}} +

Nilai yang salah ketik adalah galat, tidak pernah hasil kosong. status:runing menjawab Did you mean running? dan berakhir dengan kode 2. Daftar kosong akan tampak seperti jawaban, dan perbedaan antara "tidak ada yang cocok" dan "Anda salah mengetik" adalah perbedaan antara mesin yang bersih dan audit yang tidak membuktikan apa pun. Kueri yang tidak akan mempersempit apa pun juga ditolak di baris perintah, sehingga skrip tidak bekerja pada seluruh mesin karena salah ketik.

+
+
+ +
+
+

Contoh lainnya

+

Masing-masing bekerja sama di kotak pencarian jendela dan setelah bws list --query, dan masing-masing dijalankan di Windows sungguhan sebelum ditulis di sini. Apa yang ditemukannya bergantung pada mesin - dan untuk pertanyaan tentang masalah, jawaban kosong adalah yang Anda inginkan.

+
+

Status dan tipe startup

+
+ + + + + + + + +
KueriApa yang ditemukan
status:stopPending,startPendingMacet saat berhenti atau memulai - penantian yang ditampilkan snap-in dan tidak pernah berakhir.
start:auto status:stopped trigger:noneDiatur mulai otomatis, berhenti, dan tidak menunggu pemicu - daftar pendek yang layak dibaca setelah restart.
start:delayedOtomatis, dimulai sedikit setelah entri otomatis lainnya.
start:manual,disabled status:runningBerjalan padahal tidak ada yang memulainya saat boot - ada yang memintanya, pemicu memulainya, atau seseorang.
+
+

Akun

+
+ + + + + + + +
KueriApa yang ditemukan
account:localsystem !publisher:microsoftBerjalan sebagai LocalSystem, akun terkuat, dari berkas yang tidak ditandatangani Microsoft. Kueri tentang penerbit membaca tanda tangan sendiri, sehingga memakan beberapa detik.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessLayanan yang berjalan di bawah akun lain mana pun - akun virtual, akun terkelola, atau milik seseorang.
account:"NT SERVICE"Akun virtual milik layanan itu sendiri. Tanda kutip menjaga kata-katanya tetap bersama, karena ada spasi.
+
+

Berkas dan tanda tangan

+
+ + + + + + + + + + +
KueriApa yang ditemukan
signed:notSigned,untrustedRoot,tamperedTanpa tanda tangan, rantai yang tidak dipercaya Windows, atau berkas yang diubah setelah ditandatangani.
signed:trusted !publisher:microsoftBertanda tangan, tepercaya, dan bukan dari Microsoft - perangkat lunak yang dipasang perusahaan lain di mesin ini.
type:driver start:boot,system !signed:trustedDriver yang dimuat saat Windows dimulai yang tanda tangannya tidak dipercaya Windows. Pada mesin yang sehat, tidak ada.
!path:C:\Windows type:ownProcessLayanan dengan prosesnya sendiri yang berkasnya berada di luar folder Windows.
path:\AppData\Diluncurkan dari dalam profil seseorang, tempat terakhir layanan diharapkan.
path:\System32\\ type:ownProcessGaris miring terbalik di depan spasi menjadikan spasi bagian dari kata, sehingga jalur yang berakhir dengan garis miring terbalik ditulis dengan dua ketika istilah lain mengikutinya. Di akhir kueri, satu sudah cukup.
+
+

Pemicu dan dependensi

+
+ + + + + + + + + +
KueriApa yang ditemukan
trigger:device status:stoppedMenunggu perangkat tiba, jadi berhenti karena suatu alasan.
trigger:networkDimulai ketika permintaan tiba di titik akhir jaringan - port, named pipe, atau antarmuka RPC.
trigger:stopEntri yang bisa dihentikan oleh pemicu, bukan hanya dimulai.
dependson:WinmgmtEntri yang membutuhkan WMI untuk berjalan.
requiredby:SpoolerSegala yang dibutuhkan Print Spooler untuk berjalan, dan apa yang dibutuhkan semua itu pada gilirannya.
+
+

Hak istimewa dan proses

+
+ + + + + + + + + + +
KueriApa yang ditemukan
privilege:SeTcbPrivilegeMeminta untuk bertindak sebagai bagian dari sistem operasi.
privilege:SeImpersonatePrivilege !account:localsystemDapat bertindak atas nama klien sambil berjalan di bawah akun selain LocalSystem.
sidtype:unrestrictedMembawa SID layanan sendiri di prosesnya, sehingga izin bisa menyebutnya saja. sidtype:restricted menanyakan yang prosesnya juga dibatasi penulisan.
type:sharedProcess status:runningBerjalan di dalam svchost bersama, bersama yang lain.
memory:>200MBProses yang memakai lebih dari 200 MB. Memori dibaca sendiri ketika kueri menanyakannya.
pid:1000-2000Dalam proses yang id-nya antara 1000 dan 2000.
+
+

Nama dan teks

+
+ + + + + + + + + + + +
KueriApa yang ditemukan
spoolSatu kata polos, dicari pada nama, nama tampilan, akun, dan jalur peluncuran.
name:=wuauservPersis nama ini, dan tidak ada yang sekadar mengandungnya.
name:win*Nama yang diawali win, ditulis dengan wildcard.
name:/svc$/Nama yang diakhiri svc, ditulis sebagai ekspresi reguler.
description:noneTanpa deskripsi sama sekali, yang berlaku untuk kebanyakan driver.
description:?Deskripsi yang tidak bisa diserahkan Windows, biasanya karena menunjuk ke berkas bahasa yang tidak ada.
peruser:templateTemplat per pengguna yang disalin Windows untuk setiap sesi yang masuk.
+
+
+
+
+ +
+
+

Setiap bidang

+

Dibangun dari program itu sendiri, sehingga tabel ini tidak bisa menyimpang dari apa yang diterima alat ini. Bidang tanpa daftar nilai menerima teks, angka, atau ukuran - kolom ketiga menyebutkan yang mana.

+ {{table:query-fields}} +
+
+ +
+
+

Dua hal yang perlu diketahui

+
+
+

Beberapa bidang mahal, dan memintanya mengaktifkan pembacaan

+

Tanda tangan memakan beberapa detik pada seluruh mesin dan memori adalah pengukuran, bukan pengaturan, jadi tidak ada yang dibaca untuk sebuah daftar kecuali diminta. Kueri yang menyebut salah satunya mengaktifkan pembacaan itu sendiri - Anda tidak perlu mengingat --signatures selain signed:no. Di jendela, kueri tentang tanda tangan menyatakan bahwa jawabannya belum lengkap sampai tanda tangan tiba, alih-alih menampilkan daftar yang lebih pendek seolah-olah itulah jawabannya.

+
+
+

Hasil yang dinilai berdasarkan sesuatu yang tidak terbaca menyatakannya

+

Jika entri dinilai berdasarkan bidang yang tidak bisa dibaca sesi ini, hasilnya membawa baris yang menyebutkan berapa banyak - karena hasil seperti itu bisa kekurangan entri, atau memuat yang bukan miliknya. Itu adalah aturan yang sama yang dijaga seluruh alat: pembacaan yang gagal terlihat dalam jawaban, tidak pernah ditelan. Penerbit mendapat perlakuan yang sama ketika hanya sertifikat yang mengklaimnya: di samping putusan apa pun selain trusted namanya ditampilkan sebagai not verified, dan publisher: menghitung entri itu sebagai tidak pasti pada barisnya sendiri - jadi !publisher:microsoft mempertahankan berkas Microsoft yang diubah seseorang setelah ditandatangani.

+
+
+ Referensi baris perintah +
+
diff --git a/site/pages/query-language/ja.html b/site/pages/query-language/ja.html new file mode 100644 index 0000000..e095405 --- /dev/null +++ b/site/pages/query-language/ja.html @@ -0,0 +1,177 @@ + + + + + + + +
+
+ クエリ言語 +

マシンに質問する

+

ウィンドウの検索ボックスでも bws list --query でも、同じ 1 つの言語を使います。単語だけを書くと、名前、表示名、アカウント、起動パスを検索します。フィールドを付けると絞り込めます。フィールドは {{field_count}} 個あり、同じテキストはツールのどちらの側でも同じ意味になります。

+
+
+ +
+
+

実際の質問に答える 6 つ

+
+

起動しているはずなのに起動していないもの

start:auto !status:running

ほとんどの人が最初に書くクエリで、services.msc では全く答えられないものです。

+

ファイルがなくなったサービス

file:missing

ディスク上にない実行ファイルを指しているエントリです。たいていは、登録が残ったままアンインストールされたものです。

+

署名なし。セッションごとのノイズを除く

signed:no peruser:no

ユーザーごとのファミリーはセッションごとにコピーを作り、似たエントリで一覧が埋まります。このクエリは、それ以外について尋ねます。

+

無効なのに実行中

mismatch:running

構成と状態が食い違っている場合です。マネージャーが決して開始しないように設定されたエントリが、それでも実行されています。

+

デバッグ権限を要求するもの

privilege:SeDebugPrivilege

プロセスがほかのあらゆるプロセスを開けるようになる特権です。どのサービスが要求しているかを知っておく価値があります。

+

ツールが読み取れなかったもの

account:?

このセッションがアカウントを読み取れなかったエントリです。services.msc には尋ねることすらできない質問です。

+
+
+
+ +
+
+

クエリの書き方

+
+
+

用語

+
    +
  • 用語はスペースで区切り、すべてが一致する必要があります。and というキーワードはありません。ほかの意味になりようがないからです。
  • +
  • 同じフィールドを 2 回書く場合だけが例外です。status:running status:stopped はどちらか一方を意味します。2 つのフィルターにチェックを入れたときに書かれるのが、これだからです。数値の 2 つの境界は、引き続き絞り込みになります。pid:>1000 pid:<2000 は、その間の範囲です。
  • +
  • 用語の前の ! は否定です。!status:running のように書きます。setlocal EnableDelayedExpansion を指定したバッチファイルでは、cmd がこの ! を何の断りもなく消してしまい、クエリは静かに別の意味になります。その場合は引用符の中で ^! と書いてください。
  • +
  • フィールド内のカンマはまたはを意味します。start:manual,disabled のように使います。
  • +
  • スペースやコロンを含むものは、引用符で保護します。account:"NT SERVICE\McmSvc" のようにします。
  • +
  • C:\Windows\System32\svchost.exe のようにそのまま貼り付けたパスは、C というフィールドとしては読まれず、検索されます。
  • +
+
+
+

テキストの照合方法

+
    +
  • name:spool は、それを含むものすべてに一致します。検索ボックスに人が期待する動作なので、これが既定です。
  • +
  • name:=spooler は完全一致です。
  • +
  • name:spool* はワイルドカード * と ? を使えます。
  • +
  • name:/^Sql.*/ は正規表現で、スラッシュの中は正規表現の書き方どおりに書きます。\?、\\、カンマは、そこでの意味になります。閉じられないスラッシュはエラーです。スラッシュ自体を検索するには、\/ と書くか、引用符を使います。
  • +
  • 大文字と小文字は区別されず、ASCII 以外でも同様です。ポーランド語やギリシャ語の表示名も、どのように入力しても一致します。
  • +
+
+
+

すべてのフィールドが受け付ける 3 つの語

+ {{list:reserved-words}} +

入力ミスのある値は、空の結果ではなくエラーになります。status:runing には Did you mean running? と応答し、コード 2 で終了します。空の一覧は答えのように見えてしまいますが、「一致するものがない」と「入力が間違っている」の違いは、きれいなマシンと何も証明していない監査との違いです。何も絞り込まないクエリはコマンドラインでも拒否されるので、入力ミスのせいでスクリプトがマシン全体を操作することはありません。

+
+
+ +
+
+

さらに例

+

どれも、ウィンドウの検索ボックスでも bws list --query の後でも同じように動作し、ここに書く前に実際の Windows で実行しています。何が見つかるかはマシンによって異なります。そして、問題についての質問では、空の答えが最も望ましい答えです。

+
+

状態とスタートアップの種類

+
+ + + + + + + + +
クエリ見つかるもの
status:stopPending,startPending停止中または開始中のまま止まっているもの。スナップインが表示し、終わることのない待機です。
start:auto status:stopped trigger:none自動開始に設定され、停止していて、トリガーを待っていないもの。再起動のあとに読む価値のある短い一覧です。
start:delayed自動ですが、ほかの自動のエントリより少しあとに開始されます。
start:manual,disabled status:running起動時に何も開始しないのに実行中のもの。何かが要求した、トリガーが開始した、または誰かが開始しました。
+
+

アカウント

+
+ + + + + + + +
クエリ見つかるもの
account:localsystem !publisher:microsoftLocalSystem、最も強力なアカウントで実行されていて、Microsoft が署名していないファイルのもの。発行元についてのクエリは署名を自動的に読み取るため、数秒かかります。
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessそれ以外のアカウントで実行されているサービス。仮想アカウント、管理されたアカウント、または個人のアカウントです。
account:"NT SERVICE"サービス独自の仮想アカウントです。スペースがあるため、引用符で単語をまとめています。
+
+

ファイルと署名

+
+ + + + + + + + + + +
クエリ見つかるもの
signed:notSigned,untrustedRoot,tampered署名なし、Windows が信頼しないチェーン、または署名後に変更されたファイル。
signed:trusted !publisher:microsoft署名済みで、信頼されていて、Microsoft のものではない。他社がこのマシンに入れたソフトウェアです。
type:driver start:boot,system !signed:trustedWindows の起動時に読み込まれるドライバーで、署名を Windows が信頼していないもの。健全なマシンでは 0 件です。
!path:C:\Windows type:ownProcess独自のプロセスを持つサービスで、ファイルが Windows フォルダーの外にあるもの。
path:\AppData\誰かのプロファイルの中から起動されているもの。サービスがあるとは最も予想されない場所です。
path:\System32\\ type:ownProcessスペースの前のバックスラッシュは、そのスペースを単語の一部にします。そのため、バックスラッシュで終わるパスの後に別の用語が続く場合は、バックスラッシュを 2 つ書きます。クエリの末尾では 1 つで足ります。
+
+

トリガーと依存関係

+
+ + + + + + + + + +
クエリ見つかるもの
trigger:device status:stoppedデバイスの接続を待っているため、理由があって停止しています。
trigger:networkネットワークのエンドポイント(ポート、名前付きパイプ、RPC インターフェイス)に要求が届くと開始されます。
trigger:stopトリガーが開始するだけでなく、停止もできるエントリです。
dependson:Winmgmt実行に WMI を必要とするエントリです。
requiredby:SpoolerPrint Spooler の実行に必要なすべてのものと、それらが順に必要とするものです。
+
+

特権とプロセス

+
+ + + + + + + + + + +
クエリ見つかるもの
privilege:SeTcbPrivilegeオペレーティング システムの一部として動作することを要求します。
privilege:SeImpersonatePrivilege !account:localsystemLocalSystem 以外のアカウントで実行されながら、クライアントの代わりに動作できます。
sidtype:unrestrictedプロセスに独自のサービス SID を持つため、アクセス許可でそのサービスだけを名前で指定できます。sidtype:restricted は、さらにプロセスが書き込み制限されているものについて尋ねます。
type:sharedProcess status:running共有 svchost の中で、ほかのサービスとともに実行されています。
memory:>200MB200 MB を超えて使用しているプロセスです。クエリが尋ねると、メモリは自動的に読み取られます。
pid:1000-2000ID が 1000 から 2000 の間のプロセスで動いています。
+
+

名前とテキスト

+
+ + + + + + + + + + + +
クエリ見つかるもの
spool単語だけのクエリで、名前、表示名、アカウント、起動パスの中から検索されます。
name:=wuauservこの名前だけで、単に含むだけのものは含みません。
name:win*win で始まる名前で、ワイルドカードで書いています。
name:/svc$/svc で終わる名前で、正規表現で書いています。
description:none説明が全くないもの。ほとんどのドライバーがこれです。
description:?Windows が渡せなかった説明。たいていは、存在しない言語ファイルを指しているためです。
peruser:templateWindows が、サインインしているセッションごとにコピーするユーザーごとのテンプレートです。
+
+
+
+
+ +
+
+

すべてのフィールド

+

プログラム自体から生成しているため、この表がツールの受け付ける内容からずれることはありません。値の一覧がないフィールドは、テキスト、数値、またはサイズを受け付けます。どれかは 3 列目に書かれています。

+ {{table:query-fields}} +
+
+ +
+
+

知っておく価値のある 2 つのこと

+
+
+

高コストなフィールドがあり、尋ねると読み取りが有効になります

+

署名はマシン全体で数秒かかり、メモリは設定ではなく計測値であるため、頼まれない限り、一覧のためには読み取られません。そのどちらかに触れるクエリは、その読み取りを自動的に有効にします。signed:no に加えて --signatures を覚えておく必要はありません。ウィンドウでは、署名についてのクエリは、署名が届くまで答えが不完全であることを伝え、短い一覧をあたかも答えであるかのように見せることはしません。

+
+
+

読み取れなかったものに基づく結果は、そのことを伝えます

+

読み取れなかったフィールドに基づいてエントリを判定した場合、結果にはその数を示す行が付きます。そのような結果では、エントリが足りない、または含まれるべきでないものが入っている可能性があるからです。これはツール全体が守っている規則と同じです。読み取りの失敗は答えの中で見え、黙って捨てられることは決してありません。証明書だけが主張している発行元にも、同じ扱いをします。trusted 以外の判定の横では、名前は not verified と表示され、publisher: はそのエントリを不確かなものとして別の行で数えます。そのため !publisher:microsoft は、署名後に誰かが変更した Microsoft のファイルを残します。

+
+
+ コマンドライン リファレンス +
+
diff --git a/site/pages/query-language/ko.html b/site/pages/query-language/ko.html new file mode 100644 index 0000000..38e6948 --- /dev/null +++ b/site/pages/query-language/ko.html @@ -0,0 +1,177 @@ + + + + + + + +
+
+ 쿼리 언어 +

컴퓨터에 질문하세요

+

하나의 언어를 창의 검색 상자와 bws list --query에서 씁니다. 단어만 쓰면 이름, 표시 이름, 계정, 시작 경로에서 검색합니다. 필드를 붙이면 범위가 좁아집니다. 필드는 {{field_count}}개이며, 같은 텍스트는 도구의 두 쪽 모두에서 같은 뜻입니다.

+
+
+ +
+
+

실제 질문에 답하는 여섯 가지

+
+

떠 있어야 하는데 떠 있지 않은 것

start:auto !status:running

대부분의 사람이 가장 먼저 쓰는 쿼리이며, services.msc가 전혀 답할 수 없는 쿼리입니다.

+

파일이 사라진 서비스

file:missing

디스크에 없는 실행 파일을 가리키는 항목입니다. 보통은 등록 정보를 남기고 제거된 경우입니다.

+

서명 없음, 세션 잡음 제외

signed:no peruser:no

사용자별 계열은 세션마다 복사본을 만들어 목록을 거의 같은 항목으로 채웁니다. 이 쿼리는 나머지에 대해 묻습니다.

+

사용 안 함인데 실행 중

mismatch:running

구성과 상태가 어긋난 경우입니다. 서비스 관리자가 절대 시작하지 않도록 설정된 항목이 그래도 실행되고 있습니다.

+

디버그 권한을 요청하는 모든 것

privilege:SeDebugPrivilege

프로세스가 다른 어떤 프로세스든 열 수 있게 해 주는 권한입니다. 어떤 서비스가 이것을 요청하는지 알아 둘 가치가 있습니다.

+

도구가 읽지 못한 것

account:?

이 세션이 계정을 읽지 못한 항목입니다. services.msc는 물을 수조차 없는 질문입니다.

+
+
+
+ +
+
+

쿼리를 쓰는 방법

+
+
+

검색어

+
    +
  • 검색어는 공백으로 구분하며 모두 일치해야 합니다. and 키워드가 없는 것은 달리 뜻할 수 있는 것이 없기 때문입니다.
  • +
  • 같은 필드를 두 번 쓰는 것이 유일한 예외입니다. status:running status:stopped는 둘 중 하나를 뜻합니다. 필터 두 개를 선택하면 쓰이는 것이 바로 이것이기 때문입니다. 숫자에 대한 두 경계는 여전히 범위를 좁힙니다. pid:>1000 pid:<2000은 둘 사이의 범위입니다.
  • +
  • 검색어 앞의 !는 부정입니다. !status:running처럼 씁니다. setlocal EnableDelayedExpansion이 있는 배치 파일에서는 cmd가 이 !를 아무 말 없이 먹어 버려 쿼리가 조용히 다른 뜻이 되므로, 거기서는 따옴표 안에 ^!를 쓰세요.
  • +
  • 필드 안의 쉼표는 또는입니다. start:manual,disabled처럼 씁니다.
  • +
  • 따옴표는 공백이나 콜론이 있는 것을 보호합니다. account:"NT SERVICE\McmSvc"처럼 씁니다.
  • +
  • C:\Windows\System32\svchost.exe처럼 그대로 붙여 넣은 경로는 C라는 필드로 읽히지 않고 검색됩니다.
  • +
+
+
+

텍스트를 일치시키는 방법

+
    +
  • name:spool은 그것을 포함하는 모든 것과 일치합니다. 사람들이 검색 상자에서 기대하는 동작이므로 기본값입니다.
  • +
  • name:=spooler는 정확히 일치합니다.
  • +
  • name:spool*은 와일드카드 *와 ?를 받습니다.
  • +
  • name:/^Sql.*/은 정규식이며, 슬래시 안에서는 정규식을 쓰는 방식 그대로 씁니다. \?, \\, 쉼표는 거기서의 뜻 그대로입니다. 닫히지 않는 슬래시는 오류입니다. 슬래시 자체를 검색하려면 \/를 쓰거나 따옴표를 사용하세요.
  • +
  • 대소문자는 ASCII 밖에서도 무시됩니다. 폴란드어나 그리스어 표시 이름도 어떻게 입력하든 일치합니다.
  • +
+
+
+

모든 필드가 받는 세 단어

+ {{list:reserved-words}} +

잘못 입력한 값은 빈 결과가 아니라 오류입니다. status:runing은 Did you mean running?이라고 답하고 코드 2로 끝납니다. 빈 목록은 답처럼 보일 텐데, “아무것도 일치하지 않음”과 “잘못 입력함”의 차이는 깨끗한 컴퓨터와 아무것도 증명하지 못한 감사의 차이입니다. 아무것도 좁히지 못하는 쿼리는 명령줄에서도 거부되므로, 오타 때문에 스크립트가 컴퓨터 전체에 작업을 하는 일은 없습니다.

+
+
+ +
+
+

더 많은 예

+

각 예는 창의 검색 상자와 bws list --query 뒤에서 똑같이 동작하며, 여기에 쓰기 전에 실제 Windows에서 실행했습니다. 무엇이 찾아지는지는 컴퓨터에 따라 다르며, 문제에 대한 질문에서는 빈 답이 바라는 답입니다.

+
+

상태와 시작 유형

+
+ + + + + + + + +
쿼리찾는 것
status:stopPending,startPending중지 중이나 시작 중에서 멈춘 것입니다. 스냅인이 보여 주고 끝나지 않는 기다림입니다.
start:auto status:stopped trigger:none자동으로 시작하도록 설정됐고, 중지되어 있으며, 트리거를 기다리지 않는 것입니다. 재시작 뒤에 읽어 볼 만한 짧은 목록입니다.
start:delayed자동이지만 다른 자동 항목보다 조금 뒤에 시작됩니다.
start:manual,disabled status:running부팅 때 아무것도 시작하지 않는데 실행 중인 것입니다. 무언가가 요청했거나, 트리거가 시작했거나, 누군가 시작했습니다.
+
+

계정

+
+ + + + + + + +
쿼리찾는 것
account:localsystem !publisher:microsoft가장 강력한 계정인 LocalSystem으로, Microsoft가 서명하지 않은 파일에서 실행됩니다. 게시자에 대한 쿼리는 서명을 스스로 읽으므로 몇 초가 걸립니다.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcess다른 계정으로 실행되는 서비스입니다. 가상 계정, 관리되는 계정, 또는 개인 계정입니다.
account:"NT SERVICE"서비스 자체의 가상 계정입니다. 공백 때문에 따옴표로 단어를 묶습니다.
+
+

파일과 서명

+
+ + + + + + + + + + +
쿼리찾는 것
signed:notSigned,untrustedRoot,tampered서명이 없거나, Windows가 신뢰하지 않는 체인이거나, 서명 후에 변경된 파일입니다.
signed:trusted !publisher:microsoft서명되었고, 신뢰되며, Microsoft가 아닙니다. 다른 회사가 이 컴퓨터에 둔 소프트웨어입니다.
type:driver start:boot,system !signed:trustedWindows가 시작될 때 로드되는 드라이버 중 서명을 Windows가 신뢰하지 않는 것입니다. 건강한 컴퓨터에서는 없습니다.
!path:C:\Windows type:ownProcess자체 프로세스를 가진 서비스 중 파일이 Windows 폴더 밖에 있는 것입니다.
path:\AppData\누군가의 프로필 안에서 시작된 것입니다. 서비스가 있으리라고 가장 기대하지 않는 곳입니다.
path:\System32\\ type:ownProcess공백 앞의 백슬래시는 그 공백을 단어의 일부로 만들므로, 백슬래시로 끝나는 경로 뒤에 다른 검색어가 이어질 때는 백슬래시를 두 개 씁니다. 쿼리 끝에서는 하나로 충분합니다.
+
+

트리거와 종속성

+
+ + + + + + + + + +
쿼리찾는 것
trigger:device status:stopped장치가 연결되기를 기다리므로 이유가 있어 중지된 것입니다.
trigger:network네트워크 끝점(포트, 명명된 파이프, RPC 인터페이스)에 요청이 도착하면 시작됩니다.
trigger:stop트리거가 시작만 하는 것이 아니라 중지도 할 수 있는 항목입니다.
dependson:Winmgmt실행하려면 WMI가 필요한 항목입니다.
requiredby:SpoolerPrint Spooler가 실행되는 데 필요한 모든 것과, 그것들이 다시 필요로 하는 것입니다.
+
+

권한과 프로세스

+
+ + + + + + + + + + +
쿼리찾는 것
privilege:SeTcbPrivilege운영 체제의 일부로 동작하기를 요청합니다.
privilege:SeImpersonatePrivilege !account:localsystemLocalSystem이 아닌 계정으로 실행되면서 클라이언트를 대신해 동작할 수 있습니다.
sidtype:unrestricted프로세스 안에 자체 서비스 SID를 가지므로, 권한에서 그것만 지목할 수 있습니다. sidtype:restricted는 프로세스가 쓰기 제한도 된 것을 묻습니다.
type:sharedProcess status:running공유 svchost 안에서 다른 서비스와 함께 실행됩니다.
memory:>200MB200MB보다 많이 사용하는 프로세스입니다. 쿼리가 묻는 경우 메모리는 스스로 읽힙니다.
pid:1000-2000ID가 1000에서 2000 사이인 프로세스 안에 있습니다.
+
+

이름과 텍스트

+
+ + + + + + + + + + + +
쿼리찾는 것
spool단어만 쓴 경우로, 이름, 표시 이름, 계정, 시작 경로에서 검색됩니다.
name:=wuauserv정확히 이 이름이며, 단지 포함할 뿐인 것은 해당되지 않습니다.
name:win*win으로 시작하는 이름이며, 와일드카드로 썼습니다.
name:/svc$/svc로 끝나는 이름이며, 정규식으로 썼습니다.
description:none설명이 전혀 없는 것으로, 대부분의 드라이버가 해당됩니다.
description:?Windows가 넘겨주지 못한 설명으로, 대개 존재하지 않는 언어 파일을 가리키기 때문입니다.
peruser:templateWindows가 로그인한 세션마다 복사하는 사용자별 템플릿입니다.
+
+
+
+
+ +
+
+

모든 필드

+

프로그램 자체에서 만들어지므로, 이 표는 도구가 받아들이는 것과 어긋날 수 없습니다. 값 목록이 없는 필드는 텍스트, 숫자, 크기를 받으며, 세 번째 열이 어느 쪽인지 알려 줍니다.

+ {{table:query-fields}} +
+
+ +
+
+

알아 둘 두 가지

+
+
+

일부 필드는 비용이 크며, 그것을 묻으면 읽기가 켜집니다

+

서명은 컴퓨터 전체에서 몇 초가 걸리고 메모리는 설정이 아니라 측정값이므로, 요청하지 않으면 목록을 위해 읽지 않습니다. 둘 중 하나를 언급하는 쿼리는 그 읽기를 스스로 켭니다. signed:no와 함께 --signatures도 기억할 필요가 없습니다. 창에서는 서명에 대한 쿼리가, 짧은 목록을 마치 답인 것처럼 보여 주는 대신 서명이 도착할 때까지 답이 불완전하다고 알려 줍니다.

+
+
+

읽을 수 없는 것을 근거로 판단한 결과는 그렇다고 말합니다

+

이 세션이 읽지 못한 필드를 근거로 항목을 판단했다면, 결과에 그 수를 알려 주는 줄이 붙습니다. 그런 결과에는 항목이 빠져 있거나 속하지 않는 항목이 들어 있을 수 있기 때문입니다. 도구 전체가 지키는 규칙과 같습니다. 읽기 실패는 답 안에 보이며, 삼켜지지 않습니다. 인증서만 주장하는 게시자도 같은 대우를 받습니다. trusted 이외의 판정 옆에서는 이름이 not verified로 표시되고, publisher:는 그 항목을 불확실한 것으로 별도의 줄에 셉니다. 그래서 !publisher:microsoft는 서명 후 누군가 변경한 Microsoft 파일을 남겨 둡니다.

+
+
+ 명령줄 참조 +
+
diff --git a/site/pages/query-language/nl.html b/site/pages/query-language/nl.html new file mode 100644 index 0000000..1315fd9 --- /dev/null +++ b/site/pages/query-language/nl.html @@ -0,0 +1,178 @@ + + + + + + + +
+
+ De querytaal +

Stel de machine een vraag

+

Eén taal, in het zoekvak van het venster en in bws list --query. Een kaal woord zoekt in de naam, de weergavenaam, het account en het opstartpad. Een veld beperkt het. {{field_count}} velden, en dezelfde tekst betekent hetzelfde in beide helften van het hulpmiddel.

+
+
+ +
+
+

Zes die een echte vraag beantwoorden

+
+

Wat zou moeten draaien en niet draait

start:auto !status:running

De eerste query die de meeste mensen schrijven, en die services.msc helemaal niet kan beantwoorden.

+

Services waarvan het bestand weg is

file:missing

Een item dat naar een uitvoerbaar bestand wijst dat niet op schijf staat. Meestal een verwijdering die de registratie heeft laten staan.

+

Niet ondertekend, zonder de sessieruis

signed:no peruser:no

De families per gebruiker maken per sessie een kopie en vullen een lijst met bijna-duplicaten. Dit vraagt naar de rest.

+

Draait terwijl uitgeschakeld

mismatch:running

Configuratie en toestand die het oneens zijn - een item dat de beheerder nooit hoort te starten, en dat toch draait.

+

Alles wat om foutopsporingsrechten vraagt

privilege:SeDebugPrivilege

Een bevoegdheid waarmee een proces elk ander proces kan openen. Het is de moeite waard te weten welke services erom vragen.

+

Wat het hulpmiddel niet kon lezen

account:?

De items waarvan deze sessie het account niet kon lezen. Een vraag die services.msc niet eens kan stellen.

+
+
+
+ +
+
+

Hoe een query wordt geschreven

+
+
+

Termen

+
    +
  • Termen worden gescheiden door spaties en ze moeten allemaal overeenkomen - er is geen sleutelwoord and omdat het niets anders zou kunnen betekenen.
  • +
  • Hetzelfde veld twee keer geschreven is de enige uitzondering: status:running status:stopped betekent een van beide, want dat is wat het aanvinken van twee filters schrijft. Twee grenzen op een getal beperken nog steeds - pid:>1000 pid:<2000 is het bereik ertussen.
  • +
  • ! voor een term ontkent hem: !status:running. In een batchbestand met setlocal EnableDelayedExpansion eet cmd die ! zonder een woord op en betekent de query stilletjes iets anders - schrijf daar ^! tussen de aanhalingstekens.
  • +
  • Een komma binnen een veld is of: start:manual,disabled.
  • +
  • Aanhalingstekens beschermen alles met spaties of dubbele punten: account:"NT SERVICE\McmSvc".
  • +
  • Een pad zoals het is geplakt - C:\Windows\System32\svchost.exe - wordt gezocht, niet gelezen als een veld met de naam C.
  • +
+
+
+

Hoe tekst wordt vergeleken

+
    +
  • name:spool komt overeen met alles wat het bevat - de standaard, want dat verwachten mensen van een zoekvak.
  • +
  • name:=spooler is exact.
  • +
  • name:spool* neemt jokertekens, * en ?.
  • +
  • name:/^Sql.*/ is een reguliere expressie, en tussen de schuine strepen wordt ze geschreven zoals reguliere expressies worden geschreven: \?, \\ en een komma betekenen daar wat ze daar betekenen. Een schuine streep die nooit sluit is een fout - om naar de schuine streep zelf te zoeken, schrijft u \/ of gebruikt u aanhalingstekens.
  • +
  • Hoofdletters worden genegeerd, ook buiten ASCII - een weergavenaam in het Pools of Grieks komt overeen hoe hij ook wordt getypt.
  • +
+
+
+

Drie woorden die elk veld accepteert

+ {{list:reserved-words}} +

Een verkeerd getypte waarde is een fout, nooit een leeg resultaat. status:runing antwoordt Did you mean running? en eindigt met code 2. Een lege lijst zou op een antwoord lijken, en het verschil tussen "niets komt overeen" en "u hebt het verkeerd getypt" is het verschil tussen een schone machine en een audit die niets bewees. Een query die niets zou beperken wordt ook op de opdrachtregel geweigerd, zodat een script niet op de hele machine werkt door een typefout.

+
+
+ +
+
+

Meer voorbeelden

+

Elk werkt hetzelfde in het zoekvak van het venster en na bws list --query, en elk is op een echte Windows uitgevoerd voordat het hier werd geschreven. Wat het vindt hangt af van de machine - en bij een vraag over problemen is een leeg antwoord degene die u wilt.

+
+

Toestand en opstarttype

+
+ + + + + + + + +
QueryWat het vindt
status:stopPending,startPendingVast bij stoppen of starten - het wachten dat de snap-in toont en dat nooit eindigt.
start:auto status:stopped trigger:noneIngesteld om automatisch te starten, gestopt, en niet wachtend op een trigger - de korte lijst die na een herstart de moeite van het lezen waard is.
start:delayedAutomatisch, een beetje na de andere automatische items gestart.
start:manual,disabled status:runningDraait hoewel niets het bij het opstarten start - iets heeft erom gevraagd, een trigger heeft het gestart, of iemand.
+
+

Accounts

+
+ + + + + + + +
QueryWat het vindt
account:localsystem !publisher:microsoftDraait als LocalSystem, het sterkste account, vanuit een bestand dat Microsoft niet heeft ondertekend. Een query over de uitgever leest handtekeningen vanzelf, dus het duurt een paar seconden.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessServices die onder een ander account draaien - een virtueel, een beheerd of dat van een persoon zelf.
account:"NT SERVICE"Een virtueel account van de service zelf. De aanhalingstekens houden de woorden bij elkaar, vanwege de spatie.
+
+

Bestanden en handtekeningen

+
+ + + + + + + + + + +
QueryWat het vindt
signed:notSigned,untrustedRoot,tamperedGeen handtekening, een keten die Windows niet vertrouwt, of een bestand dat is gewijzigd nadat het werd ondertekend.
signed:trusted !publisher:microsoftOndertekend, vertrouwd, en niet door Microsoft - de software die andere bedrijven op deze machine hebben gezet.
type:driver start:boot,system !signed:trustedStuurprogramma's die worden geladen terwijl Windows start en waarvan Windows de handtekening niet vertrouwt. Op een gezonde machine geen enkel.
!path:C:\Windows type:ownProcessEen service met een eigen proces waarvan het bestand buiten de Windows-map staat.
path:\AppData\Gestart vanuit iemands profiel, de laatste plek waar een service wordt verwacht.
path:\System32\\ type:ownProcessEen backslash voor een spatie maakt de spatie deel van het woord, dus een pad dat op een backslash eindigt wordt met twee geschreven als er nog een term op volgt. Aan het eind van de query is één genoeg.
+
+

Triggers en afhankelijkheden

+
+ + + + + + + + + +
QueryWat het vindt
trigger:device status:stoppedWacht tot een apparaat verschijnt, dus om een reden gestopt.
trigger:networkGestart wanneer een verzoek bij een netwerkeindpunt aankomt - een poort, een named pipe of een RPC-interface.
trigger:stopItems die een trigger kan stoppen, niet alleen starten.
dependson:WinmgmtItems die WMI nodig hebben om te draaien.
requiredby:SpoolerAlles wat de Print Spooler nodig heeft om te draaien, en wat die op hun beurt nodig hebben.
+
+

Bevoegdheden en processen

+
+ + + + + + + + + + +
QueryWat het vindt
privilege:SeTcbPrivilegeVraagt om op te treden als deel van het besturingssysteem.
privilege:SeImpersonatePrivilege !account:localsystemKan namens een client handelen terwijl het onder een ander account dan LocalSystem draait.
sidtype:unrestrictedDraagt een eigen service-SID in zijn proces, zodat machtigingen het alleen kunnen noemen. sidtype:restricted vraagt naar degene waarvan het proces ook schrijfbeperkt is.
type:sharedProcess status:runningDraait binnen een gedeelde svchost, samen met andere.
memory:>200MBEen proces dat meer dan 200 MB gebruikt. Geheugen wordt vanzelf gelezen wanneer een query erom vraagt.
pid:1000-2000In een proces waarvan de id tussen 1000 en 2000 ligt.
+
+

Namen en tekst

+
+ + + + + + + + + + + +
QueryWat het vindt
spoolEen kaal woord, gezocht in de naam, de weergavenaam, het account en het opstartpad.
name:=wuauservPrecies deze naam, en niets wat hem alleen maar bevat.
name:win*Namen die met win beginnen, geschreven met een jokerteken.
name:/svc$/Namen die op svc eindigen, geschreven als reguliere expressie.
description:noneHelemaal geen beschrijving, wat bij de meeste stuurprogramma's zo is.
description:?Een beschrijving die Windows niet kon aanleveren, meestal omdat ze naar een taalbestand wijst dat er niet is.
peruser:templateDe sjablonen per gebruiker die Windows kopieert voor elke aangemelde sessie.
+
+
+
+
+ +
+
+

Elk veld

+

Gebouwd uit het programma zelf, dus deze tabel kan niet afwijken van wat het hulpmiddel accepteert. Een veld zonder lijst met waarden neemt tekst, een getal of een grootte - de derde kolom zegt welke.

+ {{table:query-fields}} +
+
+ +
+
+

Twee dingen om te weten

+
+
+

Sommige velden zijn duur, en erom vragen zet het lezen aan

+

Handtekeningen kosten enkele seconden over een hele machine en geheugen is een meting en geen instelling, dus geen van beide wordt voor een lijst gelezen tenzij erom gevraagd wordt. Een query die er een noemt zet dat lezen vanzelf aan - u hoeft niet aan --signatures te denken naast signed:no. In het venster zegt een query over handtekeningen dat het antwoord onvolledig is totdat ze er zijn, in plaats van een kortere lijst te tonen alsof dat het antwoord was.

+
+
+

Een resultaat dat op iets onleesbaars is beoordeeld, zegt dat

+

Als items zijn beoordeeld op een veld dat deze sessie niet kon lezen, draagt het resultaat een regel die zegt hoeveel - omdat zo'n resultaat items kan missen, of items kan bevatten die er niet in horen. Dat is dezelfde regel die het hele hulpmiddel aanhoudt: een mislukte lezing is zichtbaar in het antwoord, nooit ingeslikt. Een uitgever krijgt dezelfde behandeling wanneer alleen het certificaat hem beweert: naast elk ander oordeel dan trusted wordt de naam getoond als not verified, en publisher: telt het item als onzeker in een regel van zichzelf - dus !publisher:microsoft behoudt een Microsoft-bestand dat iemand na het ondertekenen heeft gewijzigd.

+
+
+ De naslag van de opdrachtregel +
+
diff --git a/site/pages/query-language/page.json b/site/pages/query-language/page.json index 2b50363..2c13476 100644 --- a/site/pages/query-language/page.json +++ b/site/pages/query-language/page.json @@ -11,6 +11,12 @@ "fr": "langage-de-requete", "es": "lenguaje-de-consulta", "it": "linguaggio-di-query", - "pt-br": "linguagem-de-consulta" + "pt-br": "linguagem-de-consulta", + "nl": "querytaal", + "cs": "dotazovaci-jazyk", + "ro": "limbajul-de-interogare", + "tr": "sorgu-dili", + "id": "bahasa-kueri", + "vi": "ngon-ngu-truy-van" } } diff --git a/site/pages/query-language/ro.html b/site/pages/query-language/ro.html new file mode 100644 index 0000000..5fbf4a6 --- /dev/null +++ b/site/pages/query-language/ro.html @@ -0,0 +1,178 @@ + + + + + + + +
+
+ Limbajul de interogare +

Puneți mașinii o întrebare

+

Un singur limbaj, în caseta de căutare a ferestrei și în bws list --query. Un cuvânt simplu caută în nume, numele afișat, cont și calea de lansare. Un câmp îl restrânge. {{field_count}} câmpuri, iar același text înseamnă același lucru în ambele jumătăți ale instrumentului.

+
+
+ +
+
+

Șase care răspund la o întrebare reală

+
+

Ce ar trebui să fie pornit și nu este

start:auto !status:running

Prima interogare pe care o scriu majoritatea oamenilor, și cea la care services.msc nu poate răspunde deloc.

+

Servicii al căror fișier a dispărut

file:missing

O intrare care indică spre un executabil ce nu se află pe disc. De obicei, o dezinstalare care a lăsat înregistrarea în urmă.

+

Nesemnate, fără zgomotul sesiunilor

signed:no peruser:no

Familiile pe utilizator fac câte o copie pe sesiune și umplu lista cu aproape-duplicate. Aceasta întreabă despre restul.

+

Rulează deși este dezactivat

mismatch:running

Configurație și stare care nu concordă - o intrare pe care managerul este setat să n-o pornească niciodată, rulând totuși.

+

Tot ce cere drepturi de depanare

privilege:SeDebugPrivilege

Un privilegiu care permite unui proces să deschidă oricare altul. Merită să știți ce servicii îl cer.

+

Ce n-a putut citi instrumentul

account:?

Intrările la care această sesiune n-a putut citi contul. O întrebare pe care services.msc nici măcar nu o poate pune.

+
+
+
+ +
+
+

Cum se scrie o interogare

+
+
+

Termeni

+
    +
  • Termenii se separă prin spații și toți trebuie să se potrivească - nu există cuvântul-cheie and pentru că n-ar putea însemna altceva.
  • +
  • Același câmp scris de două ori este singura excepție: status:running status:stopped înseamnă oricare dintre ele, pentru că asta scrie bifarea a două filtre. Două limite pe un număr tot restrâng - pid:>1000 pid:<2000 este intervalul dintre ele.
  • +
  • ! în fața unui termen îl neagă: !status:running. Într-un fișier batch cu setlocal EnableDelayedExpansion, cmd înghite acel ! fără un cuvânt, iar interogarea înseamnă în tăcere altceva - scrieți acolo ^! între ghilimele.
  • +
  • O virgulă în interiorul unui câmp înseamnă sau: start:manual,disabled.
  • +
  • Ghilimelele protejează orice conține spații sau două puncte: account:"NT SERVICE\McmSvc".
  • +
  • O cale lipită ca atare - C:\Windows\System32\svchost.exe - este căutată, nu citită ca un câmp numit C.
  • +
+
+
+

Cum se potrivește textul

+
    +
  • name:spool se potrivește cu orice îl conține - implicit, pentru că asta se așteaptă oamenii de la o casetă de căutare.
  • +
  • name:=spooler este exact.
  • +
  • name:spool* acceptă metacaractere, * și ?.
  • +
  • name:/^Sql.*/ este o expresie regulată și, între bare oblice, se scrie așa cum se scriu expresiile regulate: \?, \\ și o virgulă înseamnă acolo ce înseamnă acolo. O bară oblică care nu se închide niciodată este o eroare - pentru a căuta bara însăși, scrieți \/ sau folosiți ghilimele.
  • +
  • Majusculele sunt ignorate, inclusiv în afara ASCII - un nume afișat în poloneză sau greacă se potrivește oricum ar fi tastat.
  • +
+
+
+

Trei cuvinte pe care le acceptă fiecare câmp

+ {{list:reserved-words}} +

O valoare scrisă greșit este o eroare, niciodată un rezultat gol. status:runing răspunde Did you mean running? și se încheie cu codul 2. O listă goală ar arăta ca un răspuns, iar diferența dintre "nimic nu se potrivește" și "ați scris greșit" este diferența dintre o mașină curată și un audit care n-a dovedit nimic. O interogare care n-ar restrânge nimic este refuzată și în linia de comandă, ca un script să nu opereze pe toată mașina din cauza unei greșeli de tastare.

+
+
+ +
+
+

Mai multe exemple

+

Fiecare funcționează la fel în caseta de căutare a ferestrei și după bws list --query, iar fiecare a fost rulat pe un Windows real înainte de a fi scris aici. Ce găsește depinde de mașină - iar pentru o întrebare despre probleme, un răspuns gol este cel pe care îl doriți.

+
+

Stare și tip de pornire

+
+ + + + + + + + +
InterogareCe găsește
status:stopPending,startPendingBlocat la oprire sau la pornire - așteptarea pe care snap-in-ul o arată și care nu se termină niciodată.
start:auto status:stopped trigger:noneSetat să pornească automat, oprit și care nu așteaptă un declanșator - lista scurtă care merită citită după o repornire.
start:delayedAutomat, pornit puțin după celelalte intrări automate.
start:manual,disabled status:runningRulează deși nimic nu îl pornește la boot - ceva l-a cerut, l-a pornit un declanșator sau cineva.
+
+

Conturi

+
+ + + + + + + +
InterogareCe găsește
account:localsystem !publisher:microsoftRulează ca LocalSystem, cel mai puternic cont, dintr-un fișier pe care Microsoft nu l-a semnat. O interogare despre editor citește singură semnăturile, deci durează câteva secunde.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessServicii care rulează sub orice alt cont - unul virtual, unul gestionat sau al unei persoane.
account:"NT SERVICE"Un cont virtual al serviciului însuși. Ghilimelele țin cuvintele laolaltă, din cauza spațiului.
+
+

Fișiere și semnături

+
+ + + + + + + + + + +
InterogareCe găsește
signed:notSigned,untrustedRoot,tamperedFără semnătură, un lanț în care Windows nu are încredere sau un fișier modificat după ce a fost semnat.
signed:trusted !publisher:microsoftSemnat, de încredere și nu de Microsoft - software-ul pe care alte companii l-au pus pe această mașină.
type:driver start:boot,system !signed:trustedDrivere încărcate la pornirea Windows a căror semnătură nu inspiră încredere Windows-ului. Pe o mașină sănătoasă, niciunul.
!path:C:\Windows type:ownProcessUn serviciu cu propriul proces al cărui fișier se află în afara folderului Windows.
path:\AppData\Lansat din interiorul profilului cuiva, ultimul loc în care se așteaptă un serviciu.
path:\System32\\ type:ownProcessO bară oblică inversă înaintea unui spațiu face spațiul parte din cuvânt, așa că o cale care se termină cu bară oblică inversă se scrie cu două atunci când după ea urmează alt termen. La sfârșitul interogării una este de ajuns.
+
+

Declanșatoare și dependențe

+
+ + + + + + + + + +
InterogareCe găsește
trigger:device status:stoppedAșteaptă sosirea unui dispozitiv, deci oprit dintr-un motiv.
trigger:networkPornit când o cerere ajunge la un punct final de rețea - un port, o conductă numită sau o interfață RPC.
trigger:stopIntrări pe care un declanșator le poate opri, nu doar porni.
dependson:WinmgmtIntrări care au nevoie de WMI pentru a rula.
requiredby:SpoolerTot ce are nevoie Print Spooler ca să ruleze și ce au nevoie la rândul lor acelea.
+
+

Privilegii și procese

+
+ + + + + + + + + + +
InterogareCe găsește
privilege:SeTcbPrivilegeCere să acționeze ca parte a sistemului de operare.
privilege:SeImpersonatePrivilege !account:localsystemPoate acționa în numele unui client rulând sub alt cont decât LocalSystem.
sidtype:unrestrictedPoartă propriul SID de serviciu în procesul său, deci permisiunile îl pot numi doar pe el. sidtype:restricted întreabă despre cele al căror proces este și restricționat la scriere.
type:sharedProcess status:runningRulează în interiorul unui svchost partajat, împreună cu altele.
memory:>200MBUn proces care folosește mai mult de 200 MB. Memoria este citită singură când o interogare întreabă despre ea.
pid:1000-2000Într-un proces al cărui id se află între 1000 și 2000.
+
+

Nume și text

+
+ + + + + + + + + + + +
InterogareCe găsește
spoolUn cuvânt simplu, căutat în nume, numele afișat, cont și calea de lansare.
name:=wuauservExact acest nume și nimic care îl conține doar.
name:win*Nume care încep cu win, scrise cu metacaracter.
name:/svc$/Nume care se termină în svc, scrise ca expresie regulată.
description:noneNicio descriere deloc, ceea ce este cazul majorității driverelor.
description:?O descriere pe care Windows n-a putut-o preda, de obicei pentru că indică un fișier de limbă care lipsește.
peruser:templateȘabloanele pe utilizator pe care Windows le copiază pentru fiecare sesiune autentificată.
+
+
+
+
+ +
+
+

Fiecare câmp

+

Construit din programul însuși, deci acest tabel nu se poate abate de la ce acceptă instrumentul. Un câmp fără listă de valori acceptă text, un număr sau o dimensiune - a treia coloană spune care.

+ {{table:query-fields}} +
+
+ +
+
+

Două lucruri bune de știut

+
+
+

Unele câmpuri sunt scumpe, iar a le cere pornește citirea

+

Semnăturile durează câteva secunde pe o mașină întreagă, iar memoria este o măsurătoare și nu o setare, așa că niciuna nu este citită pentru o listă decât dacă se cere. O interogare care menționează una pornește singură acea citire - nu trebuie să vă amintiți --signatures pe lângă signed:no. În fereastră, o interogare despre semnături spune că răspunsul este incomplet până sosesc, în loc să arate o listă mai scurtă ca și cum ar fi răspunsul.

+
+
+

Un rezultat judecat după ceva necitibil spune asta

+

Dacă intrările au fost judecate după un câmp pe care această sesiune nu l-a putut citi, rezultatul poartă o linie care spune câte - pentru că un astfel de rezultat poate lipsi intrări sau poate conține unele care nu îi aparțin. Este aceeași regulă pe care o respectă tot instrumentul: o citire eșuată este vizibilă în răspuns, niciodată înghițită. Un editor primește același tratament când doar certificatul îl afirmă: lângă orice verdict altul decât trusted numele este afișat ca not verified, iar publisher: socotește intrarea nesigură pe o linie proprie - deci !publisher:microsoft păstrează un fișier Microsoft pe care cineva l-a modificat după semnare.

+
+
+ Referința liniei de comandă +
+
diff --git a/site/pages/query-language/ru.html b/site/pages/query-language/ru.html new file mode 100644 index 0000000..36cfc36 --- /dev/null +++ b/site/pages/query-language/ru.html @@ -0,0 +1,178 @@ + + + + + + + +
+
+ Язык запросов +

Задайте машине вопрос

+

Один язык, в поле поиска окна и в bws list --query. Простое слово ищет в имени, отображаемом имени, учётной записи и пути запуска. Поле сужает поиск. {{field_count}} полей, и один и тот же текст значит одно и то же в обеих половинах инструмента.

+
+
+ +
+
+

Шесть запросов, отвечающих на настоящий вопрос

+
+

Что должно работать и не работает

start:auto !status:running

Первый запрос, который пишут большинство людей, и тот, на который services.msc не может ответить вовсе.

+

Службы, чей файл пропал

file:missing

Запись, указывающая на исполняемый файл, которого нет на диске. Обычно это удаление, оставившее регистрацию.

+

Неподписанные, без шума от сеансов

signed:no peruser:no

Семейства для каждого пользователя делают копию на каждый сеанс и заполняют список почти одинаковыми записями. Этот запрос спрашивает об остальных.

+

Работает, хотя отключена

mismatch:running

Конфигурация и состояние расходятся: запись, которую диспетчер настроен никогда не запускать, всё равно работает.

+

Всё, что просит права отладки

privilege:SeDebugPrivilege

Привилегия, позволяющая процессу открыть любой другой. Стоит знать, какие службы её просят.

+

Что инструмент не смог прочитать

account:?

Записи, у которых этот сеанс не смог прочитать учётную запись. Вопрос, который services.msc даже не может задать.

+
+
+
+ +
+
+

Как пишется запрос

+
+
+

Термы

+
    +
  • Термы разделяются пробелами, и должны совпасть все - ключевого слова and нет, потому что оно не могло бы значить ничего другого.
  • +
  • Единственное исключение - одно и то же поле, написанное дважды: status:running status:stopped значит одно или другое, потому что именно это пишет отметка двух фильтров. Две границы числа всё же сужают: pid:>1000 pid:<2000 - это диапазон между ними.
  • +
  • ! перед термом отрицает его: !status:running. В пакетном файле с setlocal EnableDelayedExpansion cmd молча съедает этот !, и запрос тихо начинает значить другое - напишите там ^! внутри кавычек.
  • +
  • Запятая внутри поля значит или: start:manual,disabled.
  • +
  • Кавычки защищают всё, что содержит пробелы или двоеточия: account:"NT SERVICE\McmSvc".
  • +
  • Путь, вставленный как есть, - C:\Windows\System32\svchost.exe - ищется, а не читается как поле с именем C.
  • +
+
+
+

Как сопоставляется текст

+
    +
  • name:spool совпадает со всем, что его содержит - это по умолчанию, потому что этого люди ждут от поля поиска.
  • +
  • name:=spooler - точное совпадение.
  • +
  • name:spool* принимает подстановочные знаки, * и ?.
  • +
  • name:/^Sql.*/ - регулярное выражение, и внутри косых черт оно пишется так, как пишутся регулярные выражения: \?, \\ и запятая значат там то, что значат там. Косая черта, которая никогда не закрывается, - ошибка: чтобы искать саму косую черту, напишите \/ или используйте кавычки.
  • +
  • Регистр игнорируется, в том числе вне ASCII: отображаемое имя на польском или греческом совпадает, как бы его ни набрали.
  • +
+
+
+

Три слова, которые принимает каждое поле

+ {{list:reserved-words}} +

Неверно набранное значение - это ошибка, а не пустой результат. status:runing отвечает Did you mean running? и завершается кодом 2. Пустой список выглядел бы как ответ, а разница между «ничего не совпадает» и «вы опечатались» - это разница между чистой машиной и аудитом, который ничего не доказал. Запрос, который ничего бы не сузил, отклоняется и в командной строке, чтобы скрипт не работал со всей машиной из-за опечатки.

+
+
+ +
+
+

Ещё примеры

+

Каждый работает одинаково в поле поиска окна и после bws list --query, и каждый был выполнен на настоящей Windows, прежде чем был записан здесь. Что он находит, зависит от машины - а для вопроса о неполадках пустой ответ - тот, который вам нужен.

+
+

Состояние и тип запуска

+
+ + + + + + + + +
ЗапросЧто находит
status:stopPending,startPendingЗастрявшие при остановке или запуске - ожидание, которое показывает оснастка и которое никогда не заканчивается.
start:auto status:stopped trigger:noneНастроены на автозапуск, остановлены и не ждут триггера - короткий список, который стоит прочитать после перезагрузки.
start:delayedАвтоматические, запускаемые чуть позже остальных автоматических записей.
start:manual,disabled status:runningРаботают, хотя при загрузке их ничто не запускает: их запросили, их запустил триггер или кто-то.
+
+

Учётные записи

+
+ + + + + + + +
ЗапросЧто находит
account:localsystem !publisher:microsoftРаботает как LocalSystem, самая сильная учётная запись, из файла, который Microsoft не подписывала. Запрос об издателе сам читает подписи, поэтому занимает несколько секунд.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessСлужбы, работающие под любой другой учётной записью: виртуальной, управляемой или чьей-то личной.
account:"NT SERVICE"Собственная виртуальная учётная запись службы. Кавычки удерживают слова вместе из-за пробела.
+
+

Файлы и подписи

+
+ + + + + + + + + + +
ЗапросЧто находит
signed:notSigned,untrustedRoot,tamperedНет подписи, цепочка, которой Windows не доверяет, или файл, изменённый после подписания.
signed:trusted !publisher:microsoftПодписаны, доверенные и не от Microsoft - программы, которые другие компании поставили на эту машину.
type:driver start:boot,system !signed:trustedДрайверы, загружаемые при старте Windows, подписи которых Windows не доверяет. На здоровой машине - ни одного.
!path:C:\Windows type:ownProcessСлужба со своим процессом, чей файл лежит вне папки Windows.
path:\AppData\Запущены из чьего-то профиля - последнего места, где ждёшь службу.
path:\System32\\ type:ownProcessОбратная косая черта перед пробелом делает пробел частью слова, поэтому путь, оканчивающийся обратной косой чертой, пишется с двумя, если за ним идёт другой терм. В конце запроса достаточно одной.
+
+

Триггеры и зависимости

+
+ + + + + + + + + +
ЗапросЧто находит
trigger:device status:stoppedЖдёт появления устройства, поэтому остановлена не без причины.
trigger:networkЗапускается, когда запрос приходит на сетевую конечную точку: порт, именованный канал или интерфейс RPC.
trigger:stopЗаписи, которые триггер может не только запускать, но и останавливать.
dependson:WinmgmtЗаписи, которым для работы нужен WMI.
requiredby:SpoolerВсё, что нужно Print Spooler для работы, и то, что нужно им в свою очередь.
+
+

Привилегии и процессы

+
+ + + + + + + + + + +
ЗапросЧто находит
privilege:SeTcbPrivilegeПросит права действовать как часть операционной системы.
privilege:SeImpersonatePrivilege !account:localsystemМожет действовать от имени клиента, работая под учётной записью, отличной от LocalSystem.
sidtype:unrestrictedНесёт в своём процессе собственный SID службы, поэтому разрешения могут называть только её. sidtype:restricted спрашивает о тех, чей процесс к тому же ограничен на запись.
type:sharedProcess status:runningРаботает внутри общего svchost вместе с другими.
memory:>200MBПроцесс, использующий больше 200 МБ. Память читается сама, когда запрос о ней спрашивает.
pid:1000-2000В процессе с идентификатором от 1000 до 2000.
+
+

Имена и текст

+
+ + + + + + + + + + + +
ЗапросЧто находит
spoolПростое слово, ищется в имени, отображаемом имени, учётной записи и пути запуска.
name:=wuauservИменно это имя и ничего, что лишь содержит его.
name:win*Имена, начинающиеся с win, записанные с подстановочным знаком.
name:/svc$/Имена, оканчивающиеся на svc, записанные как регулярное выражение.
description:noneВообще без описания, как у большинства драйверов.
description:?Описание, которое Windows не смогла выдать, обычно потому что оно указывает на файл языка, которого нет.
peruser:templateШаблоны для каждого пользователя, которые Windows копирует на каждый вошедший сеанс.
+
+
+
+
+ +
+
+

Каждое поле

+

Строится из самой программы, поэтому эта таблица не может разойтись с тем, что принимает инструмент. Поле без списка значений принимает текст, число или размер - третий столбец говорит какое.

+ {{table:query-fields}} +
+
+ +
+
+

Два момента, которые стоит знать

+
+
+

Некоторые поля дорогие, и обращение к ним включает чтение

+

Подписи занимают несколько секунд на всей машине, а память - это измерение, а не настройка, поэтому ни то ни другое не читается для списка, пока не попросят. Запрос, упоминающий одно из них, сам включает это чтение: не нужно помнить --signatures в дополнение к signed:no. В окне запрос о подписях сообщает, что ответ неполон, пока они не придут, вместо того чтобы показывать более короткий список так, будто это и есть ответ.

+
+
+

Результат, вынесенный по непрочитанному, говорит об этом

+

Если записи оценивались по полю, которое этот сеанс не смог прочитать, результат несёт строку, сообщающую сколько их, - потому что в таком результате могут не хватать записей или быть лишние. Это то же правило, которого держится весь инструмент: неудачное чтение видно в ответе и никогда не проглатывается. Издатель получает то же обращение, когда его заявляет только сертификат: рядом с любым вердиктом, кроме trusted, имя показывается как not verified, а publisher: считает запись неуверенной в отдельной строке, - поэтому !publisher:microsoft сохраняет файл Microsoft, который кто-то изменил после подписания.

+
+
+ Справочник командной строки +
+
diff --git a/site/pages/query-language/tr.html b/site/pages/query-language/tr.html new file mode 100644 index 0000000..a03c4f5 --- /dev/null +++ b/site/pages/query-language/tr.html @@ -0,0 +1,177 @@ + + + + + + + +
+
+ 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. {{field_count}} 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

+ {{list:reserved-words}} +

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.

+ {{table:query-fields}} +
+
+ +
+
+

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 +
+
diff --git a/site/pages/query-language/uk.html b/site/pages/query-language/uk.html new file mode 100644 index 0000000..11c7c95 --- /dev/null +++ b/site/pages/query-language/uk.html @@ -0,0 +1,177 @@ + + + + + + + +
+
+ Мова запитів +

Поставте машині запитання

+

Одна мова, у полі пошуку вікна й у bws list --query. Просте слово шукає в імені, відображуваному імені, обліковому записі та шляху запуску. Поле звужує пошук. Полів: {{field_count}}, і той самий текст означає те саме в обох половинах інструмента.

+
+
+ +
+
+

Шість, що відповідають на справжнє запитання

+
+

Що має працювати й не працює

start:auto !status:running

Перший запит, який пише більшість людей, і той, на який services.msc не відповідає взагалі.

+

Служби, чий файл зник

file:missing

Запис, що вказує на виконуваний файл, якого немає на диску. Зазвичай це видалення, що залишило реєстрацію.

+

Непідписані, без шуму сеансів

signed:no peruser:no

Сімейства для кожного користувача створюють копію на сеанс і заповнюють список майже однаковими записами. Цей запит питає про решту.

+

Працює, хоча вимкнено

mismatch:running

Конфігурація й стан, що розходяться: запис, який диспетчер налаштовано ніколи не запускати, а він усе одно працює.

+

Усе, що просить права налагодження

privilege:SeDebugPrivilege

Привілей, що дозволяє процесу відкрити будь-який інший. Варто знати, які служби його просять.

+

Що інструмент не зміг прочитати

account:?

Записи, де цей сеанс не зміг прочитати обліковий запис. Запитання, якого services.msc навіть не вміє поставити.

+
+
+
+ +
+
+

Як пишеться запит

+
+
+

Терміни

+
    +
  • Терміни розділяються пробілами, і всі вони мають збігатися - ключового слова and немає, бо нічого іншого воно не могло б означати.
  • +
  • Те саме поле, написане двічі, - єдиний виняток: status:running status:stopped означає будь-яке з двох, бо саме це записує позначення двох фільтрів. Дві межі числа все одно звужують - pid:>1000 pid:<2000 це діапазон між ними.
  • +
  • ! перед терміном заперечує його: !status:running. У пакетному файлі з setlocal EnableDelayedExpansion cmd без жодного слова з'їдає цей !, і запит мовчки означає щось інше - пишіть там ^! усередині лапок.
  • +
  • Кома всередині поля означає або: start:manual,disabled.
  • +
  • Лапки захищають усе з пробілами чи двокрапками: account:"NT SERVICE\McmSvc".
  • +
  • Шлях, вставлений як є, - C:\Windows\System32\svchost.exe - шукається, а не читається як поле з назвою C.
  • +
+
+
+

Як зіставляється текст

+
    +
  • name:spool збігається з усім, що це містить - це типова поведінка, бо саме цього люди чекають від поля пошуку.
  • +
  • name:=spooler - точний збіг.
  • +
  • name:spool* приймає шаблони, * і ?.
  • +
  • name:/^Sql.*/ - регулярний вираз, і всередині скісних рисок він пишеться так, як пишуться регулярні вирази: \?, \\ і кома означають те, що означають там. Скісна риска, що ніколи не закривається, - помилка: щоб шукати саму скісну риску, пишіть \/ або беріть лапки.
  • +
  • Регістр ігнорується, зокрема й поза ASCII - відображуване ім'я польською чи грецькою збігається, як би його не набрали.
  • +
+
+
+

Три слова, які приймає кожне поле

+ {{list:reserved-words}} +

Помилково набране значення - це помилка, а не порожній результат. status:runing відповідає Did you mean running? і завершується кодом 2. Порожній список виглядав би як відповідь, а різниця між «нічого не збігається» й «ви набрали неправильно» - це різниця між чистою машиною та аудитом, що нічого не довів. Запит, який нічого б не звузив, відхиляється і в командному рядку, тож скрипт не діє на всю машину через одруківку.

+
+
+ +
+
+

Більше прикладів

+

Кожен працює однаково в полі пошуку вікна й після bws list --query, і кожен був запущений на справжній Windows, перш ніж його тут записали. Що він знаходить, залежить від машини - а для запитання про неприємності порожня відповідь якраз та, якої ви хочете.

+
+

Стан і тип запуску

+
+ + + + + + + + +
ЗапитЩо він знаходить
status:stopPending,startPendingЗастрягли на зупинці чи запуску - очікування, яке показує оснастка й яке ніколи не закінчується.
start:auto status:stopped trigger:noneНалаштовано на автозапуск, зупинено й не чекає тригера - короткий список, який варто прочитати після перезавантаження.
start:delayedАвтоматичний, запускається трохи пізніше за інші автоматичні записи.
start:manual,disabled status:runningПрацює, хоча його ніщо не запускає під час завантаження - його попросило щось, запустив тригер або хтось.
+
+

Облікові записи

+
+ + + + + + + +
ЗапитЩо він знаходить
account:localsystem !publisher:microsoftПрацює від LocalSystem, найпотужнішого облікового запису, з файлу, який Microsoft не підписала. Запит про видавця сам читає підписи, тож це займає кілька секунд.
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcessСлужби, що працюють від будь-якого іншого облікового запису - віртуального, керованого або власного облікового запису людини.
account:"NT SERVICE"Власний віртуальний обліковий запис служби. Лапки тримають слова разом через пробіл.
+
+

Файли й підписи

+
+ + + + + + + + + + +
ЗапитЩо він знаходить
signed:notSigned,untrustedRoot,tamperedБез підпису, ланцюжок, якому Windows не довіряє, або файл, змінений після підписання.
signed:trusted !publisher:microsoftПідписано, довірено й не Microsoft - програмне забезпечення, яке на цю машину поставили інші компанії.
type:driver start:boot,system !signed:trustedДрайвери, що завантажуються під час запуску Windows, підпису яких Windows не довіряє. На здоровій машині - жодного.
!path:C:\Windows type:ownProcessСлужба з власним процесом, чий файл лежить поза текою Windows.
path:\AppData\Запущено зсередини чийогось профілю - останнє місце, де чекаєш службу.
path:\System32\\ type:ownProcessЗворотна скісна риска перед пробілом робить пробіл частиною слова, тому шлях, що закінчується зворотною скісною рискою, пишеться з двома, коли після нього йде інший термін. У кінці запиту досить однієї.
+
+

Тригери й залежності

+
+ + + + + + + + + +
ЗапитЩо він знаходить
trigger:device status:stoppedЧекає на появу пристрою, тож зупинена не без причини.
trigger:networkЗапускається, коли запит надходить до мережевої кінцевої точки - порту, іменованого каналу чи інтерфейсу RPC.
trigger:stopЗаписи, які тригер може й зупинити, не лише запустити.
dependson:WinmgmtЗаписи, яким для роботи потрібен WMI.
requiredby:SpoolerУсе, що потрібне Print Spooler для роботи, і те, що потрібне цим у свою чергу.
+
+

Привілеї й процеси

+
+ + + + + + + + + + +
ЗапитЩо він знаходить
privilege:SeTcbPrivilegeПросить права діяти як частина операційної системи.
privilege:SeImpersonatePrivilege !account:localsystemМоже діяти від імені клієнта, працюючи від облікового запису, відмінного від LocalSystem.
sidtype:unrestrictedНесе власний SID служби у своєму процесі, тож дозволи можуть називати саме її. sidtype:restricted питає про ті, чий процес ще й обмежений на запис.
type:sharedProcess status:runningПрацює всередині спільного svchost разом з іншими.
memory:>200MBПроцес, що використовує понад 200 МБ. Пам'ять читається сама, коли запит про неї питає.
pid:1000-2000У процесі, чий ідентифікатор між 1000 і 2000.
+
+

Імена й текст

+
+ + + + + + + + + + + +
ЗапитЩо він знаходить
spoolПросте слово, що шукається в імені, відображуваному імені, обліковому записі та шляху запуску.
name:=wuauservРівно це ім'я, і нічого, що лише його містить.
name:win*Імена, що починаються на win, записані із шаблоном.
name:/svc$/Імена, що закінчуються на svc, записані як регулярний вираз.
description:noneЗовсім без опису, а це більшість драйверів.
description:?Опис, який Windows не зміг передати, зазвичай тому, що він вказує на файл мови, якого немає.
peruser:templateШаблони для кожного користувача, які Windows копіює для кожного сеансу ввійшовшого користувача.
+
+
+
+
+ +
+
+

Кожне поле

+

Побудовано з самої програми, тож ця таблиця не може розійтися з тим, що приймає інструмент. Поле без списку значень приймає текст, число або розмір - третій стовпець каже, що саме.

+ {{table:query-fields}} +
+
+ +
+
+

Дві речі, які варто знати

+
+
+

Деякі поля дорогі, і запит про них вмикає читання

+

Підписи на всій машині займають кілька секунд, а пам'ять - це вимірювання, а не налаштування, тож жодне з них не читається для списку, поки не попросять. Запит, що згадує одне з них, сам вмикає це читання - вам не треба пам'ятати --signatures на додачу до signed:no. У вікні запит про підписи каже, що відповідь неповна, доки вони не надійдуть, а не показує коротший список, ніби це і є відповідь.

+
+
+

Результат, оцінений за нечитабельним, каже про це

+

Якщо записи оцінювалися за полем, яке цей сеанс не зміг прочитати, результат несе рядок із кількістю таких - бо в такому результаті можуть бракувати записів або бути зайві. Це те саме правило, якого дотримується весь інструмент: невдале читання видно у відповіді, воно ніколи не проковтується. Видавець отримує те саме поводження, коли його заявляє лише сертифікат: поруч із будь-яким вердиктом, крім trusted, ім'я показується як not verified, а publisher: зараховує запис як непевний в окремому рядку - тож !publisher:microsoft зберігає файл Microsoft, який хтось змінив після підписання.

+
+
+ Довідник командного рядка +
+
diff --git a/site/pages/query-language/vi.html b/site/pages/query-language/vi.html new file mode 100644 index 0000000..f6f52ea --- /dev/null +++ b/site/pages/query-language/vi.html @@ -0,0 +1,177 @@ + + + + + + + +
+
+ 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ó. {{field_count}} 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

+ {{list:reserved-words}} +

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.

+ {{table:query-fields}} +
+
+ +
+
+

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 +
+
diff --git a/site/pages/query-language/zh-hans.html b/site/pages/query-language/zh-hans.html new file mode 100644 index 0000000..478c063 --- /dev/null +++ b/site/pages/query-language/zh-hans.html @@ -0,0 +1,177 @@ + + + + + + + +
+
+ 查询语言 +

向计算机提问

+

一种语言,既用于窗口的搜索框,也用于 bws list --query。单独一个词会在名称、显示名称、账户和启动路径中搜索。加上字段则缩小范围。共有 {{field_count}} 个字段,相同的文本在工具的两部分中含义相同。

+
+
+ +
+
+

六个能回答实际问题的查询

+
+

应该在运行却没有运行的内容

start:auto !status:running

大多数人写的第一个查询,也是 services.msc 完全无法回答的查询。

+

文件已丢失的服务

file:missing

指向磁盘上不存在的可执行文件的条目。通常是卸载后遗留了注册信息。

+

未签名,去掉会话噪声

signed:no peruser:no

按用户的服务族会为每个会话生成一个副本,让列表里充满近似重复的条目。这个查询询问的是其余的部分。

+

已禁用却仍在运行

mismatch:running

配置与状态不一致:一个被服务管理器设为永不启动的条目,却仍在运行。

+

任何请求调试权限的内容

privilege:SeDebugPrivilege

一种让进程能够打开任何其他进程的特权。值得知道哪些服务请求了它。

+

工具无法读取的内容

account:?

此会话无法读取其账户的条目。这是 services.msc 连问都问不出的问题。

+
+
+
+ +
+
+

如何书写查询

+
+
+

检索词

+
    +
  • 检索词以空格分隔,并且必须全部匹配:没有 and 关键字,因为它不可能有别的含义。
  • +
  • 同一个字段写两次是唯一的例外:status:running status:stopped 表示二者之一,因为勾选两个筛选项时写出的就是这个。对数字的两个边界仍然会缩小范围:pid:>1000 pid:<2000 就是二者之间的范围。
  • +
  • 检索词前的 ! 表示取反:!status:running。在带有 setlocal EnableDelayedExpansion 的批处理文件中,cmd 会悄无声息地吃掉这个 !,查询便在不知不觉中变成了别的意思:在那里请在引号内写成 ^!。
  • +
  • 字段内的逗号表示或:start:manual,disabled。
  • +
  • 引号可以保护含有空格或冒号的内容:account:"NT SERVICE\McmSvc"。
  • +
  • 原样粘贴的路径,例如 C:\Windows\System32\svchost.exe,会被当作搜索内容,而不是被当作名为 C 的字段。
  • +
+
+
+

文本如何匹配

+
    +
  • name:spool 匹配任何包含它的内容:这是默认行为,因为这是人们对搜索框的预期。
  • +
  • name:=spooler 是精确匹配。
  • +
  • name:spool* 支持通配符 * 和 ?。
  • +
  • name:/^Sql.*/ 是正则表达式,在斜杠内按正则表达式的写法书写:\?、\\ 和逗号在那里是什么意思就是什么意思。一个永远不闭合的斜杠是错误:要搜索斜杠本身,请写成 \/ 或使用引号。
  • +
  • 大小写会被忽略,包括 ASCII 之外的字符:波兰语或希腊语的显示名称,无论怎么输入都能匹配。
  • +
+
+
+

每个字段都接受的三个词

+ {{list:reserved-words}} +

输错的值会报错,而不是返回空结果。status:runing 会回答 Did you mean running?,并以代码 2 结束。空列表看起来就像一个答案,而“没有任何匹配”与“你输错了”之间的差别,就是一台干净的计算机与一次什么也没证明的审计之间的差别。在命令行中,任何不会缩小范围的查询同样会被拒绝,所以脚本不会因为一个拼写错误而对整台计算机进行操作。

+
+
+ +
+
+

更多示例

+

每一个在窗口的搜索框中和在 bws list --query 之后的效果都一样,而且每一个在写到这里之前都在真实的 Windows 上运行过。能找到什么取决于计算机:对于关于故障的问题,空结果正是你想要的答案。

+
+

状态与启动类型

+
+ + + + + + + + +
查询找到的内容
status:stopPending,startPending卡在停止或启动中:管理单元显示、永远不会结束的等待。
start:auto status:stopped trigger:none设为自动启动、已停止,且不在等待触发器:重启之后值得一读的简短列表。
start:delayed自动,比其他自动条目稍晚启动。
start:manual,disabled status:running启动时没有任何内容会启动它却在运行:有东西请求了它、触发器启动了它,或者有人启动了它。
+
+

账户

+
+ + + + + + + +
查询找到的内容
account:localsystem !publisher:microsoft以最强的账户 LocalSystem 运行,且来自 Microsoft 没有签名的文件。关于发布者的查询会自行读取签名,所以需要几秒钟。
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcess在其他任何账户下运行的服务:虚拟账户、托管账户,或某个人自己的账户。
account:"NT SERVICE"服务自己的虚拟账户。引号把这些词放在一起,因为中间有空格。
+
+

文件与签名

+
+ + + + + + + + + + +
查询找到的内容
signed:notSigned,untrustedRoot,tampered没有签名,Windows 不信任的证书链,或签名之后被更改的文件。
signed:trusted !publisher:microsoft已签名、受信任,且不是 Microsoft:其他公司放在这台计算机上的软件。
type:driver start:boot,system !signed:trusted在 Windows 启动时加载、而 Windows 不信任其签名的驱动程序。在健康的计算机上应为零。
!path:C:\Windows type:ownProcess有独立进程、其文件位于 Windows 文件夹之外的服务。
path:\AppData\从某人的用户配置文件内部启动:最不应该出现服务的地方。
path:\System32\\ type:ownProcess空格前的反斜杠会让空格成为词的一部分,所以当后面还有其他检索词时,以反斜杠结尾的路径要写两个反斜杠。在查询末尾,一个就够了。
+
+

触发器与依赖关系

+
+ + + + + + + + + +
查询找到的内容
trigger:device status:stopped等待设备到达,因此是有原因的已停止。
trigger:network当请求到达某个网络端点(端口、命名管道或 RPC 接口)时启动。
trigger:stop触发器不仅可以启动、也可以停止的条目。
dependson:Winmgmt需要 WMI 才能运行的条目。
requiredby:SpoolerPrint Spooler 运行所需要的一切,以及这些内容又依次需要的一切。
+
+

特权与进程

+
+ + + + + + + + + + +
查询找到的内容
privilege:SeTcbPrivilege请求以操作系统的一部分身份运行。
privilege:SeImpersonatePrivilege !account:localsystem在 LocalSystem 之外的账户下运行时,可以代表客户端执行操作。
sidtype:unrestricted其进程中带有自己的服务 SID,因此权限可以单独指名它。sidtype:restricted 询问的是其进程同时还受写入限制的那些。
type:sharedProcess status:running与其他服务一起运行在共享的 svchost 内。
memory:>200MB占用超过 200 MB 的进程。查询询问内存时,会自动读取内存。
pid:1000-2000位于进程 ID 在 1000 到 2000 之间的进程中。
+
+

名称与文本

+
+ + + + + + + + + + + +
查询找到的内容
spool单独一个词,在名称、显示名称、账户和启动路径中搜索。
name:=wuauserv恰好是这个名称,而不是仅仅包含它的内容。
name:win*以 win 开头的名称,用通配符书写。
name:/svc$/以 svc 结尾的名称,用正则表达式书写。
description:none完全没有描述,大多数驱动程序都是这样。
description:?Windows 无法提供的描述,通常是因为它指向一个不存在的语言文件。
peruser:templateWindows 为每个已登录会话复制的按用户模板。
+
+
+
+
+ +
+
+

每个字段

+

由程序本身生成,因此这张表不会与工具接受的内容脱节。没有取值列表的字段接受文本、数字或大小:第三列会说明是哪一种。

+ {{table:query-fields}} +
+
+ +
+
+

两件值得知道的事

+
+
+

有些字段开销很大,查询它们会自动开启读取

+

在整台计算机上读取签名需要几秒钟,而内存是一项测量而不是一项设置,所以除非被要求,否则都不会为列表读取它们。提到其中任何一项的查询会自动开启这项读取:你不必在 signed:no 之外再记着加 --signatures。在窗口中,关于签名的查询会说明在签名到达之前答案并不完整,而不是展示一份较短的列表、仿佛那就是答案。

+
+
+

基于无法读取内容得出的结果会明说

+

如果条目是依据此会话无法读取的字段来判断的,结果会带有一行说明有多少个,因为这样的结果可能缺少条目,或者包含了不该有的条目。这与整个工具遵守的规则相同:读取失败会在答案中可见,绝不会被吞掉。如果发布者仅由证书声称,也会得到同样的处理:在任何非 trusted 的判定旁边,名称会显示为 not verified,而 publisher: 会在单独一行中把该条目计为不确定,所以 !publisher:microsoft 会保留某个在签名后被人更改过的 Microsoft 文件。

+
+
+ 命令行参考 +
+
diff --git a/site/pages/query-language/zh-hant.html b/site/pages/query-language/zh-hant.html new file mode 100644 index 0000000..11fad90 --- /dev/null +++ b/site/pages/query-language/zh-hant.html @@ -0,0 +1,177 @@ + + + + + + + +
+
+ 查詢語言 +

向電腦提問

+

一種語言,既用於視窗的搜尋框,也用於 bws list --query。單獨一個詞會在名稱、顯示名稱、帳戶和啟動路徑中搜尋。加上欄位則縮小範圍。共有 {{field_count}} 個欄位,相同的文字在工具的兩部分中含義相同。

+
+
+ +
+
+

六個能回答實際問題的查詢

+
+

應該執行卻沒有執行的內容

start:auto !status:running

大多數人寫的第一個查詢,也是 services.msc 完全無法回答的查詢。

+

檔案已遺失的服務

file:missing

指向磁碟上不存在的可執行檔的項目。通常是解除安裝後遺留了登錄資訊。

+

未簽章,去掉工作階段雜訊

signed:no peruser:no

依使用者的服務族會為每個工作階段產生一個副本,讓清單裡充滿近似重複的項目。這個查詢詢問的是其餘的部分。

+

已停用卻仍在執行

mismatch:running

組態與狀態不一致:一個被服務管理員設為永不啟動的項目,卻仍在執行。

+

任何要求偵錯權限的內容

privilege:SeDebugPrivilege

一種讓處理程序能夠開啟任何其他處理程序的特殊權限。值得知道哪些服務要求了它。

+

工具無法讀取的內容

account:?

此工作階段無法讀取其帳戶的項目。這是 services.msc 連問都問不出的問題。

+
+
+
+ +
+
+

如何撰寫查詢

+
+
+

搜尋詞

+
    +
  • 搜尋詞以空格分隔,並且必須全部符合:沒有 and 關鍵字,因為它不可能有別的含義。
  • +
  • 同一個欄位寫兩次是唯一的例外:status:running status:stopped 表示二者之一,因為勾選兩個篩選項目時寫出的就是這個。對數字的兩個邊界仍然會縮小範圍:pid:>1000 pid:<2000 就是二者之間的範圍。
  • +
  • 搜尋詞前的 ! 表示否定:!status:running。在帶有 setlocal EnableDelayedExpansion 的批次檔中,cmd 會悄無聲息地吃掉這個 !,查詢便在不知不覺中變成了別的意思:在那裡請在引號內寫成 ^!。
  • +
  • 欄位內的逗號表示或:start:manual,disabled。
  • +
  • 引號可以保護含有空格或冒號的內容:account:"NT SERVICE\McmSvc"。
  • +
  • 原樣貼上的路徑,例如 C:\Windows\System32\svchost.exe,會被當作搜尋內容,而不是被當作名為 C 的欄位。
  • +
+
+
+

文字如何比對

+
    +
  • name:spool 比對任何包含它的內容:這是預設行為,因為這是人們對搜尋框的預期。
  • +
  • name:=spooler 是完全比對。
  • +
  • name:spool* 支援萬用字元 * 和 ?。
  • +
  • name:/^Sql.*/ 是規則運算式,在斜線內依規則運算式的寫法撰寫:\?、\\ 和逗號在那裡是什麼意思就是什麼意思。一個永遠不閉合的斜線是錯誤:要搜尋斜線本身,請寫成 \/ 或使用引號。
  • +
  • 大小寫會被忽略,包括 ASCII 之外的字元:波蘭語或希臘語的顯示名稱,無論怎麼輸入都能比對。
  • +
+
+
+

每個欄位都接受的三個詞

+ {{list:reserved-words}} +

輸錯的值會報錯,而不是傳回空結果。status:runing 會回答 Did you mean running?,並以代碼 2 結束。空清單看起來就像一個答案,而「沒有任何符合」與「你輸錯了」之間的差別,就是一台乾淨的電腦與一次什麼也沒證明的稽核之間的差別。在命令列中,任何不會縮小範圍的查詢同樣會被拒絕,所以指令碼不會因為一個拼寫錯誤而對整台電腦進行操作。

+
+
+ +
+
+

更多範例

+

每一個在視窗的搜尋框中和在 bws list --query 之後的效果都一樣,而且每一個在寫到這裡之前都在真實的 Windows 上執行過。能找到什麼取決於電腦:對於關於故障的問題,空結果正是你想要的答案。

+
+

狀態與啟動類型

+
+ + + + + + + + +
查詢找到的內容
status:stopPending,startPending卡在停止或啟動中:管理單元顯示、永遠不會結束的等待。
start:auto status:stopped trigger:none設為自動啟動、已停止,且不在等待觸發程序:重新啟動之後值得一讀的簡短清單。
start:delayed自動,比其他自動項目稍晚啟動。
start:manual,disabled status:running啟動時沒有任何內容會啟動它卻在執行:有東西要求了它、觸發程序啟動了它,或者有人啟動了它。
+
+

帳戶

+
+ + + + + + + +
查詢找到的內容
account:localsystem !publisher:microsoft以最強的帳戶 LocalSystem 執行,且來自 Microsoft 沒有簽章的檔案。關於發行者的查詢會自行讀取簽章,所以需要幾秒鐘。
!account:localsystem,localservice,networkservice type:ownProcess,sharedProcess在其他任何帳戶下執行的服務:虛擬帳戶、受管理的帳戶,或某個人自己的帳戶。
account:"NT SERVICE"服務自己的虛擬帳戶。引號把這些詞放在一起,因為中間有空格。
+
+

檔案與簽章

+
+ + + + + + + + + + +
查詢找到的內容
signed:notSigned,untrustedRoot,tampered沒有簽章,Windows 不信任的憑證鏈,或簽章之後被變更的檔案。
signed:trusted !publisher:microsoft已簽章、受信任,且不是 Microsoft:其他公司放在這台電腦上的軟體。
type:driver start:boot,system !signed:trusted在 Windows 啟動時載入、而 Windows 不信任其簽章的驅動程式。在健康的電腦上應為零。
!path:C:\Windows type:ownProcess有獨立處理程序、其檔案位於 Windows 資料夾之外的服務。
path:\AppData\從某人的使用者設定檔內部啟動:最不應該出現服務的地方。
path:\System32\\ type:ownProcess空格前的反斜線會讓空格成為詞的一部分,所以當後面還有其他搜尋詞時,以反斜線結尾的路徑要寫兩個反斜線。在查詢末尾,一個就夠了。
+
+

觸發程序與相依性

+
+ + + + + + + + + +
查詢找到的內容
trigger:device status:stopped等待裝置到達,因此是有原因的已停止。
trigger:network當要求到達某個網路端點(連接埠、具名管道或 RPC 介面)時啟動。
trigger:stop觸發程序不僅可以啟動、也可以停止的項目。
dependson:Winmgmt需要 WMI 才能執行的項目。
requiredby:SpoolerPrint Spooler 執行所需要的一切,以及這些內容又依次需要的一切。
+
+

特殊權限與處理程序

+
+ + + + + + + + + + +
查詢找到的內容
privilege:SeTcbPrivilege要求以作業系統的一部分身分執行。
privilege:SeImpersonatePrivilege !account:localsystem在 LocalSystem 之外的帳戶下執行時,可以代表用戶端執行動作。
sidtype:unrestricted其處理程序中帶有自己的服務 SID,因此權限可以單獨指名它。sidtype:restricted 詢問的是其處理程序同時還受寫入限制的那些。
type:sharedProcess status:running與其他服務一起執行在共用的 svchost 內。
memory:>200MB佔用超過 200 MB 的處理程序。查詢詢問記憶體時,會自動讀取記憶體。
pid:1000-2000位於處理程序 ID 在 1000 到 2000 之間的處理程序中。
+
+

名稱與文字

+
+ + + + + + + + + + + +
查詢找到的內容
spool單獨一個詞,在名稱、顯示名稱、帳戶和啟動路徑中搜尋。
name:=wuauserv恰好是這個名稱,而不是僅僅包含它的內容。
name:win*以 win 開頭的名稱,用萬用字元撰寫。
name:/svc$/以 svc 結尾的名稱,用規則運算式撰寫。
description:none完全沒有描述,大多數驅動程式都是這樣。
description:?Windows 無法提供的描述,通常是因為它指向一個不存在的語言檔案。
peruser:templateWindows 為每個已登入工作階段複製的依使用者範本。
+
+
+
+
+ +
+
+

每個欄位

+

由程式本身產生,因此這張表不會與工具接受的內容脫節。沒有值清單的欄位接受文字、數字或大小:第三欄會說明是哪一種。

+ {{table:query-fields}} +
+
+ +
+
+

兩件值得知道的事

+
+
+

有些欄位開銷很大,查詢它們會自動開啟讀取

+

在整台電腦上讀取簽章需要幾秒鐘,而記憶體是一項測量而不是一項設定,所以除非被要求,否則都不會為清單讀取它們。提到其中任何一項的查詢會自動開啟這項讀取:你不必在 signed:no 之外再記著加 --signatures。在視窗中,關於簽章的查詢會說明在簽章到達之前答案並不完整,而不是展示一份較短的清單、彷彿那就是答案。

+
+
+

基於無法讀取內容得出的結果會明說

+

如果項目是依據此工作階段無法讀取的欄位來判斷的,結果會帶有一行說明有多少個,因為這樣的結果可能缺少項目,或者包含了不該有的項目。這與整個工具遵守的規則相同:讀取失敗會在答案中可見,絕不會被吞掉。如果發行者僅由憑證宣稱,也會得到同樣的處理:在任何非 trusted 的判定旁邊,名稱會顯示為 not verified,而 publisher: 會在單獨一行中把該項目計為不確定,所以 !publisher:microsoft 會保留某個在簽章後被人變更過的 Microsoft 檔案。

+
+
+ 命令列參考 +
+
diff --git a/site/pages/sc-exe-and-powershell/cs.html b/site/pages/sc-exe-and-powershell/cs.html new file mode 100644 index 0000000..74f2e94 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/cs.html @@ -0,0 +1,97 @@ + + + + + +
+
+ Průvodce +

sc.exe, Get-Service a tohle

+

Obojí už je na stroji a obojí zůstane užitečné. Tato stránka je o tom, kde končí - a říká na rovinu, kde jsou pořád lepší odpovědí.

+
+
+ +
+
+

Kde které končí

+
+
+

sc.exe

+

Dosáhne téměř na všechno, co správce služeb ví, a nic vám neřekne o tom, jak se ptát. Syntaxe je z devadesátých let - sc config X start= auto, kde mezera za rovnítkem je povinná a její chybějící přítomnost je tichým selháním udělat to, co jste chtěli.

+

Odpovídá vždy o jedné položce. Neexistuje filtrování, výstup, který skript přečte bez napsání parseru, ani náhled: sc stop buď zabere, nebo vrátí číslo.

+
+
+

Get-Service a rutiny *-Service

+

Skutečné objekty, pipeline a povrchní pohled. Ve Windows PowerShellu 5.1, tom, který je součástí Windows, Get-Service neukazuje účet, pod kterým služba běží, ani její popis. PowerShell 7 ukazuje obojí, i cestu ke spuštění, a instaluje se zvlášť.

+

Stop-Service -Force znamená "i když na tom něco závisí" - zastaví závislé služby a řekne vám to potom, a ne předem.

+
+
+
+
+ +
+
+

Stejné otázky třemi způsoby

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OtázkaS tím, co je na strojiZde
Co má běžet a neběžíGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
Které služby mají nepodepsaný spustitelný souborPřečíst každou cestu ke spuštění, převést ji, na každé zavolat Get-AuthenticodeSignature - skript, ne příkazbws list --query "signed:no"
Co by zastavení tohoto strhlo s sebousc enumdepend X, potom přečíst seznam a rozhodnout sámbws stop X --dry-run --dependents, což je plán, který by se spustil
Co se změnilo od minulého týdneNic, pokud jste si sběrač nenapsali samibws snapshot diff before.json --live
Kdo změnil typ spouštění a kdyGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, potom přečíst zprávu každé událostibws history Spooler, jehož první řádek říká, jak daleko protokol sahá
Strojově čitelný výstupObjekty z PowerShellu, text ze sc.exe--json u každého příkazu, na standardním výstupu, s varováními na standardním chybovém výstupu
+
+

Kde se tento nástroj o službě rozchází se sc.exe, je to zde chyba. Část sady testů spouští obojí na stroji, na kterém běží, a porovnává to položku po položce a rozdíl mezi nimi je to nejužitečnější, co můžete vložit do hlášení.

+
+
+ +
+
+

Kdy používat dál to, co máte

+ +
+
+ +
+
+

Spolu, a ne místo sebe

+

Nástroj, který odpovídá na co je s tímto strojem špatně, a nástroje, které mění jedno nastavení, nejsou jedno a totéž. Zeptejte se zde, přečtěte si plán zde a k provedení použijte, co chcete - plán vypíše příkazový řádek, který žádá o totéž, a ten řádek je určen ke zkopírování.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/id.html b/site/pages/sc-exe-and-powershell/id.html new file mode 100644 index 0000000..1cc4962 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/id.html @@ -0,0 +1,97 @@ + + + + + +
+
+ Panduan +

sc.exe, Get-Service, dan ini

+

Keduanya sudah ada di mesin, dan keduanya akan tetap berguna. Halaman ini membahas di mana keduanya berhenti - dan menyatakan terus terang di mana keduanya masih jawaban yang lebih baik.

+
+
+ +
+
+

Di mana masing-masing berhenti

+
+
+

sc.exe

+

Ia dapat menjangkau hampir semua yang diketahui service control manager, dan tidak memberi tahu Anda apa pun tentang cara bertanya. Sintaksnya dari tahun sembilan puluhan - sc config X start= auto, di mana spasi setelah tanda sama dengan wajib dan ketiadaannya adalah kegagalan senyap untuk melakukan yang Anda maksud.

+

Ia menjawab tentang satu entri sekali waktu. Tidak ada pemfilteran, tidak ada keluaran yang dapat diurai skrip tanpa menulis parser, dan tidak ada pratinjau: sc stop berhasil atau mengembalikan sebuah angka.

+
+
+

Get-Service dan cmdlet *-Service

+

Objek yang layak, sebuah pipeline, dan tampilan yang dangkal. Di Windows PowerShell 5.1, yang bawaan Windows, Get-Service tidak menampilkan akun tempat layanan berjalan atau deskripsinya. PowerShell 7 menampilkan keduanya, dan jalur peluncuran juga, dan dipasang terpisah.

+

Stop-Service -Force berarti "bahkan jika ada yang bergantung padanya" - ia menghentikan layanan dependen, dan memberi tahu Anda sesudahnya, bukan sebelumnya.

+
+
+
+
+ +
+
+

Pertanyaan yang sama, tiga cara

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PertanyaanDengan apa yang ada di mesinDi sini
Apa yang seharusnya berjalan dan tidak berjalanGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
Layanan mana yang punya berkas eksekusi tak bertanda tanganBaca setiap jalur peluncuran, selesaikan, panggil Get-AuthenticodeSignature pada masing-masing - sebuah skrip, bukan perintahbws list --query "signed:no"
Apa yang akan ikut jatuh jika ini dihentikansc enumdepend X, lalu baca daftarnya dan putuskan sendiribws stop X --dry-run --dependents, yaitu rencana yang akan dijalankan
Apa yang berubah sejak minggu laluTidak ada, kecuali Anda menulis pengumpulnya sendiribws snapshot diff before.json --live
Siapa yang mengubah tipe startup, dan kapanGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, lalu baca pesan setiap peristiwabws history Spooler, yang baris pertamanya menyatakan seberapa jauh log menjangkau ke belakang
Keluaran yang dapat dibaca mesinObjek dari PowerShell, teks dari sc.exe--json di setiap perintah, pada keluaran standar, dengan peringatan pada galat standar
+
+

Di mana alat ini berbeda dari sc.exe tentang sebuah layanan, itu adalah bug di sini. Sebagian suite pengujian menjalankan keduanya pada mesin tempatnya berada dan membandingkannya entri demi entri, dan selisih antara keduanya adalah hal paling berguna untuk dimasukkan ke dalam laporan masalah.

+
+
+ +
+
+

Kapan tetap memakai apa yang sudah Anda punya

+ +
+
+ +
+
+

Bersama, bukan sebagai pengganti

+

Alat yang menjawab apa yang salah dengan mesin ini dan alat yang mengubah satu pengaturan bukanlah alat yang sama. Ajukan pertanyaan di sini, baca rencananya di sini, dan pakai apa pun yang Anda suka untuk menjalankannya - rencana mencetak baris perintah yang meminta hal yang sama, dan baris itu dimaksudkan untuk disalin.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/ja.html b/site/pages/sc-exe-and-powershell/ja.html new file mode 100644 index 0000000..d410293 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/ja.html @@ -0,0 +1,97 @@ + + + + + +
+
+ ガイド +

sc.exe、Get-Service、そしてこれ

+

どちらもすでにマシンにあり、どちらも引き続き役に立ちます。このページは、それらがどこで限界になるかについてです。そして、どこでそれらが今も優れた答えなのかを、率直に述べます。

+
+
+ +
+
+

それぞれの限界

+
+
+

sc.exe

+

サービス コントロール マネージャーが知っているほとんどすべてに手が届きますが、どう尋ねればいいかは何も教えてくれません。構文は 1990 年代のものです。sc config X start= auto のように、等号の後ろのスペースが必須で、それがないと、意図したことを行わずに黙って失敗します。

+

一度に 1 つのエントリについてしか答えません。絞り込みはなく、パーサーを書かずにスクリプトが解析できる出力もなく、プレビューもありません。sc stop は、成功するか、数字を返すかのどちらかです。

+
+
+

Get-Service と *-Service コマンドレット

+

きちんとしたオブジェクト、パイプライン、そして浅い視点です。Windows に付属する Windows PowerShell 5.1 の Get-Service は、サービスを実行しているアカウントも説明も表示しません。PowerShell 7 はどちらも表示し、起動パスも表示しますが、別途インストールが必要です。

+

Stop-Service -Force は「何かが依存していても」を意味します。依存するサービスを停止し、そのことを事前ではなく事後に伝えます。

+
+
+
+
+ +
+
+

同じ質問を、3 つの方法で

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
質問マシンにあるものでここでは
起動しているはずなのに起動していないものGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
署名のない実行ファイルを持つサービスはどれか各起動パスを読み取り、解決し、それぞれに Get-AuthenticodeSignature を呼び出す。コマンドではなくスクリプトですbws list --query "signed:no"
これを停止すると何が巻き込まれるかsc enumdepend X、そのあと一覧を読んで自分で判断するbws stop X --dry-run --dependents、つまり実行されるプランです
先週から何が変わったか自分でコレクターを書かない限り、何もありませんbws snapshot diff before.json --live
誰がいつスタートアップの種類を変更したかGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }、そのあと各イベントのメッセージを読むbws history Spooler。最初の行に、ログがどこまでさかのぼるかが書かれます
機械可読な出力PowerShell ではオブジェクト、sc.exe ではテキストすべてのコマンドで --json。標準出力に出て、警告は標準エラーに出ます
+
+

サービスについてこのツールが sc.exe と食い違う場合、それはここのバグです。テストスイートの一部が、実行しているマシンに対して両方を実行し、エントリごとに比較しています。2 つの違いは、課題に貼り付けるものとして最も役に立ちます。

+
+
+ +
+
+

今あるものを使い続けたほうがよい場合

+ +
+
+ +
+
+

置き換えではなく、併用

+

このマシンの何がおかしいのかに答えるツールと、1 つの設定を変更するツールは、同じツールではありません。質問はここで行い、プランはここで読み、実行にはお好きなものを使ってください。プランは同じことを要求するコマンドラインを表示します。その行はコピーするためのものです。

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/ko.html b/site/pages/sc-exe-and-powershell/ko.html new file mode 100644 index 0000000..eb8dc84 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/ko.html @@ -0,0 +1,97 @@ + + + + + +
+
+ 가이드 +

sc.exe, Get-Service, 그리고 이것

+

둘 다 이미 컴퓨터에 있고, 둘 다 계속 쓸모가 있을 것입니다. 이 페이지는 그것들이 어디에서 멈추는지에 대한 것이며, 여전히 더 나은 답인 곳도 솔직하게 말합니다.

+
+
+ +
+
+

각각이 멈추는 곳

+
+
+

sc.exe

+

서비스 제어 관리자가 아는 거의 모든 것에 닿을 수 있지만, 어떻게 물어야 하는지는 아무것도 알려 주지 않습니다. 구문은 1990년대의 것입니다. sc config X start= auto에서 등호 뒤의 공백은 필수이며, 그것이 없으면 의도한 일을 하지 못한 채 조용히 실패합니다.

+

한 번에 한 항목에 대해서만 답합니다. 필터링도, 파서를 쓰지 않고 스크립트가 해석할 수 있는 출력도, 미리 보기도 없습니다. sc stop은 성공하거나 숫자를 돌려줍니다.

+
+
+

Get-Service와 *-Service cmdlet

+

제대로 된 개체, 파이프라인, 그리고 얕은 시야입니다. Windows에 포함된 Windows PowerShell 5.1의 Get-Service는 서비스가 실행되는 계정도 설명도 보여 주지 않습니다. PowerShell 7은 둘 다, 그리고 시작 경로도 보여 주며, 별도로 설치합니다.

+

Stop-Service -Force는 “무언가 종속되어 있더라도”를 뜻합니다. 종속된 서비스를 중지하고, 그 사실을 사전이 아니라 사후에 알려 줍니다.

+
+
+
+
+ +
+
+

같은 질문, 세 가지 방법

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
질문컴퓨터에 있는 것으로여기서
실행되어야 하는데 실행 중이 아닌 것Get-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
서명 없는 실행 파일을 가진 서비스는 무엇인가각 시작 경로를 읽고, 해석하고, 각각에 Get-AuthenticodeSignature를 호출합니다. 명령이 아니라 스크립트입니다bws list --query "signed:no"
이것을 중지하면 무엇이 함께 내려가는가sc enumdepend X, 그다음 목록을 읽고 직접 판단합니다bws stop X --dry-run --dependents, 곧 실행될 계획입니다
지난주 이후 무엇이 바뀌었는가직접 수집기를 만들지 않았다면 없음bws snapshot diff before.json --live
누가 언제 시작 유형을 바꿨는가Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, 그다음 각 이벤트의 메시지를 읽습니다bws history Spooler, 첫 줄이 로그가 얼마나 거슬러 올라가는지 알려 줍니다
기계가 읽을 수 있는 출력PowerShell에서는 개체, sc.exe에서는 텍스트모든 명령의 --json은 표준 출력으로, 경고는 표준 오류로 나갑니다
+
+

서비스에 대해 이 도구가 sc.exe와 다르게 나오면, 여기서는 그것이 버그입니다. 테스트 모음의 일부가 실행 중인 컴퓨터에서 둘을 모두 실행해 항목별로 비교하며, 둘의 차이는 이슈에 넣을 수 있는 가장 유용한 내용입니다.

+
+
+ +
+
+

가진 것을 계속 쓸 때

+ +
+
+ +
+
+

대신이 아니라 함께

+

이 컴퓨터에 무엇이 잘못되었는가에 답하는 도구와 설정 하나를 바꾸는 도구는 같은 도구가 아닙니다. 질문은 여기서 하고, 계획은 여기서 읽고, 실행은 원하는 것으로 하세요. 계획은 같은 일을 요청하는 명령줄을 출력하며, 그 줄은 복사하라고 있는 것입니다.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/nl.html b/site/pages/sc-exe-and-powershell/nl.html new file mode 100644 index 0000000..d93c2d8 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/nl.html @@ -0,0 +1,97 @@ + + + + + +
+
+ Gids +

sc.exe, Get-Service en dit

+

Beide staan al op de machine, en beide blijven nuttig. Deze pagina gaat over waar ze ophouden - en zegt eerlijk waar ze nog het betere antwoord zijn.

+
+
+ +
+
+

Waar elk ophoudt

+
+
+

sc.exe

+

Het kan bijna alles bereiken wat de servicebeheerder weet, en het vertelt u niets over hoe u moet vragen. De syntaxis komt uit de jaren negentig - sc config X start= auto, waar de spatie na het gelijkteken verplicht is en het ontbreken ervan een stille mislukking is om te doen wat u bedoelde.

+

Het antwoordt over één item tegelijk. Er is geen filter, geen uitvoer die een script kan parsen zonder een parser te schrijven, en geen voorvertoning: sc stop werkt of geeft een getal terug.

+
+
+

Get-Service en de *-Service-cmdlets

+

Echte objecten, een pijplijn, en een oppervlakkig beeld. In Windows PowerShell 5.1, die met Windows meekomt, toont Get-Service niet onder welk account een service draait en ook de beschrijving niet. PowerShell 7 toont beide, en het opstartpad ook, en wordt apart geïnstalleerd.

+

Stop-Service -Force betekent "ook als er iets van afhangt" - het stopt de afhankelijke services, en het zegt u dat achteraf in plaats van vooraf.

+
+
+
+
+ +
+
+

Dezelfde vragen, op drie manieren

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VraagMet wat op de machine staatHier
Wat zou moeten draaien en niet draaitGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
Welke services een niet-ondertekend uitvoerbaar bestand hebbenElk opstartpad lezen, omzetten, op elk Get-AuthenticodeSignature aanroepen - een script, geen opdrachtbws list --query "signed:no"
Wat het stoppen hiervan zou meenemensc enumdepend X, dan de lijst lezen en zelf beslissenbws stop X --dry-run --dependents, dat is het plan dat zou draaien
Wat er sinds vorige week is veranderdNiets, tenzij u zelf de verzamelaar hebt geschrevenbws snapshot diff before.json --live
Wie het opstarttype heeft gewijzigd, en wanneerGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, dan het bericht van elke gebeurtenis lezenbws history Spooler, waarvan de eerste regel zegt hoe ver het logboek teruggaat
Machineleesbare uitvoerObjecten van PowerShell, tekst van sc.exe--json bij elke opdracht, op de standaarduitvoer, met waarschuwingen op de standaardfout
+
+

Waar dit hulpmiddel het oneens is met sc.exe over een service, is dat hier een bug. Een deel van de testsuite draait beide op de machine waarop het staat en vergelijkt ze item voor item, en een verschil tussen de twee is het nuttigste wat u in een issue kunt zetten.

+
+
+ +
+
+

Wanneer u moet blijven gebruiken wat u hebt

+ +
+
+ +
+
+

Samen, in plaats van in de plaats

+

Het hulpmiddel dat antwoordt op wat is er mis met deze machine en de hulpmiddelen die één instelling wijzigen zijn niet hetzelfde hulpmiddel. Stel de vraag hier, lees het plan hier, en gebruik wat u wilt om het uit te voeren - het plan drukt de opdrachtregel af die om hetzelfde vraagt, en die regel is bedoeld om te worden gekopieerd.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/page.json b/site/pages/sc-exe-and-powershell/page.json index 168988e..c7d45ff 100644 --- a/site/pages/sc-exe-and-powershell/page.json +++ b/site/pages/sc-exe-and-powershell/page.json @@ -11,6 +11,12 @@ "fr": "sc-exe-et-powershell", "es": "sc-exe-y-powershell", "it": "sc-exe-e-powershell", - "pt-br": "sc-exe-e-powershell" + "pt-br": "sc-exe-e-powershell", + "nl": "sc-exe-en-powershell", + "cs": "sc-exe-a-powershell", + "ro": "sc-exe-si-powershell", + "tr": "sc-exe-ve-powershell", + "id": "sc-exe-dan-powershell", + "vi": "sc-exe-va-powershell" } } diff --git a/site/pages/sc-exe-and-powershell/ro.html b/site/pages/sc-exe-and-powershell/ro.html new file mode 100644 index 0000000..6b94302 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/ro.html @@ -0,0 +1,97 @@ + + + + + +
+
+ Ghid +

sc.exe, Get-Service și acesta

+

Ambele sunt deja pe mașină și ambele vor rămâne utile. Această pagină este despre locul în care se opresc - și spune pe față unde rămân răspunsul mai bun.

+
+
+ +
+
+

Unde se oprește fiecare

+
+
+

sc.exe

+

Poate ajunge la aproape tot ce știe managerul de control al serviciilor și nu vă spune nimic despre cum să întrebați. Sintaxa este din anii nouăzeci - sc config X start= auto, unde spațiul de după semnul egal este obligatoriu, iar absența lui este un eșec tăcut de a face ce ați vrut.

+

Răspunde despre o singură intrare pe rând. Nu există filtrare, nicio ieșire pe care un script s-o poată analiza fără a scrie un parser și nicio previzualizare: sc stop fie funcționează, fie întoarce un număr.

+
+
+

Get-Service și cmdleturile *-Service

+

Obiecte propriu-zise, un pipeline și o vedere superficială. În Windows PowerShell 5.1, cel care vine cu Windows, Get-Service nu arată contul sub care rulează un serviciu și nici descrierea lui. PowerShell 7 le arată pe amândouă, și calea de lansare, și se instalează separat.

+

Stop-Service -Force înseamnă "chiar dacă ceva depinde de el" - oprește serviciile dependente și vă spune asta după, nu înainte.

+
+
+
+
+ +
+
+

Aceleași întrebări, în trei feluri

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ÎntrebareCu ce este pe mașinăAici
Ce ar trebui să ruleze și nu ruleazăGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
Ce servicii au un executabil nesemnatCitiți fiecare cale de lansare, rezolvați-o, apelați Get-AuthenticodeSignature pe fiecare - un script, nu o comandăbws list --query "signed:no"
Ce ar trage după sine oprirea acestuiasc enumdepend X, apoi citiți lista și decideți singurbws stop X --dry-run --dependents, care este planul ce ar rula
Ce s-a schimbat de săptămâna trecutăNimic, decât dacă ați scris singur colectorulbws snapshot diff before.json --live
Cine a schimbat tipul de pornire și cândGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, apoi citiți mesajul fiecărui evenimentbws history Spooler, a cărui primă linie spune cât de departe ajunge jurnalul
Ieșire care poate fi citită de mașinăObiecte din PowerShell, text din sc.exe--json la fiecare comandă, la ieșirea standard, cu avertismentele la eroarea standard
+
+

Acolo unde acest instrument nu este de acord cu sc.exe despre un serviciu, este o eroare aici. O parte din suita de teste le rulează pe amândouă pe mașina pe care se află și le compară intrare cu intrare, iar o diferență între cele două este cel mai util lucru pe care îl puteți pune într-o sesizare.

+
+
+ +
+
+

Când să continuați să folosiți ce aveți

+ +
+
+ +
+
+

Împreună, nu în loc

+

Instrumentul care răspunde la ce este în neregulă cu această mașină și instrumentele care schimbă o setare nu sunt același instrument. Puneți întrebarea aici, citiți planul aici și folosiți ce doriți pentru a-l executa - planul tipărește linia de comandă care cere același lucru, iar acea linie este făcută pentru a fi copiată.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/ru.html b/site/pages/sc-exe-and-powershell/ru.html new file mode 100644 index 0000000..f93dd5c --- /dev/null +++ b/site/pages/sc-exe-and-powershell/ru.html @@ -0,0 +1,97 @@ + + + + + +
+
+ Руководство +

sc.exe, Get-Service и это

+

Оба уже есть на машине, и оба останутся полезными. Эта страница о том, где они заканчиваются, - и она прямо говорит, где они всё ещё лучший ответ.

+
+
+ +
+
+

Где заканчивается каждый

+
+
+

sc.exe

+

Он может дотянуться почти до всего, что знает диспетчер управления службами, и ничего не говорит о том, как спрашивать. Синтаксис из девяностых - sc config X start= auto, где пробел после знака равенства обязателен, а его отсутствие - молчаливый отказ сделать то, что вы имели в виду.

+

Он отвечает об одной записи за раз. Нет фильтрации, нет вывода, который скрипт мог бы разобрать, не написав разборщик, и нет предпросмотра: sc stop либо срабатывает, либо возвращает число.

+
+
+

Get-Service и командлеты *-Service

+

Настоящие объекты, конвейер и поверхностный взгляд. В Windows PowerShell 5.1, которая поставляется с Windows, Get-Service не показывает учётную запись, под которой работает служба, и её описание. PowerShell 7 показывает и то и другое, и ещё путь запуска, и ставится отдельно.

+

Stop-Service -Force означает «даже если что-то от неё зависит» - он останавливает зависимые службы и сообщает вам об этом после, а не до.

+
+
+
+
+ +
+
+

Те же вопросы тремя способами

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ВопросС тем, что есть на машинеЗдесь
Что должно работать и не работаетGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
У каких служб неподписанный исполняемый файлПрочитать каждый путь запуска, разрешить его, вызвать Get-AuthenticodeSignature для каждого - скрипт, а не командаbws list --query "signed:no"
Что унесёт с собой остановка этойsc enumdepend X, затем прочитать список и решить самомуbws stop X --dry-run --dependents, то есть план, который бы выполнился
Что изменилось с прошлой неделиНичего, если вы не написали сборщик самиbws snapshot diff before.json --live
Кто изменил тип запуска и когдаGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, затем прочитать сообщение каждого событияbws history Spooler, чья первая строка говорит, насколько далеко назад уходит журнал
Машиночитаемый выводОбъекты из PowerShell, текст из sc.exe--json у каждой команды, в стандартном выводе, с предупреждениями в стандартном потоке ошибок
+
+

Где этот инструмент расходится с sc.exe в отношении службы, это здесь ошибка. Часть набора тестов запускает оба на машине, на которой работает, и сравнивает их запись за записью, а разница между ними - самое полезное, что можно положить в сообщение о проблеме.

+
+
+ +
+
+

Когда продолжать пользоваться тем, что у вас есть

+ +
+
+ +
+
+

Вместе, а не вместо

+

Инструмент, отвечающий на вопрос что не так с этой машиной, и инструменты, меняющие одну настройку, - не один и тот же инструмент. Задайте вопрос здесь, прочитайте план здесь и используйте что хотите, чтобы его выполнить - план печатает командную строку, которая просит то же самое, и эта строка предназначена для копирования.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/tr.html b/site/pages/sc-exe-and-powershell/tr.html new file mode 100644 index 0000000..4373ba1 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/tr.html @@ -0,0 +1,97 @@ + + + + + +
+
+ Kılavuz +

sc.exe, Get-Service ve bu

+

İkisi de zaten makinede ve ikisi de yararlı kalacak. Bu sayfa, nerede durduklarıyla ilgili - ve hâlâ daha iyi yanıt olduklarını açıkça söylüyor.

+
+
+ +
+
+

Her birinin durduğu yer

+
+
+

sc.exe

+

Hizmet denetim yöneticisinin bildiği hemen her şeye erişebilir ve nasıl soracağınız konusunda size hiçbir şey söylemez. Sözdizimi doksanlardan kalmadır - sc config X start= auto; burada eşittir işaretinden sonraki boşluk zorunludur ve yokluğu, ne demek istediğinizi yapmamanın sessiz bir başarısızlığıdır.

+

Aynı anda tek bir öğe hakkında yanıt verir. Filtreleme yok, bir betiğin ayrıştırıcı yazmadan ayrıştırabileceği bir çıktı yok ve önizleme yok: sc stop ya çalışır ya da bir sayı döndürür.

+
+
+

Get-Service ve *-Service cmdlet'leri

+

Düzgün nesneler, bir ardışık düzen ve yüzeysel bir görünüm. Windows'la gelen Windows PowerShell 5.1'de Get-Service bir hizmetin hangi hesapla çalıştığını ya da açıklamasını göstermez. PowerShell 7 ikisini de ve başlatma yolunu da gösterir ve ayrıca kurulur.

+

Stop-Service -Force "ona bağlı bir şey olsa bile" demektir - bağımlı hizmetleri durdurur ve size bunu önceden değil, sonradan söyler.

+
+
+
+
+ +
+
+

Aynı sorular, üç yolla

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SoruMakinede olanlaBurada
Çalışması gereken ve çalışmayan nedirGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
Hangi hizmetlerin imzasız yürütülebilir dosyası varHer başlatma yolunu oku, çöz, her birinde Get-AuthenticodeSignature çağır - bir komut değil, bir betikbws list --query "signed:no"
Bunu durdurmak neleri indirirsc enumdepend X, sonra listeyi oku ve kendin karar verbws stop X --dry-run --dependents, yani çalışacak plan
Geçen haftadan beri ne değiştiToplayıcıyı kendiniz yazmadıysanız hiçbir şeybws snapshot diff before.json --live
Başlangıç türünü kim değiştirdi ve ne zamanGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, sonra her olayın iletisini okubws history Spooler, ilk satırı günlüğün ne kadar geriye gittiğini söyler
Makine tarafından okunabilir çıktıPowerShell'den nesneler, sc.exe'den metinHer komutta --json, standart çıktıda, uyarılar standart hatada
+
+

Bu aracın bir hizmet konusunda sc.exe ile anlaşmazlığa düştüğü yer, burada bir hatadır. Test paketinin bir bölümü ikisini de üzerinde çalıştığı makinede çalıştırır ve öğe öğe karşılaştırır; ikisi arasındaki bir fark, bir sorun kaydına koyabileceğiniz en yararlı şeydir.

+
+
+ +
+
+

Elinizdekini ne zaman kullanmaya devam etmeli

+ +
+
+ +
+
+

Birlikte, onların yerine değil

+

Bu makinede ne yanlış sorusunu yanıtlayan araç ile tek bir ayarı değiştiren araçlar aynı araç değildir. Soruyu burada sorun, planı burada okuyun ve onu yürütmek için istediğinizi kullanın - plan, aynı şeyi isteyen komut satırını yazdırır ve o satır kopyalanmak için tasarlanmıştır.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/uk.html b/site/pages/sc-exe-and-powershell/uk.html new file mode 100644 index 0000000..524392e --- /dev/null +++ b/site/pages/sc-exe-and-powershell/uk.html @@ -0,0 +1,97 @@ + + + + + +
+
+ Посібник +

sc.exe, Get-Service і це

+

Обидва вже є на машині, і обидва лишаться корисними. Ця сторінка про те, де вони закінчуються, - і вона прямо каже, де вони все ще найкраща відповідь.

+
+
+ +
+
+

Де закінчується кожен

+
+
+

sc.exe

+

Він може дотягнутися майже до всього, що знає диспетчер керування службами, і нічого не каже про те, як питати. Синтаксис із дев'яностих - sc config X start= auto, де пробіл після знака рівності обов'язковий, а його відсутність - мовчазна відмова зробити те, що ви мали на увазі.

+

Він відповідає про один запис за раз. Немає фільтрації, немає виводу, який скрипт міг би розібрати, не написавши розбірник, і немає попереднього перегляду: sc stop або спрацьовує, або повертає число.

+
+
+

Get-Service і командлети *-Service

+

Справжні об'єкти, конвеєр і поверхневий погляд. У Windows PowerShell 5.1, що постачається з Windows, Get-Service не показує облікового запису, від якого працює служба, ані її опису. PowerShell 7 показує і те, й інше, і ще шлях запуску, і встановлюється окремо.

+

Stop-Service -Force означає «навіть якщо щось від неї залежить» - він зупиняє залежні служби й повідомляє вам про це після, а не до.

+
+
+
+
+ +
+
+

Ті самі запитання трьома способами

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ЗапитанняЗ тим, що є на машиніТут
Що має працювати й не працюєGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
У яких служб непідписаний виконуваний файлПрочитати кожен шлях запуску, розв'язати його, викликати Get-AuthenticodeSignature для кожного - скрипт, а не командаbws list --query "signed:no"
Що забере з собою зупинка цієїsc enumdepend X, потім прочитати список і вирішити самомуbws stop X --dry-run --dependents, тобто план, який би виконався
Що змінилося від минулого тижняНічого, якщо ви не написали збирач саміbws snapshot diff before.json --live
Хто змінив тип запуску і колиGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, потім прочитати повідомлення кожної подіїbws history Spooler, чий перший рядок каже, як далеко назад сягає журнал
Машиночитаний вивідОб'єкти з PowerShell, текст з sc.exe--json у кожної команди, у стандартному виводі, з попередженнями в стандартному потоці помилок
+
+

Де цей інструмент розходиться з sc.exe щодо служби, це тут помилка. Частина набору тестів запускає обидва на машині, на якій працює, і порівнює їх запис за записом, а різниця між ними - найкорисніше, що можна покласти в повідомлення про проблему.

+
+
+ +
+
+

Коли продовжувати користуватися тим, що маєте

+ +
+
+ +
+
+

Разом, а не замість

+

Інструмент, що відповідає на що не так із цією машиною, й інструменти, що змінюють одне налаштування, - не один і той самий інструмент. Поставте запитання тут, прочитайте план тут і скористайтеся чим завгодно, щоб його виконати - план друкує командний рядок, що просить те саме, і цей рядок призначений для копіювання.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/vi.html b/site/pages/sc-exe-and-powershell/vi.html new file mode 100644 index 0000000..59c717e --- /dev/null +++ b/site/pages/sc-exe-and-powershell/vi.html @@ -0,0 +1,97 @@ + + + + + +
+
+ Hướng dẫn +

sc.exe, Get-Service, và công cụ này

+

Cả hai đều đã có sẵn trên máy, và cả hai sẽ vẫn hữu ích. Trang này nói về chỗ chúng dừng lại - và nói thẳng chỗ nào chúng vẫn là câu trả lời tốt hơn.

+
+
+ +
+
+

Mỗi cái dừng lại ở đâu

+
+
+

sc.exe

+

Nó chạm tới hầu hết mọi thứ mà trình quản lý điều khiển dịch vụ biết, và không cho bạn biết gì về cách hỏi. Cú pháp từ thập niên chín mươi - sc config X start= auto, trong đó dấu cách sau dấu bằng là bắt buộc và việc thiếu nó là một thất bại thầm lặng trong việc làm điều bạn muốn.

+

Nó trả lời về một mục mỗi lần. Không có bộ lọc, không có đầu ra mà script phân tích được nếu không viết một trình phân tích, và không có xem trước: sc stop hoặc là chạy hoặc là trả về một con số.

+
+
+

Get-Service và các cmdlet *-Service

+

Đối tượng thực thụ, một pipeline, và một cái nhìn nông. Trong Windows PowerShell 5.1, bản đi kèm Windows, Get-Service không hiển thị tài khoản mà một dịch vụ chạy hay mô tả của nó. PowerShell 7 hiển thị cả hai, cùng cả đường dẫn khởi chạy, và được cài riêng.

+

Stop-Service -Force nghĩa là "ngay cả khi có thứ phụ thuộc vào nó" - nó dừng các dịch vụ phụ thuộc, và nói với bạn sau đó thay vì trước.

+
+
+
+
+ +
+
+

Cùng những câu hỏi, ba cách

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Câu hỏiVới những gì có trên máyỞ đây
Những gì lẽ ra phải chạy mà không chạyGet-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
Những dịch vụ nào có tệp thực thi chưa kýĐọc từng đường dẫn khởi chạy, phân giải nó, gọi Get-AuthenticodeSignature trên từng cái - một script, không phải một lệnhbws list --query "signed:no"
Việc dừng cái này sẽ kéo theo những gìsc enumdepend X, rồi đọc danh sách và tự quyết địnhbws stop X --dry-run --dependents, chính là kế hoạch sẽ chạy
Điều gì đã thay đổi từ tuần trướcKhông có gì, trừ khi bạn tự viết bộ thu thậpbws snapshot diff before.json --live
Ai đã đổi kiểu khởi động, và khi nàoGet-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, rồi đọc thông điệp của từng sự kiệnbws history Spooler, dòng đầu của nó nói nhật ký lùi xa đến đâu
Đầu ra máy đọc đượcĐối tượng từ PowerShell, văn bản từ sc.exe--json ở mọi lệnh, trên đầu ra chuẩn, với cảnh báo trên lỗi chuẩn
+
+

Chỗ nào công cụ này bất đồng với sc.exe về một dịch vụ, đó là một lỗi ở đây. Một phần bộ kiểm thử chạy cả hai trên máy mà nó đang chạy và so sánh từng mục, và một khác biệt giữa hai bên là điều hữu ích nhất để đưa vào một báo cáo sự cố.

+
+
+ +
+
+

Khi nào nên tiếp tục dùng thứ bạn đang có

+ +
+
+ +
+
+

Cùng nhau, thay vì thay thế

+

Công cụ trả lời máy này có gì sai và các công cụ thay đổi một thiết lập không phải cùng một công cụ. Hãy đặt câu hỏi ở đây, đọc kế hoạch ở đây, và dùng bất cứ thứ gì bạn thích để thực hiện - kế hoạch in ra dòng lệnh yêu cầu điều tương tự, và dòng đó được tạo ra để sao chép.

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/zh-hans.html b/site/pages/sc-exe-and-powershell/zh-hans.html new file mode 100644 index 0000000..f4d0cb6 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/zh-hans.html @@ -0,0 +1,97 @@ + + + + + +
+
+ 指南 +

sc.exe 和 Get-Service,以及这个工具

+

两者都已经在计算机上,而且都会继续有用。这个页面讲的是它们在哪里到头了,并且坦率地说明它们在哪些地方仍然是更好的答案。

+
+
+ +
+
+

各自在哪里到头

+
+
+

sc.exe

+

它几乎可以触及服务控制管理器所知的一切,却完全不告诉你该如何提问。语法来自九十年代:sc config X start= auto,等号后面的空格是必需的,缺少它会悄无声息地做不成你想做的事。

+

它一次只回答一个条目。没有筛选,没有无需自己写解析器就能让脚本解析的输出,也没有预览:sc stop 要么成功,要么返回一个数字。

+
+
+

Get-Service 和 *-Service cmdlet

+

真正的对象、管道,以及浅层的视角。在 Windows 自带的 Windows PowerShell 5.1 中,Get-Service 不显示服务运行所用的账户,也不显示它的描述。PowerShell 7 两者都显示,还显示启动路径,并且需要单独安装。

+

Stop-Service -Force 的意思是“即使有东西依赖它”:它会停止依赖项,并且是在事后而不是事前告诉你。

+
+
+
+
+ +
+
+

同样的问题,三种方式

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
问题用计算机上现有的工具在这里
应该运行却没有运行的内容Get-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
哪些服务的可执行文件没有签名读取每个启动路径,解析它,对每个调用 Get-AuthenticodeSignature:这是一个脚本,而不是一条命令bws list --query "signed:no"
停止它会带走什么sc enumdepend X,然后阅读列表并自己判断bws stop X --dry-run --dependents,也就是将要运行的计划
自上周以来发生了什么变化没有,除非你自己写了收集器bws snapshot diff before.json --live
谁在何时更改了启动类型Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 },然后阅读每个事件的消息bws history Spooler,其第一行说明日志能追溯多远
机器可读的输出PowerShell 给出对象,sc.exe 给出文本每个命令都支持 --json,输出到标准输出,警告输出到标准错误
+
+

这个工具在某个服务上与 sc.exe 不一致时,那在这里就是一个缺陷。测试套件的一部分会针对所在的计算机同时运行两者,并逐条目地比较,而两者之间的差异,是你能放进问题报告里最有用的东西。

+
+
+ +
+
+

何时继续使用你已有的工具

+ +
+
+ +
+
+

是配合,而不是取代

+

回答这台计算机出了什么问题的工具,与更改某一项设置的工具,不是同一个工具。在这里提问,在这里阅读计划,然后用你喜欢的任何方式去执行它:计划会打印出请求同一件事的命令行,而这一行就是用来复制的。

+ +
+
diff --git a/site/pages/sc-exe-and-powershell/zh-hant.html b/site/pages/sc-exe-and-powershell/zh-hant.html new file mode 100644 index 0000000..1cdec29 --- /dev/null +++ b/site/pages/sc-exe-and-powershell/zh-hant.html @@ -0,0 +1,97 @@ + + + + + +
+
+ 指南 +

sc.exe 與 Get-Service,以及這個工具

+

兩者都已經在電腦上,而且都會繼續有用。這個頁面講的是它們在哪裡到頭了,並且坦率地說明它們在哪些地方仍然是更好的答案。

+
+
+ +
+
+

各自在哪裡到頭

+
+
+

sc.exe

+

它幾乎可以觸及服務控制管理員所知的一切,卻完全不告訴你該如何提問。語法來自九〇年代:sc config X start= auto,等號後面的空格是必需的,缺少它會悄無聲息地做不成你想做的事。

+

它一次只回答一個項目。沒有篩選,沒有無需自己寫剖析器就能讓指令碼剖析的輸出,也沒有預覽:sc stop 要麼成功,要麼傳回一個數字。

+
+
+

Get-Service 和 *-Service cmdlet

+

真正的物件、管線,以及淺層的視角。在 Windows 內建的 Windows PowerShell 5.1 中,Get-Service 不顯示服務執行所用的帳戶,也不顯示它的描述。PowerShell 7 兩者都顯示,還顯示啟動路徑,並且需要另外安裝。

+

Stop-Service -Force 的意思是「即使有東西依賴它」:它會停止相依項目,並且是在事後而不是事前告訴你。

+
+
+
+
+ +
+
+

同樣的問題,三種方式

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
問題用電腦上現有的工具在這裡
應該執行卻沒有執行的內容Get-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' }bws list --query "start:auto !status:running"
哪些服務的可執行檔沒有簽章讀取每個啟動路徑,剖析它,對每個呼叫 Get-AuthenticodeSignature:這是一個指令碼,而不是一條命令bws list --query "signed:no"
停止它會帶走什麼sc enumdepend X,然後閱讀清單並自己判斷bws stop X --dry-run --dependents,也就是將要執行的計畫
自上週以來發生了什麼變化沒有,除非你自己寫了收集器bws snapshot diff before.json --live
誰在何時變更了啟動類型Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 },然後閱讀每個事件的訊息bws history Spooler,其第一行說明記錄檔能追溯多遠
機器可讀的輸出PowerShell 給出物件,sc.exe 給出文字每個命令都支援 --json,輸出到標準輸出,警告輸出到標準錯誤
+
+

這個工具在某個服務上與 sc.exe 不一致時,那在這裡就是一個缺陷。測試套件的一部分會針對所在的電腦同時執行兩者,並逐項目地比較,而兩者之間的差異,是你能放進問題回報裡最有用的東西。

+
+
+ +
+
+

何時繼續使用你已有的工具

+ +
+
+ +
+
+

是配合,而不是取代

+

回答這台電腦出了什麼問題的工具,與變更某一項設定的工具,不是同一個工具。在這裡提問,在這裡閱讀計畫,然後用你喜歡的任何方式去執行它:計畫會列印出要求同一件事的命令列,而這一行就是用來複製的。

+ +
+
diff --git a/site/pages/services-msc-alternative/cs.html b/site/pages/services-msc-alternative/cs.html new file mode 100644 index 0000000..f5f5e26 --- /dev/null +++ b/site/pages/services-msc-alternative/cs.html @@ -0,0 +1,102 @@ + + + + + +
+
+ Průvodce +

Alternativa k services.msc

+

Snap-in Služby se od Windows 2000 sotva změnil. Pořád je to nejrychlejší způsob, jak spustit jednu službu, kterou už vidíte na obrazovce, a nejpomalejší způsob, jak odpovědět na jakoukoli otázku o stroji.

+
+
+ +
+
+

Co lidi nutí hledat

+
+
    +
  • Žádné vyhledávání. Jediná navigace je napsat písmeno a skočit na první zobrazovaný název, který jím začíná. Na stroji s osmi sty položkami je to listování s krokem navíc.
  • +
  • Žádné filtrování. Nelze se zeptat co je nastaveno na automatické spuštění a neběží - na jedinou otázku, která najde rozbitý stroj.
  • +
  • Jeden řádek najednou. Restart dvanácti služeb je dvanáct kliknutí pravým tlačítkem a dvanáct čekání.
  • +
  • "Stopping..." bez cesty ven kromě Správce úloh a hádání, který svchost ukončit.
  • +
+
    +
  • Žádná historie. Nikdo neví, kdo nastavil tento typ spouštění na Zakázáno, ani kdy, ani zda to tak nebylo už minulý měsíc.
  • +
  • Skrytá data. Proces, triggery, požadovaná privilegia, popisovač zabezpečení, kdo podepsal spustitelný soubor - nic z toho není ve snap-inu a všechno na tom záleží, když je něco špatně.
  • +
  • Sloupce nelze měnit. Název, popis, stav, typ spouštění, přihlásit jako. To je celý seznam a podle žádného z nich nejde na skutečném stroji užitečně řadit.
  • +
+
+
+
+ +
+
+

Stejné úkoly, v obou

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChceteV services.mscZde
Najít, co má běžet a neběžíSeřadit podle typu spouštění, listovat, číst každý řádekstart:auto !status:running
Vědět, co zastavení strhne s sebouDialog, který pojmenuje závislé služby až poté, co stisknete StopPlán dřív, než se cokoli stane, s každou závislou službou jako krokem a varováním, když je některá věc, kterou stroj potřebuje
Vědět, co se změnilo od minulého týdneNicbws snapshot diff before.json --live
Vědět, kdo změnil typ spouštěníNicbws history Spooler, ze systémového protokolu
Restartovat dvanáct služebDvanáct kliknutí pravým tlačítkemVybrat dvanáct, jeden plán, jedno provedení, jedna zpráva
Vidět, kdo podepsal spustitelný soubor službyNezobrazuje seSloupec a věc, podle které lze hledat: signed:no
Cokoli z toho skriptovatNelze skriptovatbws s --json a návratovým kódem pro každý konec
+
+
+
+ +
+
+

Co snap-in pořád dělá lépe

+

Dvě věci, a tvrdit něco jiného by byl druh tvrzení, který tento projekt nedělá.

+ +

To, co nedokáže vůbec, je důvod, proč tohle existuje: položit otázku, nejdřív ukázat plán a říct, co se odchýlilo.

+
+
+ +
+
+

Co to je

+

{{product}} je volný a open source pod GPL-3.0, jeden soubor na každou polovinu nebo instalační program pro celý stroj, a nikdy nekomunikuje s internetem. Čtení nepotřebuje práva správce - změna ano, a říká to místo tichého selhání.

+ +
+
diff --git a/site/pages/services-msc-alternative/id.html b/site/pages/services-msc-alternative/id.html new file mode 100644 index 0000000..7b10ad2 --- /dev/null +++ b/site/pages/services-msc-alternative/id.html @@ -0,0 +1,102 @@ + + + + + +
+
+ Panduan +

Alternatif services.msc

+

Snap-in Services nyaris tidak berubah sejak Windows 2000. Ia masih cara tercepat untuk memulai satu layanan yang sudah terlihat di layar, dan cara paling lambat untuk menjawab pertanyaan apa pun tentang mesin.

+
+
+ +
+
+

Apa yang membuat orang mencari

+
+
    +
  • Tanpa pencarian. Satu-satunya navigasi adalah mengetik huruf untuk melompat ke nama tampilan pertama yang diawali huruf itu. Di mesin dengan delapan ratus entri, itu menggulir dengan langkah tambahan.
  • +
  • Tanpa pemfilteran. Tidak ada cara untuk bertanya apa yang diatur mulai otomatis dan tidak berjalan - satu-satunya pertanyaan yang menemukan mesin rusak.
  • +
  • Satu baris sekali waktu. Me-restart dua belas layanan berarti dua belas klik kanan dan dua belas kali menunggu.
  • +
  • "Stopping..." tanpa jalan keluar kecuali Task Manager dan menebak svchost mana yang harus diakhiri.
  • +
+
    +
  • Tanpa riwayat. Tidak ada yang tahu siapa yang mengatur tipe startup itu menjadi Disabled, atau kapan, atau apakah bulan lalu sudah begitu.
  • +
  • Data tersembunyi. Proses, pemicu, hak istimewa yang dibutuhkan, deskriptor keamanan, siapa yang menandatangani berkas eksekusi - tidak ada yang ada di snap-in, dan semuanya penting ketika ada yang salah.
  • +
  • Kolom tidak bisa diubah. Nama, deskripsi, status, tipe startup, masuk sebagai. Itulah seluruh daftarnya, dan tidak ada yang bisa diurutkan secara berguna di mesin sungguhan.
  • +
+
+
+
+ +
+
+

Tugas yang sama, di keduanya

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Anda inginDi services.mscDi sini
Menemukan apa yang seharusnya berjalan dan tidak berjalanUrutkan menurut tipe startup, gulir, baca setiap barisstart:auto !status:running
Mengetahui apa yang ikut jatuh saat dihentikanDialog yang menyebut layanan dependen setelah Anda menekan StopRencana sebelum apa pun terjadi, dengan setiap layanan dependen sebagai langkah dan peringatan ketika salah satunya adalah yang dibutuhkan mesin
Mengetahui apa yang berubah sejak minggu laluTidak adabws snapshot diff before.json --live
Mengetahui siapa yang mengubah tipe startupTidak adabws history Spooler, dari log System
Me-restart dua belas layananDua belas klik kananPilih dua belas, satu rencana, satu eksekusi, satu laporan
Melihat siapa yang menandatangani berkas eksekusi layananTidak ditampilkanSebuah kolom, dan sesuatu untuk dicari: signed:no
Menjadikan semua itu skripTidak bisa diskripbws, dengan --json dan kode keluar untuk setiap akhiran
+
+
+
+ +
+
+

Apa yang masih lebih baik dilakukan snap-in

+

Dua hal, dan berpura-pura sebaliknya akan menjadi jenis klaim yang tidak dibuat proyek ini.

+ +

Yang sama sekali tidak bisa dilakukannya adalah alasan ini ada: mengajukan pertanyaan, menunjukkan rencana lebih dulu, dan menyatakan apa yang menyimpang.

+
+
+ +
+
+

Apa ini

+

{{product}} bebas dan bersumber terbuka di bawah GPL-3.0, satu berkas per bagian atau installer untuk seluruh mesin, dan tidak pernah berbicara dengan internet. Membaca tidak membutuhkan hak administrator - mengubah membutuhkannya, dan ia menyatakannya alih-alih gagal diam-diam.

+ +
+
diff --git a/site/pages/services-msc-alternative/ja.html b/site/pages/services-msc-alternative/ja.html new file mode 100644 index 0000000..4100f8a --- /dev/null +++ b/site/pages/services-msc-alternative/ja.html @@ -0,0 +1,102 @@ + + + + + +
+
+ ガイド +

services.msc の代替

+

「サービス」スナップインは、Windows 2000 からほとんど変わっていません。すでに画面に見えている 1 つのサービスを開始する最速の方法であり、マシンについてのどんな質問にも答えるのが最も遅い方法です。

+
+
+ +
+
+

人々が代替を探す理由

+
+
    +
  • 検索がありません。操作できるのは、文字を入力して、その文字で始まる最初の表示名へジャンプすることだけです。800 個のエントリがあるマシンでは、手順が増えただけのスクロールです。
  • +
  • 絞り込みがありません。自動開始に設定されているのに実行されていないものを尋ねる方法がありません。壊れたマシンを見つける唯一の質問なのに、です。
  • +
  • 1 行ずつしか操作できません。12 個のサービスを再起動するには、右クリックを 12 回、待機を 12 回繰り返します。
  • +
  • 「Stopping...」から抜け出す方法がありません。タスク マネージャーと、どの svchost を終了するかの推測以外には。
  • +
+
    +
  • 履歴がありません。誰がいつスタートアップの種類を Disabled にしたのか、先月はどうだったのか、誰にもわかりません。
  • +
  • 隠れたデータ。プロセス、トリガー、必要な特権、セキュリティ記述子、実行ファイルの署名者。スナップインには何もなく、何かがおかしいときにはすべてが重要です。
  • +
  • 列を変更できません。名前、説明、状態、スタートアップの種類、ログオン。これが一覧のすべてで、実際のマシンで役に立つ並べ替えができるものは一つもありません。
  • +
+
+
+
+ +
+
+

同じ 3 つの作業を、両方で

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
したいことservices.msc ではここでは
起動しているはずなのに起動していないものを見つけるスタートアップの種類で並べ替え、スクロールし、すべての行を読むstart:auto !status:running
停止で何が巻き込まれるかを知るStop を押したあとに、依存するサービスを示すダイアログ何かが起きる前のプラン。それぞれの依存サービスがステップになり、その 1 つがマシンに必要なものである場合は警告が出ます
先週から何が変わったかを知る何もありませんbws snapshot diff before.json --live
誰がスタートアップの種類を変更したかを知る何もありませんbws history Spooler、System ログから
12 個のサービスを再起動する右クリック 12 回12 個を選択し、プラン 1 つ、実行 1 回、レポート 1 つ
サービスの実行ファイルを誰が署名したかを見る表示されません列として表示でき、検索条件にもできます。signed:no
それらのどれかをスクリプトにするスクリプト化できませんbws。--json と、終了のたびの終了コード付き
+
+
+
+ +
+
+

スナップインのほうが優れている点

+

2 つあります。そうでないふりをするのは、このプロジェクトが行わない種類の主張です。

+ +

スナップインに全くできないことが、これが存在する理由です。質問すること、最初にプランを見せること、何がドリフトしたかを伝えること。

+
+
+ +
+
+

これは何か

+

{{product}} は、GPL-3.0 の無料でオープンソースで、片方につき 1 ファイル、またはマシン全体向けのインストーラーがあり、インターネットには一切接続しません。読み取りに管理者権限は不要です。変更には必要で、黙って失敗せずにそのことを伝えます。

+ +
+
diff --git a/site/pages/services-msc-alternative/ko.html b/site/pages/services-msc-alternative/ko.html new file mode 100644 index 0000000..cb72ef4 --- /dev/null +++ b/site/pages/services-msc-alternative/ko.html @@ -0,0 +1,102 @@ + + + + + +
+
+ 가이드 +

services.msc 대안

+

서비스 스냅인은 Windows 2000 이후 거의 바뀌지 않았습니다. 화면에 이미 보이는 서비스 하나를 시작하는 가장 빠른 방법이면서, 컴퓨터에 대한 어떤 질문에든 답하는 가장 느린 방법입니다.

+
+
+ +
+
+

사람들이 대안을 찾게 만드는 것

+
+
    +
  • 검색이 없습니다. 유일한 탐색은 글자를 입력해 그 글자로 시작하는 첫 번째 표시 이름으로 건너뛰는 것입니다. 항목이 팔백 개인 컴퓨터에서는 단계만 늘어난 스크롤입니다.
  • +
  • 필터링이 없습니다. 자동으로 시작하도록 설정됐지만 실행 중이 아닌 것을 물을 방법이 없습니다. 망가진 컴퓨터를 찾아내는 유일한 질문인데도 그렇습니다.
  • +
  • 한 번에 한 행씩만 됩니다. 서비스 열두 개를 재시작하려면 오른쪽 클릭 열두 번과 기다림 열두 번이 필요합니다.
  • +
  • “Stopping...”에서 빠져나갈 길이 없습니다. 작업 관리자와 어느 svchost를 종료할지 짐작하는 것 외에는요.
  • +
+
    +
  • 기록이 없습니다. 누가 언제 시작 유형을 Disabled로 설정했는지, 지난달에도 그랬는지 아무도 모릅니다.
  • +
  • 숨겨진 데이터. 프로세스, 트리거, 필요한 권한, 보안 설명자, 실행 파일에 서명한 주체. 스냅인에는 그중 아무것도 없고, 무언가 잘못되었을 때는 전부 중요합니다.
  • +
  • 열을 바꿀 수 없습니다. 이름, 설명, 상태, 시작 유형, 로그온 계정. 그것이 목록의 전부이며, 실제 컴퓨터에서 그중 어느 것도 쓸모 있게 정렬할 수 없습니다.
  • +
+
+
+
+ +
+
+

같은 세 가지 작업을 양쪽에서

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
하고 싶은 일services.msc에서여기서
실행되어야 하는데 실행 중이 아닌 것 찾기시작 유형으로 정렬하고, 스크롤하고, 모든 행 읽기start:auto !status:running
중지하면 무엇이 함께 내려가는지 알기Stop을 누른 뒤에 종속 서비스 이름을 알려 주는 대화 상자아무 일이 일어나기 전의 계획. 각 종속 서비스가 단계로 들어가고, 그중 하나가 컴퓨터에 필요한 것이면 경고가 나옵니다
지난주 이후 무엇이 바뀌었는지 알기없음bws snapshot diff before.json --live
누가 시작 유형을 바꿨는지 알기없음bws history Spooler, System 로그에서
서비스 열두 개 재시작오른쪽 클릭 열두 번열두 개를 선택하고, 계획 하나, 실행 한 번, 보고서 하나
서비스 실행 파일에 누가 서명했는지 보기표시되지 않음열이며 검색 조건이기도 합니다: signed:no
이 중 무엇이든 스크립트로 만들기스크립트로 만들 수 없음bws, --json과 모든 종료 방식에 대한 종료 코드와 함께
+
+
+
+ +
+
+

스냅인이 여전히 더 잘하는 것

+

두 가지이며, 그렇지 않은 척하는 것은 이 프로젝트가 하지 않는 종류의 주장일 것입니다.

+ +

스냅인이 전혀 하지 못하는 일이 이것이 존재하는 이유입니다. 질문하고, 먼저 계획을 보여 주고, 무엇이 드리프트했는지 알려 주는 것.

+
+
+ +
+
+

이것은 무엇인가

+

{{product}}는 GPL-3.0의 무료 오픈 소스이며, 반쪽마다 파일 하나 또는 컴퓨터 전체를 위한 설치 프로그램이 있고, 인터넷에 접속하지 않습니다. 읽기에는 관리자 권한이 필요 없습니다. 변경에는 필요하며, 조용히 실패하는 대신 그 사실을 알려 줍니다.

+ +
+
diff --git a/site/pages/services-msc-alternative/nl.html b/site/pages/services-msc-alternative/nl.html new file mode 100644 index 0000000..5d1e2de --- /dev/null +++ b/site/pages/services-msc-alternative/nl.html @@ -0,0 +1,102 @@ + + + + + +
+
+ Gids +

Een alternatief voor services.msc

+

De snap-in Services is sinds Windows 2000 nauwelijks veranderd. Het is nog steeds de snelste manier om één service te starten die u al op het scherm ziet, en de langzaamste manier om een vraag over een machine te beantwoorden.

+
+
+ +
+
+

Wat mensen op zoek doet gaan

+
+
    +
  • Geen zoekfunctie. De enige navigatie is een letter typen om naar de eerste weergavenaam te springen die ermee begint. Op een machine met achthonderd items is dat scrollen met extra stappen.
  • +
  • Geen filter. Er is geen manier om te vragen wat staat op automatisch starten en draait niet - de ene vraag die een kapotte machine vindt.
  • +
  • Eén rij tegelijk. Twaalf services herstarten is twaalf keer rechtsklikken en twaalf keer wachten.
  • +
  • "Stopping..." zonder uitweg behalve Taakbeheer en raden welke svchost u moet beëindigen.
  • +
+
    +
  • Geen geschiedenis. Niemand weet wie dat opstarttype op Uitgeschakeld zette, of wanneer, of dat het vorige maand al zo was.
  • +
  • Verborgen gegevens. Het proces, de triggers, de vereiste bevoegdheden, de beveiligingsdescriptor, wie het uitvoerbare bestand heeft ondertekend - niets daarvan staat in de snap-in, en het is allemaal van belang als er iets mis is.
  • +
  • De kolommen kunnen niet veranderen. Naam, beschrijving, status, opstarttype, aanmelden als. Dat is de hele lijst, en geen ervan is op een echte machine zinvol te sorteren.
  • +
+
+
+
+ +
+
+

Dezelfde taken, in beide

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
U wiltIn services.mscHier
Vinden wat zou moeten draaien en niet draaitSorteren op opstarttype, scrollen, elke rij lezenstart:auto !status:running
Weten wat een stop met zich meeneemtEen dialoog die afhankelijke services noemt nadat u op Stop druktEen plan voordat er iets gebeurt, met elke afhankelijke service als stap en een waarschuwing wanneer er een iets is wat de machine nodig heeft
Weten wat er sinds vorige week is veranderdNietsbws snapshot diff before.json --live
Weten wie een opstarttype heeft gewijzigdNietsbws history Spooler, uit het systeemlogboek
Twaalf services herstartenTwaalf keer rechtsklikkenSelecteer er twaalf, één plan, één uitvoering, één rapport
Zien wie een uitvoerbaar bestand van een service heeft ondertekendWordt niet getoondEen kolom, en iets om op te zoeken: signed:no
Er iets van scriptenNiet scriptbaarbws, met --json en een afsluitcode voor elk einde
+
+
+
+ +
+
+

Wat de snap-in nog steeds beter doet

+

Twee dingen, en anders doen alsof zou het soort bewering zijn dat dit project niet doet.

+ +

Wat hij helemaal niet kan is de reden dat dit bestaat: een vraag stellen, eerst een plan tonen, en zeggen wat er is afgedreven.

+
+
+ +
+
+

Wat dit is

+

{{product}} is vrij en open source onder GPL-3.0, één bestand per helft of een installatieprogramma voor de hele machine, en het maakt nooit verbinding met internet. Lezen vraagt geen beheerdersrechten - wijzigen wel, en het zegt dat in plaats van stilletjes te mislukken.

+ +
+
diff --git a/site/pages/services-msc-alternative/page.json b/site/pages/services-msc-alternative/page.json index 9569717..b0be044 100644 --- a/site/pages/services-msc-alternative/page.json +++ b/site/pages/services-msc-alternative/page.json @@ -11,6 +11,12 @@ "fr": "alternative-a-services-msc", "es": "alternativa-a-services-msc", "it": "alternativa-a-services-msc", - "pt-br": "alternativa-ao-services-msc" + "pt-br": "alternativa-ao-services-msc", + "nl": "alternatief-voor-services-msc", + "cs": "alternativa-k-services-msc", + "ro": "alternativa-la-services-msc", + "tr": "services-msc-alternatifi", + "id": "alternatif-services-msc", + "vi": "thay-the-services-msc" } } diff --git a/site/pages/services-msc-alternative/ro.html b/site/pages/services-msc-alternative/ro.html new file mode 100644 index 0000000..54ad526 --- /dev/null +++ b/site/pages/services-msc-alternative/ro.html @@ -0,0 +1,102 @@ + + + + + +
+
+ Ghid +

O alternativă la services.msc

+

Snap-in-ul Services abia s-a schimbat din Windows 2000. Este în continuare cea mai rapidă cale de a porni un serviciu pe care îl vedeți deja pe ecran și cea mai lentă cale de a răspunde la orice întrebare despre o mașină.

+
+
+ +
+
+

Ce îi face pe oameni să caute

+
+
    +
  • Fără căutare. Singura navigare este tastarea unei litere pentru a sări la primul nume afișat care începe cu ea. Pe o mașină cu opt sute de intrări, asta înseamnă derulare cu pași în plus.
  • +
  • Fără filtrare. Nu există nicio cale de a întreba ce este setat să pornească automat și nu rulează - singura întrebare care găsește o mașină stricată.
  • +
  • Un singur rând pe rând. Repornirea a douăsprezece servicii înseamnă douăsprezece clicuri dreapta și douăsprezece așteptări.
  • +
  • "Stopping..." fără ieșire în afara Task Manager și a ghicitului ce svchost să încheiați.
  • +
+
    +
  • Fără istoric. Nimeni nu știe cine a setat acel tip de pornire pe Disabled, sau când, sau dacă era așa și luna trecută.
  • +
  • Date ascunse. Procesul, declanșatoarele, privilegiile necesare, descriptorul de securitate, cine a semnat executabilul - nimic din acestea nu este în snap-in, iar toate contează când ceva nu merge.
  • +
  • Coloanele nu pot fi schimbate. Nume, descriere, stare, tip de pornire, conectare ca. Aceasta este toată lista, iar niciuna nu poate fi sortată util pe o mașină reală.
  • +
+
+
+
+ +
+
+

Aceleași sarcini, în ambele

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Doriți săÎn services.mscAici
Găsiți ce ar trebui să ruleze și nu ruleazăSortați după tipul de pornire, derulați, citiți fiecare rândstart:auto !status:running
Aflați ce trage după sine o oprireO casetă de dialog care numește serviciile dependente după ce apăsați StopUn plan înainte să se întâmple ceva, cu fiecare serviciu dependent ca pas și un avertisment când unul este ceva de care mașina are nevoie
Aflați ce s-a schimbat de săptămâna trecutăNimicbws snapshot diff before.json --live
Aflați cine a schimbat un tip de pornireNimicbws history Spooler, din jurnalul System
Reporniți douăsprezece serviciiDouăsprezece clicuri dreaptaSelectați douăsprezece, un plan, o rulare, un raport
Vedeți cine a semnat executabilul unui serviciuNu este afișatO coloană și ceva după care se poate căuta: signed:no
Automatizați oricare dintre acesteaNu se poate automatizabws, cu --json și un cod de ieșire pentru fiecare final
+
+
+
+ +
+
+

Ce face snap-in-ul în continuare mai bine

+

Două lucruri, iar a pretinde altceva ar fi genul de afirmație pe care acest proiect nu o face.

+ +

Ce nu poate face deloc este motivul pentru care acesta există: să pună o întrebare, să arate mai întâi un plan și să spună ce a derivat.

+
+
+ +
+
+

Ce este aceasta

+

{{product}} este liber și open source sub GPL-3.0, un fișier pentru fiecare jumătate sau un program de instalare pentru toată mașina, și nu comunică niciodată cu internetul. Citirea nu cere drepturi de administrator - schimbarea cere, și spune asta în loc să eșueze în tăcere.

+ +
+
diff --git a/site/pages/services-msc-alternative/ru.html b/site/pages/services-msc-alternative/ru.html new file mode 100644 index 0000000..606d9d2 --- /dev/null +++ b/site/pages/services-msc-alternative/ru.html @@ -0,0 +1,102 @@ + + + + + +
+
+ Руководство +

Альтернатива services.msc

+

Оснастка «Службы» почти не менялась со времён Windows 2000. Она по-прежнему самый быстрый способ запустить одну службу, которую вы уже видите на экране, и самый медленный способ ответить на любой вопрос о машине.

+
+
+ +
+
+

Что заставляет людей искать

+
+
    +
  • Нет поиска. Единственная навигация - набрать букву, чтобы перейти к первому отображаемому имени, начинающемуся с неё. На машине с восемьюстами записями это прокрутка с дополнительными шагами.
  • +
  • Нет фильтрации. Нельзя спросить что настроено на автозапуск и не работает - единственный вопрос, который находит сломанную машину.
  • +
  • По одной строке за раз. Перезапуск двенадцати служб - это двенадцать щелчков правой кнопкой и двенадцать ожиданий.
  • +
  • «Stopping...» без выхода, кроме Диспетчера задач и угадывания, какой svchost завершить.
  • +
+
    +
  • Нет истории. Никто не знает, кто поставил этот тип запуска в Disabled, или когда, или было ли так же месяц назад.
  • +
  • Скрытые данные. Процесс, триггеры, требуемые привилегии, дескриптор безопасности, кто подписал исполняемый файл - ничего из этого нет в оснастке, и всё важно, когда что-то не так.
  • +
  • Столбцы нельзя изменить. Имя, описание, состояние, тип запуска, вход от имени. Вот и весь список, и ни по одному из них нельзя осмысленно сортировать на настоящей машине.
  • +
+
+
+
+ +
+
+

Те же задачи, в обоих

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Вы хотитеВ services.mscЗдесь
Найти то, что должно работать и не работаетСортировать по типу запуска, прокручивать, читать каждую строкуstart:auto !status:running
Узнать, что унесёт с собой остановкаДиалог, называющий зависимые службы после того, как вы нажали «Остановить»План до того, как что-либо произойдёт, где каждая зависимая служба - шаг, и предупреждение, когда одна из них нужна машине
Узнать, что изменилось с прошлой неделиНичегоbws snapshot diff before.json --live
Узнать, кто изменил тип запускаНичегоbws history Spooler, по журналу System
Перезапустить двенадцать службДвенадцать щелчков правой кнопкойВыбрать двенадцать, один план, один запуск, один отчёт
Увидеть, кто подписал исполняемый файл службыНе показываетсяСтолбец и то, по чему можно искать: signed:no
Автоматизировать любое из этогоНе автоматизируетсяbws с --json и кодом завершения для каждого исхода
+
+
+
+ +
+
+

Что оснастка всё ещё делает лучше

+

Две вещи, и утверждать иное было бы утверждением того рода, какие этот проект не делает.

+ +

То, чего она не может вовсе, и есть причина, по которой это существует: задать вопрос, сначала показать план и сказать, что ушло в дрейф.

+
+
+ +
+
+

Что это

+

{{product}} - свободный и с открытым кодом под GPL-3.0, по одному файлу на каждую половину или установщик на всю машину, и он никогда не обращается к интернету. Для чтения права администратора не нужны, для изменения нужны, и он говорит об этом, а не молча отказывает.

+ +
+
diff --git a/site/pages/services-msc-alternative/tr.html b/site/pages/services-msc-alternative/tr.html new file mode 100644 index 0000000..436e87e --- /dev/null +++ b/site/pages/services-msc-alternative/tr.html @@ -0,0 +1,102 @@ + + + + + +
+
+ Kılavuz +

Bir services.msc alternatifi

+

Hizmetler ek bileşeni Windows 2000'den beri neredeyse hiç değişmedi. Ekranda zaten gördüğünüz tek bir hizmeti başlatmanın en hızlı yolu olmaya devam ediyor ve bir makine hakkında herhangi bir soruyu yanıtlamanın en yavaş yolu.

+
+
+ +
+
+

İnsanları arayışa iten ne

+
+
    +
  • Arama yok. Tek gezinme, bir harf yazıp o harfle başlayan ilk görünen ada atlamaktır. Sekiz yüz öğeli bir makinede bu, ek adımlarla kaydırmaktır.
  • +
  • Filtreleme yok. Otomatik başlamaya ayarlı ve çalışmayan nedir diye sormanın yolu yok - bozuk bir makineyi bulan tek soru.
  • +
  • Seferinde tek satır. On iki hizmeti yeniden başlatmak, on iki sağ tık ve on iki bekleme demektir.
  • +
  • Çıkışı olmayan "Stopping..."; Görev Yöneticisi ve hangi svchost'u sonlandıracağınızı tahmin etmek dışında.
  • +
+
    +
  • Geçmiş yok. O başlangıç türünü kimin Disabled yaptığını, ne zaman yaptığını ya da geçen ay da öyle olup olmadığını kimse bilmez.
  • +
  • Gizli veriler. İşlem, tetikleyiciler, gereken ayrıcalıklar, güvenlik tanımlayıcısı, yürütülebilir dosyayı kimin imzaladığı - hiçbiri ek bileşende yok ve bir şey yanlış gittiğinde hepsi önemli.
  • +
  • Sütunlar değiştirilemez. Ad, açıklama, durum, başlangıç türü, oturum açma kimliği. Liste bu kadar ve hiçbiri gerçek bir makinede yararlı biçimde sıralanamaz.
  • +
+
+
+
+ +
+
+

Aynı görevler, ikisinde de

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
İstediğinizservices.msc içindeBurada
Çalışması gereken ve çalışmayanı bulmakBaşlangıç türüne göre sırala, kaydır, her satırı okustart:auto !status:running
Bir durdurmanın beraberinde neleri götürdüğünü bilmekDurdur'a bastıktan sonra bağımlı hizmetleri adlandıran bir iletişim kutusuBir şey olmadan önce bir plan; her bağımlı hizmet bir adım olarak ve biri makinenin ihtiyaç duyduğu bir şeyse bir uyarıyla
Geçen haftadan beri neyin değiştiğini bilmekHiçbir şeybws snapshot diff before.json --live
Bir başlangıç türünü kimin değiştirdiğini bilmekHiçbir şeybws history Spooler, System günlüğünden
On iki hizmeti yeniden başlatmakOn iki sağ tıkOn iki tane seç, bir plan, bir çalıştırma, bir rapor
Bir hizmet yürütülebilir dosyasını kimin imzaladığını görmekGösterilmezBir sütun ve üzerinde arama yapılacak bir şey: signed:no
Bunlardan herhangi birini betiklemekBetiklenemezbws, --json ve her son için bir çıkış koduyla
+
+
+
+ +
+
+

Ek bileşenin hâlâ daha iyi yaptığı

+

İki şey; aksini iddia etmek de bu projenin yapmadığı türden bir iddia olurdu.

+ +

Hiç yapamadığı şey, bunun var olma nedenidir: bir soru sormak, önce bir plan göstermek ve neyin saptığını söylemek.

+
+
+ +
+
+

Bu nedir

+

{{product}} GPL-3.0 altında özgür ve açık kaynaktır; her yarı için bir dosya ya da tüm makine için bir yükleyici ve internete asla bağlanmaz. Okumak yönetici hakları gerektirmez - değiştirmek gerektirir ve sessizce başarısız olmak yerine bunu söyler.

+ +
+
diff --git a/site/pages/services-msc-alternative/uk.html b/site/pages/services-msc-alternative/uk.html new file mode 100644 index 0000000..3786006 --- /dev/null +++ b/site/pages/services-msc-alternative/uk.html @@ -0,0 +1,102 @@ + + + + + +
+
+ Посібник +

Альтернатива services.msc

+

Оснастка «Служби» майже не змінювалася від часів Windows 2000. Це досі найшвидший спосіб запустити одну службу, яку ви вже бачите на екрані, і найповільніший спосіб відповісти на будь-яке запитання про машину.

+
+
+ +
+
+

Що змушує людей шукати

+
+
    +
  • Немає пошуку. Єдина навігація - набрати літеру, щоб перейти до першого відображуваного імені, що з неї починається. На машині з вісьмомастами записів це прокручування з додатковими кроками.
  • +
  • Немає фільтрації. Не можна спитати що налаштовано на автозапуск і не працює - єдине запитання, яке знаходить зламану машину.
  • +
  • По одному рядку за раз. Перезапуск дванадцяти служб - це дванадцять клацань правою кнопкою й дванадцять очікувань.
  • +
  • «Stopping...» без виходу, окрім Диспетчера завдань і вгадування, який svchost завершити.
  • +
+
    +
  • Немає історії. Ніхто не знає, хто поставив цей тип запуску в Disabled, або коли, або чи було так минулого місяця.
  • +
  • Приховані дані. Процес, тригери, потрібні привілеї, дескриптор безпеки, хто підписав виконуваний файл - нічого з цього немає в оснастці, і все це має значення, коли щось не так.
  • +
  • Стовпці не можна змінити. Ім'я, опис, стан, тип запуску, вхід від імені. Це весь список, і жоден із них не можна корисно відсортувати на справжній машині.
  • +
+
+
+
+ +
+
+

Ті самі три завдання в обох

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ви хочетеУ services.mscТут
Знайти, що має працювати й не працюєВідсортувати за типом запуску, прокручувати, читати кожен рядокstart:auto !status:running
Знати, що забирає з собою зупинкаДіалог, що називає залежні служби після того, як ви натиснули StopПлан до того, як щось станеться, з кожною залежною службою як кроком і попередженням, коли одна з них потрібна машині
Знати, що змінилося від минулого тижняНічогоbws snapshot diff before.json --live
Знати, хто змінив тип запускуНічогоbws history Spooler, із журналу System
Перезапустити дванадцять службДванадцять клацань правою кнопкоюВиберіть дванадцять, один план, один запуск, один звіт
Побачити, хто підписав виконуваний файл службиНе показуєтьсяСтовпець і те, за чим можна шукати: signed:no
Автоматизувати будь-що з цьогоНе піддається скриптамbws, з --json і кодом завершення для кожного закінчення
+
+
+
+ +
+
+

Що оснастка досі робить краще

+

Дві речі, а вдавати інакше було б тим видом тверджень, яких цей проєкт не робить.

+ +

Чого вона не вміє взагалі - причина, з якої це існує: поставити запитання, спершу показати план і сказати, що пішло в дрейф.

+
+
+ +
+
+

Що це таке

+

{{product}} безкоштовний і з відкритим кодом за GPL-3.0, по одному файлу на половину або інсталятор на всю машину, і він ніколи не звертається до інтернету. Для читання права адміністратора не потрібні - для змін потрібні, і він каже про це, а не мовчки відмовляє.

+ +
+
diff --git a/site/pages/services-msc-alternative/vi.html b/site/pages/services-msc-alternative/vi.html new file mode 100644 index 0000000..8e16172 --- /dev/null +++ b/site/pages/services-msc-alternative/vi.html @@ -0,0 +1,102 @@ + + + + + +
+
+ Hướng dẫn +

Một lựa chọn thay thế services.msc

+

Snap-in Services hầu như không thay đổi kể từ Windows 2000. Nó vẫn là cách nhanh nhất để khởi động một dịch vụ bạn đã thấy trên màn hình, và là cách chậm nhất để trả lời bất kỳ câu hỏi nào về một máy.

+
+
+ +
+
+

Điều gì khiến mọi người đi tìm

+
+
    +
  • Không có tìm kiếm. Cách điều hướng duy nhất là gõ một chữ cái để nhảy tới tên hiển thị đầu tiên bắt đầu bằng nó. Trên một máy có tám trăm mục, đó là cuộn có thêm bước.
  • +
  • Không có bộ lọc. Không có cách nào để hỏi cái gì được đặt tự khởi động mà không chạy - câu hỏi duy nhất tìm ra một máy hỏng.
  • +
  • Mỗi lần một dòng. Khởi động lại mười hai dịch vụ là mười hai lần nhấp chuột phải và mười hai lần chờ.
  • +
  • "Stopping..." không có lối thoát ngoài Task Manager và đoán xem nên kết thúc svchost nào.
  • +
+
    +
  • Không có lịch sử. Không ai biết ai đã đặt kiểu khởi động đó thành Disabled, hay khi nào, hay tháng trước nó đã như vậy chưa.
  • +
  • Dữ liệu bị ẩn. Tiến trình, trình kích hoạt, đặc quyền yêu cầu, bộ mô tả bảo mật, ai đã ký tệp thực thi - không thứ nào có trong snap-in, và tất cả đều quan trọng khi có gì đó sai.
  • +
  • Các cột không thể thay đổi. Tên, mô tả, trạng thái, kiểu khởi động, đăng nhập bằng. Đó là toàn bộ danh sách, và không cột nào sắp xếp hữu ích được trên một máy thật.
  • +
+
+
+
+ +
+
+

Cùng những việc đó, ở cả hai

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Bạn muốnTrong services.mscỞ đây
Tìm những gì lẽ ra phải chạy mà không chạySắp xếp theo kiểu khởi động, cuộn, đọc từng dòngstart:auto !status:running
Biết việc dừng kéo theo những gìMột hộp thoại nêu tên các dịch vụ phụ thuộc sau khi bạn nhấn StopMột kế hoạch trước khi có gì xảy ra, với mỗi dịch vụ phụ thuộc là một bước và một cảnh báo khi một trong số đó là thứ máy cần
Biết điều gì đã thay đổi từ tuần trướcKhông có gìbws snapshot diff before.json --live
Biết ai đã đổi một kiểu khởi độngKhông có gìbws history Spooler, từ nhật ký System
Khởi động lại mười hai dịch vụMười hai lần nhấp chuột phảiChọn mười hai, một kế hoạch, một lần chạy, một báo cáo
Xem ai đã ký tệp thực thi của một dịch vụKhông được hiển thịMột cột, và một thứ để tìm kiếm: signed:no
Viết script cho bất kỳ việc nào trong đóKhông viết script đượcbws, với --json và một mã thoát cho mọi kết cục
+
+
+
+ +
+
+

Điều snap-in vẫn làm tốt hơn

+

Hai điều, và giả vờ khác đi sẽ là kiểu khẳng định mà dự án này không đưa ra.

+ +

Điều nó hoàn toàn không làm được chính là lý do công cụ này tồn tại: đặt câu hỏi, cho xem kế hoạch trước, và nói điều gì đã lệch.

+
+
+ +
+
+

Đây là gì

+

{{product}} là phần mềm miễn phí, mã nguồn mở theo GPL-3.0, một tệp cho mỗi nửa hoặc một trình cài đặt cho cả máy, và nó không bao giờ nói chuyện với internet. Đọc không cần quyền quản trị - thay đổi thì cần, và nó nói vậy thay vì lặng lẽ thất bại.

+ +
+
diff --git a/site/pages/services-msc-alternative/zh-hans.html b/site/pages/services-msc-alternative/zh-hans.html new file mode 100644 index 0000000..0816ab8 --- /dev/null +++ b/site/pages/services-msc-alternative/zh-hans.html @@ -0,0 +1,102 @@ + + + + + +
+
+ 指南 +

services.msc 的替代方案

+

“服务”管理单元自 Windows 2000 以来几乎没有变化。对于屏幕上已经看到的某一个服务,它仍然是启动它最快的方式,而对于关于计算机的任何问题,它又是回答得最慢的方式。

+
+
+ +
+
+

是什么促使人们去寻找

+
+
    +
  • 没有搜索。唯一的导航方式是输入一个字母,跳到以该字母开头的第一个显示名称。在有八百个条目的计算机上,这只是多了几步的滚动。
  • +
  • 没有筛选。无法询问哪些设为自动启动却没有运行,而这恰恰是能找出一台出了问题的计算机的那一个问题。
  • +
  • 一次只能处理一行。重启十二个服务,就是十二次右键单击和十二次等待。
  • +
  • “Stopping...”之后无路可走,只有任务管理器,以及猜测该结束哪个 svchost。
  • +
+
    +
  • 没有历史记录。没人知道是谁、在何时把这个启动类型设成了 Disabled,也不知道上个月是不是就是这样。
  • +
  • 隐藏的数据。进程、触发器、所需特权、安全描述符、谁给可执行文件签了名:这些在管理单元中一样都没有,而在出问题时全都很重要。
  • +
  • 列无法更改。名称、描述、状态、启动类型、登录身份。这就是全部列表,而在真实的计算机上,其中没有一个能被有效地排序。
  • +
+
+
+
+ +
+
+

同样三项任务,在两者中

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
你想要在 services.msc 中在这里
找出应该运行却没有运行的内容按启动类型排序,滚动,读每一行start:auto !status:running
了解停止会带走什么在你按下 Stop 之后才列出依赖项的对话框任何操作发生之前的计划,每个依赖项各为一个步骤,当其中之一是计算机所需要的时会给出警告
了解自上周以来发生了什么变化没有bws snapshot diff before.json --live
了解是谁更改了启动类型没有bws history Spooler,来自 System 日志
重启十二个服务十二次右键单击选中十二个,一份计划,一次运行,一份报告
查看是谁给服务的可执行文件签了名不显示既是一列,也是可以搜索的内容:signed:no
把其中任何一项写成脚本无法使用脚本bws,带 --json,并为每种结束方式提供退出代码
+
+
+
+ +
+
+

管理单元仍然做得更好的地方

+

有两点,而假装并非如此,正是这个项目不会做的那类声明。

+ +

它完全做不到的事,才是这个工具存在的原因:提出问题、先展示计划,并告诉你发生了哪些漂移。

+
+
+ +
+
+

这是什么

+

{{product}} 是免费开源的,采用 GPL-3.0,每一半各是一个文件,或为整台计算机提供一个安装程序,并且从不连接互联网。读取不需要管理员权限,更改需要,而且它会说明这一点,而不是悄悄失败。

+ +
+
diff --git a/site/pages/services-msc-alternative/zh-hant.html b/site/pages/services-msc-alternative/zh-hant.html new file mode 100644 index 0000000..73f2ef8 --- /dev/null +++ b/site/pages/services-msc-alternative/zh-hant.html @@ -0,0 +1,102 @@ + + + + + +
+
+ 指南 +

services.msc 的替代方案

+

「服務」管理單元自 Windows 2000 以來幾乎沒有變化。對於螢幕上已經看到的某一個服務,它仍然是啟動它最快的方式,而對於關於電腦的任何問題,它又是回答得最慢的方式。

+
+
+ +
+
+

是什麼促使人們去尋找

+
+
    +
  • 沒有搜尋。唯一的導覽方式是輸入一個字母,跳到以該字母開頭的第一個顯示名稱。在有八百個項目的電腦上,這只是多了幾步的捲動。
  • +
  • 沒有篩選。無法詢問哪些設為自動啟動卻沒有執行,而這恰恰是能找出一台出了問題的電腦的那一個問題。
  • +
  • 一次只能處理一列。重新啟動十二個服務,就是十二次按右鍵和十二次等待。
  • +
  • 「Stopping...」之後無路可走,只有工作管理員,以及猜測該結束哪個 svchost。
  • +
+
    +
  • 沒有歷程記錄。沒人知道是誰、在何時把這個啟動類型設成了 Disabled,也不知道上個月是不是就是這樣。
  • +
  • 隱藏的資料。處理程序、觸發程序、所需特殊權限、安全性描述元、誰替可執行檔簽章:這些在管理單元中一樣都沒有,而在出問題時全都很重要。
  • +
  • 欄無法變更。名稱、描述、狀態、啟動類型、登入身分。這就是全部清單,而在真實的電腦上,其中沒有一個能被有效地排序。
  • +
+
+
+
+ +
+
+

同樣三項任務,在兩者中

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
你想要在 services.msc 中在這裡
找出應該執行卻沒有執行的內容依啟動類型排序,捲動,讀每一列start:auto !status:running
了解停止會帶走什麼在你按下 Stop 之後才列出相依項目的對話方塊任何動作發生之前的計畫,每個相依項目各為一個步驟,當其中之一是電腦所需要的時會給出警告
了解自上週以來發生了什麼變化沒有bws snapshot diff before.json --live
了解是誰變更了啟動類型沒有bws history Spooler,來自 System 記錄檔
重新啟動十二個服務十二次按右鍵選取十二個,一份計畫,一次執行,一份報告
查看是誰替服務的可執行檔簽章不顯示既是一欄,也是可以搜尋的內容:signed:no
把其中任何一項寫成指令碼無法使用指令碼bws,帶 --json,並為每種結束方式提供結束代碼
+
+
+
+ +
+
+

管理單元仍然做得更好的地方

+

有兩點,而假裝並非如此,正是這個專案不會做的那類聲明。

+ +

它完全做不到的事,才是這個工具存在的原因:提出問題、先展示計畫,並告訴你發生了哪些漂移。

+
+
+ +
+
+

這是什麼

+

{{product}} 是免費開放原始碼的,採用 GPL-3.0,每一半各是一個檔案,或為整台電腦提供一個安裝程式,並且從不連上網際網路。讀取不需要系統管理員權限,變更需要,而且它會說明這一點,而不是悄悄失敗。

+ +
+
diff --git a/site/pages/snapshots-and-drift/cs.html b/site/pages/snapshots-and-drift/cs.html new file mode 100644 index 0000000..de08db7 --- /dev/null +++ b/site/pages/snapshots-and-drift/cs.html @@ -0,0 +1,65 @@ + + + + + +
+
+ Část, kterou services.msc nikdy neměl +

Snímky a drift

+

Každý jiný nástroj vám řekne, jak stroj vypadá teď. Otázka, kterou správce skutečně má, je co je jinak než ve chvíli, kdy to fungovalo - a na čisté instalaci Windows na ni neodpovídá nic.

+
+
+ +
+
+

Co snímek obsahuje

+

Celý stroj v jednom okamžiku: každá služba a ovladač s typem spouštění, účtem, cestou ke spuštění a argumenty, hashem a podepisovatelem souboru, který spouští, závislostmi a tím, co na něm závisí, triggery, požadovanými privilegii, typem SID a popisovačem zabezpečení - plus název stroje, účet, který snímek pořídil, a zda byl tento účet správce.

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

Je to JSON s jedním polem na řádek. To je záměr: snímek lze uložit do repozitáře a git diff ho čte, takže vlastní porovnání nástroje není jediný způsob, jak se na něj podívat.

+

Ukládejte ho podle toho, čím je. Snímek popisuje celý stroj, až po každou cestu ke spuštění a každý popisovač zabezpečení. Zapisuje se s oprávněními, která jeho adresář už má, a nástroj nic nezužuje - adresář, který mohou číst jiní lidé, je tedy takový, ve kterém mohou přečíst to všechno.

+
+
+ +
+
+

Pak se zeptejte, co je jinak

+
$ 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.
+
+
    +
  • Konfigurace a stav běhu se hlásí odděleně. Dva snímky pořízené s odstupem dne se liší tím, co zrovna běží, a téměř nic z toho není drift. Smíchané dohromady je jediný řádek, na kterém záleží - typ spouštění, který někdo změnil - pohřben pod čtyřiceti, které nezáleží.
  • +
  • Co nešlo porovnat, je uvedeno, ne skryto. Pole, které jeden ze dvou snímků nikdy nečetl, protože ta relace na ně neměla práva, vyjde pod svou položkou jako not compared a souhrn takové položky počítá. Porovnání, které říká nic se nezměnilo, tedy znamená, že se nic nezměnilo v tom, co viděly obě strany.
  • +
+
    +
  • Snímek se zvýšenými oprávněními proti snímku bez nich by lhal a hlásil by jako odstraněné položky, které nikdo neodstranil. Každý soubor zaznamenává, zda účet, který ho pořídil, byl správce, a porovnání to říká.
  • +
  • Dva soubory, ne jen soubor a tento stroj. Pořiďte jeden na testovacím a jeden na produkčním prostředí a porovnejte je kdekoli - odpověď na proč se testovací liší nepotřebuje ani jeden ze strojů.
  • +
+
+

Okno dělá totéž v části Audit.... Take snapshot... zapíše týž soubor, s poznámkou, pokud ji napíšete, a Compare with this machine... nebo Compare two snapshots... místo seznamu ukáže, co se změnilo, jeden řádek na pole, se vším, co činí porovnání méně než přesným, uvedeným nad tabulkou. Show ho zúží na rozdíly nebo na jedno pole a Export... ho zapíše do souboru CSV.

+
+
+ +
+
+

Důležitý je návratový kód

+

--exit-code skončí kódem 5, když se konfigurace liší - položka přidána nebo odebrána, nebo nastavená jinak. Služba, která se jen sama zastavila nebo spustila, se ohlásí a nepočítá se, a nepočítají se ani kopie pro jednotlivé uživatele, které Windows vytváří pro každou přihlášenou relaci: ty se vynechají a spočítají. Není to selhání - drift je to, co tento nástroj má nacházet, a jeho nalezení není selhání - a proto má vlastní číslo, místo aby si půjčoval to, které znamená, že se něco pokazilo.

+
# den, kdy stroj jde do provozu
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# každou noc z naplánované úlohy
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - žádný drift konfigurace
+#   5 - konfigurace se odchýlila a drift.json říká co
+#   3 - proběhlo to a nešlo přečíst všechno, takže odpověď je částečná
+

To je celý mechanismus: výchozí stav pořízený, když byl stroj prokazatelně v pořádku, a otázka kladená každou noc. První noc, kdy odpoví 5, se to někdo dozví hned první noc, a ne ráno, kdy se něco rozbije.

+ Použití pro audit +
+
diff --git a/site/pages/snapshots-and-drift/id.html b/site/pages/snapshots-and-drift/id.html new file mode 100644 index 0000000..cbdeb09 --- /dev/null +++ b/site/pages/snapshots-and-drift/id.html @@ -0,0 +1,65 @@ + + + + + +
+
+ Bagian yang tidak pernah dilakukan services.msc +

Snapshot dan penyimpangan

+

Setiap alat lain memberi tahu Anda seperti apa mesin itu sekarang. Pertanyaan yang sebenarnya dimiliki administrator adalah apa yang berbeda dari saat semuanya berfungsi - dan tidak ada apa pun pada Windows standar yang menjawabnya.

+
+
+ +
+
+

Apa isi sebuah snapshot

+

Seluruh mesin pada satu saat: setiap layanan dan driver, dengan tipe startup, akun, jalur peluncuran dan argumen, hash dan penandatangan berkas yang dijalankannya, dependensinya dan apa yang bergantung padanya, pemicunya, hak istimewa yang dibutuhkan, tipe SID, dan deskriptor keamanannya - ditambah nama mesin, akun yang mengambilnya, dan apakah akun itu administrator.

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

Berupa JSON dengan satu bidang per baris. Itu disengaja: snapshot bisa masuk ke repositori dan git diff membacanya, sehingga perbandingan bawaan alat ini bukan satu-satunya cara untuk melihatnya.

+

Simpan sesuai dengan apa adanya. Snapshot menggambarkan seluruh mesin, sampai setiap jalur peluncuran dan deskriptor keamanan. Ia ditulis dengan izin apa pun yang sudah dimiliki direktorinya, dan alat ini tidak mempersempit apa pun - sehingga direktori yang bisa dibaca orang lain adalah direktori tempat mereka bisa membaca semua itu.

+
+
+ +
+
+

Lalu tanyakan apa yang berbeda

+
$ 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.
+
+
    +
  • Konfigurasi dan status berjalan dilaporkan terpisah. Dua snapshot yang diambil berselang sehari berbeda pada apa yang kebetulan berjalan, dan hampir tidak ada yang merupakan penyimpangan. Jika dicampur, satu baris yang penting - tipe startup yang diubah seseorang - terkubur di bawah empat puluh yang tidak penting.
  • +
  • Apa yang tidak bisa dibandingkan dicantumkan, tidak disembunyikan. Bidang yang tidak pernah dibaca oleh salah satu dari dua snapshot, karena sesi itu tidak punya hak atasnya, muncul sebagai not compared di bawah entrinya, dan ringkasan menghitung entri tersebut. Jadi perbandingan yang berbunyi tidak ada yang berubah berarti tidak ada yang berubah pada apa yang bisa dilihat kedua sisi.
  • +
+
    +
  • Snapshot dengan hak tinggi dibandingkan dengan yang tanpa hak akan berbohong, melaporkan entri sebagai dihapus padahal tidak ada yang menghapusnya. Setiap berkas mencatat apakah akun yang mengambilnya adalah administrator, dan perbandingan menyatakannya.
  • +
  • Dua berkas, bukan hanya berkas dan mesin ini. Ambil satu di staging dan satu di produksi, lalu bandingkan di mana saja - jawaban atas mengapa staging berbeda tidak membutuhkan salah satu mesin hadir.
  • +
+
+

Jendela melakukan hal yang sama di bawah Audit.... Take snapshot... menulis berkas yang sama, dengan catatan jika Anda mengetiknya, dan Compare with this machine... atau Compare two snapshots... menampilkan apa yang berubah sebagai ganti daftar, satu baris per bidang, dengan segala sesuatu yang membuat perbandingan kurang tepat dinyatakan di atas tabel. Show mempersempitnya ke perbedaan atau ke satu bidang, dan Export... menulisnya ke berkas CSV.

+
+
+ +
+
+

Kode keluar adalah intinya

+

--exit-code berakhir dengan 5 ketika konfigurasi berbeda - sebuah entri ditambah atau dihapus, atau satu yang diatur berbeda. Layanan yang hanya berhenti atau mulai sendiri dilaporkan dan tidak dihitung, begitu juga salinan per pengguna yang dibuat Windows untuk setiap sesi yang masuk: itu dikecualikan dan dihitung. Bukan kegagalan - penyimpangan adalah apa yang ingin ditemukan alat ini, dan menemukannya bukanlah kegagalan - itulah sebabnya ia punya nomor sendiri alih-alih meminjam nomor yang berarti ada yang salah.

+
# hari mesin mulai beroperasi
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# setiap malam, dari tugas terjadwal
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - tidak ada penyimpangan konfigurasi
+#   5 - konfigurasi menyimpang, dan drift.json menyatakan apa
+#   3 - berjalan tetapi tidak bisa membaca semuanya, jadi jawabannya sebagian
+

Itulah seluruh mekanismenya: acuan dasar yang diambil saat mesin diketahui baik, dan pertanyaan yang diajukan setiap malam. Pada malam pertama ia menjawab 5, seseorang tahu pada malam pertama itu, bukan pada pagi saat sesuatu rusak.

+ Memakai ini untuk audit +
+
diff --git a/site/pages/snapshots-and-drift/ja.html b/site/pages/snapshots-and-drift/ja.html new file mode 100644 index 0000000..553cf6e --- /dev/null +++ b/site/pages/snapshots-and-drift/ja.html @@ -0,0 +1,65 @@ + + + + + +
+
+ services.msc にはなかった機能 +

スナップショットとドリフト

+

ほかのどのツールも、マシンが今どう見えるかを教えてくれます。管理者が実際に抱えている質問は動いていたときと何が違うかであり、標準の Windows にはそれに答えるものが何もありません。

+
+
+ +
+
+

スナップショットに含まれるもの

+

ある時点のマシン全体です。すべてのサービスとドライバーについて、スタートアップの種類、アカウント、起動パスと引数、実行するファイルのハッシュと署名者、依存関係と依存されている関係、トリガー、必要な特権、SID の種類、セキュリティ記述子が含まれます。さらに、マシンの名前、取得したアカウント、そしてそのアカウントが管理者だったかどうかも含まれます。

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

1 行に 1 フィールドの JSON です。これは意図的なものです。スナップショットをリポジトリに入れて git diff で読めるので、ツール自身の比較だけが見る方法ではなくなります。

+

それにふさわしい扱いで保管してください。スナップショットは、すべての起動パスとセキュリティ記述子に至るまで、マシン全体を記述しています。保存先ディレクトリがすでに持っているアクセス許可のまま書き込まれ、ツールは何も絞り込みません。そのため、ほかの人が読めるディレクトリでは、その人たちがそのすべてを読めます。

+
+
+ +
+
+

それから、何が違うかを尋ねる

+
$ 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.
+
+
    +
  • 構成と実行状態は分けて報告されます。1 日あけて取得した 2 つのスナップショットは、たまたま実行されているものが異なり、そのほとんどはドリフトではありません。混ぜてしまうと、重要な 1 行(誰かが変更したスタートアップの種類)が、重要でない 40 行の下に埋もれます。
  • +
  • 比較できなかったものは、隠さず一覧に出ます。2 つのスナップショットのうち片方が一度も読み取らなかったフィールド(そのセッションに権限がなかったため)は、そのエントリの下に not compared と表示され、サマリーはそのようなエントリを数えます。したがって、何も変わっていないと示す差分は、両方が見られた範囲で何も変わっていないという意味です。
  • +
+
    +
  • 昇格したスナップショットと昇格していないスナップショットを比較すると、誤った結果になります。誰も削除していないエントリが削除されたと報告されてしまいます。各ファイルには、取得したアカウントが管理者だったかどうかが記録され、比較はそのことを伝えます。
  • +
  • ファイルとこのマシンだけでなく、2 つのファイルでも比較できます。ステージング環境と本番環境でそれぞれ取って、どこでも比較できます。ステージング環境はなぜ違うのかという問いに、どちらのマシンもその場に必要ありません。
  • +
+
+

ウィンドウでも Audit... から同じことができます。Take snapshot... は同じファイルを書き込み、入力すればメモも付きます。Compare with this machine... または Compare two snapshots... は、一覧の代わりに何が変わったかをフィールドごとに 1 行で表示し、比較が完全に正確ではなくなる事情はすべて表の上に書かれます。Show は差分または 1 つのフィールドに絞り込み、Export... は CSV ファイルに書き出します。

+
+
+ +
+
+

終了コードが要点です

+

--exit-code は、構成が異なる場合に 5 で終了します。エントリが追加または削除された場合、または設定が変わった場合です。単に自力で停止または開始したサービスは報告されますが、数えません。Windows がサインインしているセッションごとに作るユーザーごとのコピーも、同様に数えず、省いたうえで件数を報告します。失敗ではありません。ドリフトは、このツールが見つけるために存在するものであり、見つけることは失敗ではありません。だからこそ、何かがおかしいことを意味する番号を借りず、専用の番号があります。

+
# マシンが稼働を開始する日
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 毎晩、スケジュールされたタスクから
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 構成のドリフトなし
+#   5 - 構成がドリフトした。drift.json に内容が書かれる
+#   3 - 実行されたが、すべてを読み取れなかった。そのため答えは部分的
+

これが仕組みのすべてです。マシンが正常だとわかっているときに取ったベースラインと、毎晩尋ねる質問です。初日の夜に 5 が返れば、何かが壊れた朝ではなく、その初日の夜に誰かが気づきます。

+ 監査での使い方 +
+
diff --git a/site/pages/snapshots-and-drift/ko.html b/site/pages/snapshots-and-drift/ko.html new file mode 100644 index 0000000..e81c9ed --- /dev/null +++ b/site/pages/snapshots-and-drift/ko.html @@ -0,0 +1,65 @@ + + + + + +
+
+ services.msc에 없던 기능 +

스냅샷과 드리프트

+

다른 모든 도구는 컴퓨터가 지금 어떻게 보이는지 알려 줍니다. 관리자가 실제로 가진 질문은 잘 동작하던 때와 무엇이 다른가이며, 기본 Windows에는 이에 답하는 것이 없습니다.

+
+
+ +
+
+

스냅샷에 들어 있는 것

+

한 시점의 컴퓨터 전체입니다. 모든 서비스와 드라이버의 시작 유형, 계정, 시작 경로와 인수, 실행하는 파일의 해시와 서명자, 종속성과 그것에 종속된 것, 트리거, 필요한 권한, SID 유형, 보안 설명자가 들어 있으며, 컴퓨터 이름, 스냅샷을 만든 계정, 그리고 그 계정이 관리자였는지 여부도 들어 있습니다.

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

한 줄에 필드 하나인 JSON입니다. 일부러 그렇게 했습니다. 스냅샷을 저장소에 넣을 수 있고 git diff가 읽으므로, 도구 자체의 비교가 스냅샷을 보는 유일한 방법이 아니게 됩니다.

+

있는 그대로의 대접에 맞게 보관하세요. 스냅샷은 모든 시작 경로와 보안 설명자까지 컴퓨터 전체를 설명합니다. 그 디렉터리가 이미 가진 권한 그대로 기록되고 도구는 아무것도 좁히지 않으므로, 다른 사람이 읽을 수 있는 디렉터리라면 그 사람들은 그 모든 것을 읽을 수 있습니다.

+
+
+ +
+
+

그다음, 무엇이 다른지 물어보세요

+
$ 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.
+
+
    +
  • 구성과 실행 상태를 따로 보고합니다. 하루 간격으로 만든 스냅샷 두 개는 우연히 실행 중인 것이 다르고, 그중 거의 아무것도 드리프트가 아닙니다. 섞어 놓으면 중요한 한 줄, 누군가 바꾼 시작 유형이, 중요하지 않은 마흔 줄 아래에 묻힙니다.
  • +
  • 비교하지 못한 것은 숨기지 않고 나열합니다. 두 스냅샷 중 하나가 읽지 않은 필드(그 세션에 권한이 없었기 때문)는 그 항목 아래에 not compared로 나오고, 요약은 그런 항목의 수를 셉니다. 따라서 아무것도 바뀌지 않았다라고 말하는 차이는 양쪽이 볼 수 있었던 범위에서 아무것도 바뀌지 않았다는 뜻입니다.
  • +
+
    +
  • 상승된 스냅샷을 상승되지 않은 스냅샷과 비교하면 거짓말이 됩니다. 아무도 제거하지 않은 항목이 제거되었다고 보고되기 때문입니다. 각 파일은 그것을 만든 계정이 관리자였는지 기록하고, 비교는 그 사실을 알려 줍니다.
  • +
  • 파일과 이 컴퓨터만이 아니라 파일 두 개도 비교합니다. 스테이징 환경에서 하나, 운영 환경에서 하나를 만들어 어디서든 비교하세요. 스테이징 환경은 왜 다른가라는 질문의 답은 어느 컴퓨터도 그 자리에 있을 필요가 없습니다.
  • +
+
+

창도 Audit... 아래에서 같은 일을 합니다. Take snapshot...은 같은 파일을 쓰며, 입력하면 메모도 함께 남깁니다. Compare with this machine... 또는 Compare two snapshots...는 목록 대신 무엇이 바뀌었는지를 필드당 한 행으로 보여 주며, 비교를 덜 정확하게 만드는 모든 사항을 표 위에 알려 줍니다. Show는 차이만 또는 필드 하나로 좁히고, Export...는 CSV 파일로 씁니다.

+
+
+ +
+
+

종료 코드가 핵심입니다

+

--exit-code는 구성이 다르면 5로 끝납니다. 항목이 추가되거나 제거되었거나, 하나가 다르게 설정된 경우입니다. 스스로 중지되거나 시작된 서비스는 보고되지만 세지 않으며, Windows가 로그인한 세션마다 만드는 사용자별 복사본도 세지 않고 제외한 뒤 개수만 알려 줍니다. 실패가 아닙니다. 드리프트는 이 도구가 찾아내려고 있는 것이고, 그것을 찾는 것은 실패가 아니기 때문이며, 그래서 무언가 잘못되었다는 뜻의 번호를 빌리지 않고 자신만의 번호가 있습니다.

+
# 컴퓨터가 운영에 들어가는 날
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 매일 밤, 예약 작업에서
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 구성 드리프트 없음
+#   5 - 구성이 드리프트했으며, drift.json에 무엇인지 나옴
+#   3 - 실행되었지만 모든 것을 읽지 못했으므로 답이 부분적임
+

이것이 메커니즘의 전부입니다. 컴퓨터가 정상이라고 알려졌을 때 만든 기준선과, 매일 밤 하는 질문입니다. 첫날 밤에 5라고 답하면, 무언가 망가진 아침이 아니라 바로 그 첫날 밤에 누군가 알게 됩니다.

+ 감사에 사용하기 +
+
diff --git a/site/pages/snapshots-and-drift/nl.html b/site/pages/snapshots-and-drift/nl.html new file mode 100644 index 0000000..96cc34a --- /dev/null +++ b/site/pages/snapshots-and-drift/nl.html @@ -0,0 +1,65 @@ + + + + + +
+
+ Het deel dat services.msc nooit deed +

Momentopnamen en drift

+

Elk ander hulpmiddel vertelt hoe een machine er nu uitziet. De vraag die een beheerder echt heeft is wat is anders dan toen het werkte - en niets op een gewone Windows beantwoordt die.

+
+
+ +
+
+

Wat een momentopname bevat

+

De hele machine op één moment: elke service en elk stuurprogramma, met opstarttype, account, opstartpad en argumenten, de hash en de ondertekenaar van het bestand dat het uitvoert, de afhankelijkheden en wat ervan afhangt, de triggers, de vereiste bevoegdheden, het SID-type en de beveiligingsdescriptor - plus de naam van de machine, het account dat hem heeft gemaakt en of dat account een beheerder was.

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

Het is JSON met één veld per regel. Dat is bewust: een momentopname kan in een repository en git diff leest hem, dus de eigen vergelijking van het hulpmiddel is niet de enige manier om er een te bekijken.

+

Archiveer het als wat het is. Een momentopname beschrijft de hele machine, tot elk opstartpad en elke beveiligingsdescriptor toe. Hij wordt geschreven met de rechten die de map al heeft, en het hulpmiddel beperkt niets - een map die anderen kunnen lezen is dus een map waarin ze dat alles kunnen lezen.

+
+
+ +
+
+

Vraag dan wat er anders is

+
$ 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.
+
+
    +
  • Configuratie en uitvoeringstoestand worden apart gemeld. Twee momentopnamen met een dag ertussen verschillen in wat er toevallig draait, en bijna niets daarvan is drift. Door elkaar gegooid wordt de ene regel die telt - een opstarttype dat iemand heeft gewijzigd - begraven onder veertig die dat niet doen.
  • +
  • Wat niet kon worden vergeleken wordt vermeld, niet verborgen. Een veld dat een van de twee momentopnamen nooit las, omdat die sessie er geen rechten op had, komt onder zijn item uit als not compared, en de samenvatting telt die items. Een vergelijking die zegt niets is veranderd betekent dus dat er niets is veranderd in wat beide kanten konden zien.
  • +
+
    +
  • Een momentopname met verhoogde rechten tegen een zonder zou liegen, en items als verwijderd melden die niemand heeft verwijderd. Elk bestand legt vast of het account dat het maakte een beheerder was, en de vergelijking zegt dat.
  • +
  • Twee bestanden, niet alleen een bestand en deze machine. Maak er een op acceptatie en een op productie en vergelijk ze overal - het antwoord op waarom verschilt acceptatie heeft geen van beide machines nodig.
  • +
+
+

Het venster doet hetzelfde onder Audit.... Take snapshot... schrijft hetzelfde bestand, met een notitie als u er een typt, en Compare with this machine... of Compare two snapshots... toont in plaats van de lijst wat er is veranderd, één rij per veld, met alles wat de vergelijking minder dan exact maakt boven de tabel gezegd. Show beperkt het tot de verschillen of tot één veld, en Export... schrijft het naar een CSV-bestand.

+
+
+ +
+
+

De afsluitcode is waar het om gaat

+

--exit-code eindigt met 5 wanneer de configuratie verschilt - een item toegevoegd of verwijderd, of een anders ingesteld item. Een service die alleen uit zichzelf stopte of startte wordt gemeld en telt niet mee, en de kopieën per gebruiker die Windows voor elke aangemelde sessie maakt ook niet: die blijven weg en worden geteld. Geen mislukking - drift is waarvoor dit hulpmiddel is gemaakt, en het vinden ervan is geen mislukking - en daarom heeft het een eigen nummer in plaats van het nummer te lenen dat betekent dat er iets misging.

+
# de dag dat de machine in gebruik gaat
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# elke nacht, vanuit een geplande taak
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - geen configuratiedrift
+#   5 - de configuratie is afgedreven, en drift.json zegt wat
+#   3 - het draaide en kon niet alles lezen, dus het antwoord is gedeeltelijk
+

Dat is het hele mechanisme: een basislijn gemaakt toen de machine bewezen goed was, en elke nacht een vraag. De eerste nacht dat het 5 antwoordt, komt iemand het die nacht te weten en niet de ochtend dat iets kapotgaat.

+ Hiervoor een audit gebruiken +
+
diff --git a/site/pages/snapshots-and-drift/page.json b/site/pages/snapshots-and-drift/page.json index 5f07a80..cc79bcf 100644 --- a/site/pages/snapshots-and-drift/page.json +++ b/site/pages/snapshots-and-drift/page.json @@ -11,6 +11,12 @@ "fr": "instantanes-et-derive", "es": "instantaneas-y-deriva", "it": "snapshot-e-deriva", - "pt-br": "instantaneos-e-deriva" + "pt-br": "instantaneos-e-deriva", + "nl": "momentopnamen-en-drift", + "cs": "snimky-a-drift", + "ro": "instantanee-si-deriva", + "tr": "anlik-goruntuler-ve-sapma", + "id": "snapshot-dan-penyimpangan", + "vi": "ban-chup-va-sai-lech" } } diff --git a/site/pages/snapshots-and-drift/ro.html b/site/pages/snapshots-and-drift/ro.html new file mode 100644 index 0000000..bea82b0 --- /dev/null +++ b/site/pages/snapshots-and-drift/ro.html @@ -0,0 +1,65 @@ + + + + + +
+
+ Ceea ce services.msc nu a făcut niciodată +

Instantanee și derivă

+

Orice alt instrument vă spune cum arată o mașină acum. Întrebarea pe care o are de fapt un administrator este ce este diferit față de când funcționa - iar pe un Windows obișnuit nimic nu o răspunde.

+
+
+ +
+
+

Ce conține un instantaneu

+

Toată mașina la un moment dat: fiecare serviciu și driver, cu tipul de pornire, contul, calea de lansare și argumentele, hash-ul și semnatarul fișierului pe care îl rulează, dependențele și ce depinde de el, declanșatoarele, privilegiile necesare, tipul SID și descriptorul de securitate - plus numele mașinii, contul care l-a făcut și dacă acel cont era administrator.

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

Este JSON cu un câmp pe rând. Este deliberat: un instantaneu poate intra într-un depozit și git diff îl citește, deci comparația proprie a instrumentului nu este singura cale de a privi unul.

+

Arhivați-l ca ceea ce este. Un instantaneu descrie toată mașina, până la fiecare cale de lansare și fiecare descriptor de securitate. Este scris cu permisiunile pe care directorul său le are deja, iar instrumentul nu restrânge nimic - deci un director pe care îl pot citi alte persoane este unul în care ele pot citi toate acestea.

+
+
+ +
+
+

Apoi întrebați ce este diferit

+
$ 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.
+
+
    +
  • Configurația și starea de rulare sunt raportate separat. Două instantanee făcute la o zi distanță diferă prin ce se întâmplă să ruleze și aproape nimic din asta nu este derivă. Amestecat, singurul rând care contează - un tip de pornire pe care cineva l-a schimbat - este îngropat sub patruzeci care nu contează.
  • +
  • Ce n-a putut fi comparat este listat, nu ascuns. Un câmp pe care unul dintre cele două instantanee nu l-a citit niciodată, pentru că acea sesiune nu avea drepturi asupra lui, iese ca not compared sub intrarea lui, iar rezumatul numără acele intrări. Deci o comparație care spune nimic nu s-a schimbat înseamnă că nimic nu s-a schimbat în ceea ce vedeau ambele părți.
  • +
+
    +
  • Un instantaneu cu drepturi ridicate comparat cu unul fără ar minți, raportând ca eliminate intrări pe care nimeni nu le-a eliminat. Fiecare fișier consemnează dacă contul care l-a făcut era administrator, iar comparația spune asta.
  • +
  • Două fișiere, nu doar un fișier și această mașină. Faceți unul pe mediul de testare și unul pe producție și comparați-le oriunde - răspunsul la de ce diferă mediul de testare nu are nevoie de niciuna dintre mașini.
  • +
+
+

Fereastra face același lucru la Audit.... Take snapshot... scrie același fișier, cu o notă dacă tastați una, iar Compare with this machine... sau Compare two snapshots... arată ce s-a schimbat în locul listei, un rând pe câmp, cu tot ce face comparația mai puțin decât exactă spus deasupra tabelului. Show o restrânge la diferențe sau la un singur câmp, iar Export... o scrie într-un fișier CSV.

+
+
+ +
+
+

Codul de ieșire este esența

+

--exit-code se încheie cu 5 când configurația diferă - o intrare adăugată sau eliminată ori una configurată altfel. Un serviciu care doar s-a oprit sau a pornit singur este raportat și nu contează, iar nici copiile pe utilizator pe care Windows le face pentru fiecare sesiune autentificată nu contează: acestea sunt omise și numărate. Nu este un eșec - deriva este ceea ce acest instrument există să găsească, iar găsirea ei nu este un eșec - de aceea are un număr propriu, în loc să-l împrumute pe cel care înseamnă că ceva a mers prost.

+
# ziua în care mașina intră în serviciu
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# în fiecare noapte, dintr-o sarcină programată
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - nicio derivă de configurație
+#   5 - configurația a derivat, iar drift.json spune ce
+#   3 - a rulat și n-a putut citi totul, deci răspunsul este parțial
+

Acesta este întregul mecanism: o stare de referință luată când mașina era bună și o întrebare pusă în fiecare noapte. În prima noapte în care răspunde 5, cineva află chiar în acea noapte, și nu în dimineața în care se strică ceva.

+ Folosirea pentru un audit +
+
diff --git a/site/pages/snapshots-and-drift/ru.html b/site/pages/snapshots-and-drift/ru.html new file mode 100644 index 0000000..4881b4e --- /dev/null +++ b/site/pages/snapshots-and-drift/ru.html @@ -0,0 +1,65 @@ + + + + + +
+
+ То, чего services.msc никогда не делал +

Снимки и дрейф

+

Любой другой инструмент говорит, как машина выглядит сейчас. Вопрос, который на самом деле стоит перед администратором, - что отличается от того, как было, когда всё работало, - и на обычной Windows на него не отвечает ничто.

+
+
+ +
+
+

Что хранит снимок

+

Вся машина в один момент: каждая служба и драйвер с типом запуска, учётной записью, путём запуска и аргументами, хешем и подписантом запускаемого файла, зависимостями и тем, что зависит от неё, триггерами, требуемыми привилегиями, типом SID и дескриптором безопасности, а также имя машины, учётная запись, сделавшая снимок, и была ли эта учётная запись администратором.

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

Это JSON с одним полем на строку. Это намеренно: снимок помещается в репозиторий, и git diff его читает, так что собственное сравнение инструмента - не единственный способ его просмотреть.

+

Храните его как то, что он есть. Снимок описывает всю машину, вплоть до каждого пути запуска и каждого дескриптора безопасности. Он записывается с теми правами, что уже есть у его каталога, и инструмент ничего не сужает - поэтому каталог, который могут читать другие люди, это каталог, где они могут прочитать всё это.

+
+
+ +
+
+

Затем спросите, что отличается

+
$ 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.
+
+
    +
  • Конфигурация и состояние выполнения сообщаются раздельно. Два снимка с разницей в день различаются тем, что случайно работает, и почти ничто из этого не дрейф. Смешанная вместе, единственная строка, которая важна, - тип запуска, который кто-то изменил, - тонет под сорока неважными.
  • +
  • То, что нельзя было сравнить, перечислено, а не скрыто. Поле, которое один из двух снимков никогда не читал, потому что у того сеанса не было на него прав, выходит как not compared под своей записью, а итог считает такие записи. Поэтому сравнение, говорящее ничего не изменилось, означает, что ничего не изменилось в том, что видели обе стороны.
  • +
+
    +
  • Снимок с повышенными правами против снимка без них солгал бы, сообщив как удалённые записи, которых никто не удалял. Каждый файл записывает, был ли администратором сделавший его аккаунт, и сравнение говорит об этом.
  • +
  • Два файла, а не только файл и эта машина. Сделайте один на тестовой среде и один на рабочей и сравните их где угодно - ответу на вопрос почему тестовая среда отличается не нужна ни одна из машин.
  • +
+
+

Окно делает то же самое в разделе Audit.... Take snapshot... пишет тот же файл, с примечанием, если вы его наберёте, а Compare with this machine... или Compare two snapshots... показывает вместо списка, что изменилось, одной строкой на поле, со всем, что делает сравнение менее точным, сказанным над таблицей. Show сужает его до различий или до одного поля, а Export... записывает его в файл CSV.

+
+
+ +
+
+

Код завершения - вот в чём суть

+

--exit-code завершается кодом 5, когда конфигурация отличается: запись добавлена или удалена, или одна настроена иначе. Служба, которая лишь сама остановилась или запустилась, сообщается и не считается, как и копии для каждого пользователя, которые Windows делает на каждый вошедший сеанс: они опускаются и подсчитываются. Это не отказ - дрейф это то, что этот инструмент создан находить, а его нахождение не отказ, - поэтому у него свой номер, а не заимствованный тот, что означает, что что-то пошло не так.

+
# день, когда машина вводится в эксплуатацию
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# каждую ночь, из запланированной задачи
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - дрейфа конфигурации нет
+#   5 - конфигурация ушла в дрейф, и drift.json говорит в чём
+#   3 - выполнилось и не смогло прочитать всё, поэтому ответ частичный
+

Вот и весь механизм: эталонное состояние, снятое, когда было известно, что машина в порядке, и вопрос, задаваемый каждую ночь. В первую же ночь, когда он ответит 5, кто-то узнает об этом в первую же ночь, а не утром, когда что-то сломается.

+ Использование этого для аудита +
+
diff --git a/site/pages/snapshots-and-drift/tr.html b/site/pages/snapshots-and-drift/tr.html new file mode 100644 index 0000000..82057c3 --- /dev/null +++ b/site/pages/snapshots-and-drift/tr.html @@ -0,0 +1,65 @@ + + + + + +
+
+ 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 +
+
diff --git a/site/pages/snapshots-and-drift/uk.html b/site/pages/snapshots-and-drift/uk.html new file mode 100644 index 0000000..535f587 --- /dev/null +++ b/site/pages/snapshots-and-drift/uk.html @@ -0,0 +1,65 @@ + + + + + +
+
+ Те, чого services.msc ніколи не робив +

Знімки й дрейф

+

Кожен інший інструмент каже, як машина виглядає зараз. Запитання, яке насправді має адміністратор, - що відрізняється від того, коли все працювало - і ніщо в стандартній Windows на нього не відповідає.

+
+
+ +
+
+

Що містить знімок

+

Вся машина в один момент: кожна служба й драйвер із типом запуску, обліковим записом, шляхом запуску й аргументами, хешем і підписантом файлу, який він запускає, його залежностями та тим, що залежить від нього, його тригерами, потрібними привілеями, типом SID і дескриптором безпеки - плюс ім'я машини, обліковий запис, що його зробив, і чи був цей обліковий запис адміністратором.

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

Це JSON з одним полем на рядок. Це зроблено навмисно: знімок потрапляє в репозиторій, і git diff його читає, тож власне порівняння інструмента - не єдиний спосіб на нього подивитися.

+

Зберігайте його так, як він того вартий. Знімок описує всю машину, до кожного шляху запуску й дескриптора безпеки. Він записується з тими правами, які вже має його каталог, і інструмент нічого не звужує - тож каталог, який можуть читати інші люди, дає їм змогу прочитати все це.

+
+
+ +
+
+

А потім спитайте, що відрізняється

+
$ 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.
+
+
    +
  • Конфігурація й стан виконання повідомляються окремо. Два знімки з різницею в день відрізняються тим, що випадково працює, і майже ніщо з цього не дрейф. Змішані разом, єдиний рядок, що має значення, - тип запуску, який хтось змінив, - тоне під сорока тими, що ні.
  • +
  • Те, що не вдалося порівняти, перелічено, а не приховано. Поле, якого один із двох знімків ніколи не читав, бо той сеанс не мав на нього прав, виходить як not compared під своїм записом, а підсумок рахує такі записи. Тож порівняння, що каже нічого не змінилося, означає, що нічого не змінилося в тому, що бачили обидві сторони.
  • +
+
    +
  • Знімок з підвищеними правами проти знімка без них збрехав би, повідомляючи про видалення записів, яких ніхто не видаляв. Кожен файл записує, чи був обліковий запис, що його зробив, адміністратором, і порівняння про це каже.
  • +
  • Два файли, а не лише файл і ця машина. Зробіть один на тестовому середовищі й один на робочому та порівняйте їх будь-де - відповідь на чому тестове середовище відрізняється не потребує присутності жодної з машин.
  • +
+
+

Вікно робить те саме в розділі Audit.... Take snapshot... записує той самий файл, із нотаткою, якщо ви її введете, а Compare with this machine... або Compare two snapshots... показує, що змінилося, замість списку, по одному рядку на поле, з усім, що робить порівняння менш ніж точним, сказаним над таблицею. Show звужує його до відмінностей або до одного поля, а Export... записує його у файл CSV.

+
+
+ +
+
+

Код завершення - це суть

+

--exit-code завершується кодом 5, коли конфігурація відрізняється: запис додано чи видалено, або один налаштовано інакше. Служба, що просто сама зупинилася чи запустилася, повідомляється й не враховується, так само як і копії для кожного користувача, які Windows робить для кожного сеансу ввійшовшого користувача, - їх пропущено й пораховано. Це не збій: дрейф - це те, що цей інструмент створено знаходити, а його знаходження не є збоєм, - тому в нього власне число, а не позичене в того, що означає, що щось пішло не так.

+
# день, коли машина вводиться в експлуатацію
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# щоночі, із запланованої задачі
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - немає дрейфу конфігурації
+#   5 - конфігурація пішла в дрейф, і drift.json каже, що саме
+#   3 - виконалося й не змогло прочитати все, тож відповідь часткова
+

Це весь механізм: еталонний стан, знятий, коли машина була відома як справна, і запитання, яке ставлять щоночі. Якщо першої ночі відповідь 5, хтось дізнається про це першої ж ночі, а не вранці, коли щось зламається.

+ Використання для аудиту +
+
diff --git a/site/pages/snapshots-and-drift/vi.html b/site/pages/snapshots-and-drift/vi.html new file mode 100644 index 0000000..f2e8598 --- /dev/null +++ b/site/pages/snapshots-and-drift/vi.html @@ -0,0 +1,65 @@ + + + + + +
+
+ Phần mà services.msc chưa bao giờ làm +

Bản chụp và sai lệch

+

Mọi công cụ khác cho bạn biết một máy trông thế nào bây giờ. Câu hỏi mà một quản trị viên thực sự có là điều gì khác so với lúc nó còn hoạt động - và không có gì trên một Windows nguyên bản trả lời được.

+
+
+ +
+
+

Một bản chụp chứa gì

+

Cả máy tại một thời điểm: mọi dịch vụ và trình điều khiển, với kiểu khởi động, tài khoản, đường dẫn khởi chạy và đối số, mã băm và người ký của tệp mà nó chạy, các phụ thuộc và những gì phụ thuộc vào nó, trình kích hoạt, đặc quyền yêu cầu, kiểu SID và bộ mô tả bảo mật - cộng với tên máy, tài khoản đã chụp nó, và tài khoản đó có phải quản trị viên hay không.

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

Nó là JSON với một trường mỗi dòng. Đó là cố ý: một bản chụp có thể đưa vào kho mã và git diff đọc được nó, nên phép so sánh riêng của công cụ không phải là cách duy nhất để xem một bản.

+

Hãy lưu trữ nó đúng với bản chất của nó. Một bản chụp mô tả cả máy, đến từng đường dẫn khởi chạy và bộ mô tả bảo mật. Nó được ghi với quyền mà thư mục của nó vốn có, và công cụ không thu hẹp gì - nên một thư mục mà người khác đọc được là thư mục mà họ đọc được tất cả những điều đó.

+
+
+ +
+
+

Rồi hỏi điều gì khác

+
$ 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.
+
+
    +
  • Cấu hình và trạng thái chạy được báo riêng. Hai bản chụp cách nhau một ngày khác nhau ở những gì tình cờ đang chạy, và hầu như không có gì trong đó là sai lệch. Trộn lẫn lại, dòng duy nhất quan trọng - một kiểu khởi động mà ai đó đã đổi - bị chôn dưới bốn mươi dòng không quan trọng.
  • +
  • Những gì không thể so sánh được liệt kê, không bị giấu. Một trường mà một trong hai bản chụp chưa bao giờ đọc, vì phiên đó không có quyền với nó, hiện ra là not compared dưới mục của nó, và phần tóm tắt đếm những mục đó. Nên một phép so sánh nói không có gì thay đổi nghĩa là không có gì thay đổi trong những gì cả hai phía đều thấy được.
  • +
+
    +
  • So một bản chụp nâng quyền với một bản không nâng quyền sẽ nói dối, báo các mục là bị xóa trong khi không ai xóa. Mỗi tệp ghi lại tài khoản đã chụp nó có phải quản trị viên không, và phép so sánh nói điều đó.
  • +
  • Hai tệp, không chỉ một tệp và máy này. Chụp một bản trên môi trường thử nghiệm và một bản trên môi trường sản xuất rồi so sánh chúng ở bất cứ đâu - câu trả lời cho vì sao môi trường thử nghiệm khác không cần máy nào có mặt.
  • +
+
+

Cửa sổ làm điều tương tự dưới Audit.... Take snapshot... ghi cùng một tệp, kèm ghi chú nếu bạn gõ, và Compare with this machine... hoặc Compare two snapshots... hiển thị điều gì đã thay đổi thay cho danh sách, mỗi trường một hàng, với mọi điều khiến phép so sánh kém chính xác được nêu phía trên bảng. Show thu hẹp nó vào các khác biệt hoặc một trường, và Export... ghi nó ra tệp CSV.

+
+
+ +
+
+

Mã thoát mới là điểm mấu chốt

+

--exit-code kết thúc bằng 5 khi cấu hình khác nhau - một mục được thêm hoặc bị xóa, hoặc một mục được thiết lập khác. Một dịch vụ chỉ tự dừng hoặc tự khởi động thì được báo cáo và không tính, và các bản sao theo người dùng mà Windows tạo cho mỗi phiên đã đăng nhập cũng không tính: chúng bị loại ra và được đếm. Không phải một thất bại - sai lệch là điều công cụ này tồn tại để tìm, và tìm thấy nó không phải là một thất bại - nên nó có con số riêng thay vì mượn con số có nghĩa là có gì đó hỏng.

+
# ngày máy bắt đầu đưa vào hoạt động
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# mỗi đêm, từ một tác vụ theo lịch
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - không có sai lệch cấu hình
+#   5 - cấu hình đã lệch, và drift.json nói là gì
+#   3 - đã chạy và không đọc được hết, nên câu trả lời chỉ là một phần
+

Đó là toàn bộ cơ chế: một mốc chuẩn được lấy khi máy được biết là tốt, và một câu hỏi được đặt ra mỗi đêm. Đêm đầu tiên nó trả lời 5, ai đó biết ngay đêm đầu tiên, chứ không phải vào buổi sáng khi có gì đó hỏng.

+ Dùng việc này để kiểm toán +
+
diff --git a/site/pages/snapshots-and-drift/zh-hans.html b/site/pages/snapshots-and-drift/zh-hans.html new file mode 100644 index 0000000..c5f0db0 --- /dev/null +++ b/site/pages/snapshots-and-drift/zh-hans.html @@ -0,0 +1,65 @@ + + + + + +
+
+ services.msc 从未做到的事 +

快照与漂移

+

其他所有工具都只告诉你计算机现在是什么样。管理员真正的问题是它和正常工作时相比有什么不同,而标准的 Windows 里没有任何东西能回答这个问题。

+
+
+ +
+
+

快照里有什么

+

某一时刻的整台计算机:每个服务和驱动程序,包括它的启动类型、账户、启动路径和参数、其运行文件的哈希和签名者、它的依赖项以及依赖它的内容、它的触发器、所需特权、SID 类型和安全描述符,外加计算机名称、生成它的账户,以及该账户是否是管理员。

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

它是每行一个字段的 JSON。这是有意为之:这意味着快照可以放进代码仓库,由 git diff 读取,所以工具自带的比较并不是查看快照的唯一方式。

+

请按它本来的性质来存放。快照描述了整台计算机,细到每个启动路径和安全描述符。它以其所在目录已有的权限写入,而工具不会收紧任何权限,所以一个其他人可以读取的目录,意味着他们能读到全部这些内容。

+
+
+ +
+
+

然后询问有什么不同

+
$ 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.
+
+
    +
  • 配置与运行状态分开报告。相隔一天生成的两个快照,在恰好正在运行的内容上会有所不同,而其中几乎没有一项是漂移。混在一起的话,唯一重要的那一行,也就是某人更改过的启动类型,就会被淹没在四十行无关的内容之下。
  • +
  • 无法比较的内容会被列出,而不是被隐藏。两个快照中有一个从未读取过的字段,因为那次会话无权读取它,会在其条目下显示为 not compared,而摘要会统计这样的条目。所以一份写着没有任何变化的差异,表示的是在双方都能看到的范围内没有任何变化。
  • +
+
    +
  • 把提升权限的快照与未提升权限的快照比较会说谎,把没人删除过的条目报告为已删除。每个文件都会记录生成它的账户是否是管理员,比较结果会说明这一点。
  • +
  • 是两个文件,而不只是一个文件与这台计算机。在暂存环境生成一个,在生产环境生成一个,然后在任何地方对比它们:为什么暂存环境不同这个问题的答案,不需要任何一台计算机在场。
  • +
+
+

窗口在 Audit... 下做同样的事。Take snapshot... 写入同一种文件,如果你输入了备注也会一并写入,而 Compare with this machine... 或 Compare two snapshots... 会取代列表,按每个字段一行显示发生了哪些变化,所有使比较不那么精确的情况都会写在表格上方。Show 把它缩小到只显示差异或某一个字段,Export... 则把它写入 CSV 文件。

+
+
+ +
+
+

退出代码才是关键

+

--exit-code 在配置不同时以 5 结束:条目被添加或删除,或者某个条目的设置不同。只是自行停止或启动的服务会被报告,但不计入,Windows 为每个已登录会话生成的按用户副本也不计入,它们会被省略并被统计数量。这不是失败:漂移正是这个工具要找的东西,找到它并不是失败,这就是为什么它有自己专属的编号,而不是借用表示出了问题的那一个。

+
# 计算机投入使用的那一天
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 每晚,通过计划任务
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 没有配置漂移
+#   5 - 配置发生了漂移,drift.json 会说明具体内容
+#   3 - 已运行但无法读取全部内容,因此答案是部分的
+

这就是整个机制:在计算机已知良好时生成的基线,以及每晚提出的一个问题。第一晚的回答若是 5,就会在第一晚而不是在某样东西坏掉的那个早晨被人发现。

+ 把它用于审计 +
+
diff --git a/site/pages/snapshots-and-drift/zh-hant.html b/site/pages/snapshots-and-drift/zh-hant.html new file mode 100644 index 0000000..1960662 --- /dev/null +++ b/site/pages/snapshots-and-drift/zh-hant.html @@ -0,0 +1,65 @@ + + + + + +
+
+ services.msc 從未做到的事 +

快照與漂移

+

其他所有工具都只告訴你電腦現在是什麼樣。系統管理員真正的問題是它和正常運作時相比有什麼不同,而標準的 Windows 裡沒有任何東西能回答這個問題。

+
+
+ +
+
+

快照裡有什麼

+

某一時刻的整台電腦:每個服務和驅動程式,包括它的啟動類型、帳戶、啟動路徑和參數、其執行檔案的雜湊和簽署者、它的相依項目以及依賴它的內容、它的觸發程序、所需特殊權限、SID 類型和安全性描述元,外加電腦名稱、產生它的帳戶,以及該帳戶是否是系統管理員。

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

它是每行一個欄位的 JSON。這是有意為之:這意味著快照可以放進程式碼存放庫,由 git diff 讀取,所以工具自帶的比較並不是檢視快照的唯一方式。

+

請按它本來的性質來存放。快照描述了整台電腦,細到每個啟動路徑和安全性描述元。它以其所在目錄已有的權限寫入,而工具不會收緊任何權限,所以一個其他人可以讀取的目錄,意味著他們能讀到全部這些內容。

+
+
+ +
+
+

然後詢問有什麼不同

+
$ 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.
+
+
    +
  • 組態與執行狀態分開回報。相隔一天產生的兩個快照,在恰好正在執行的內容上會有所不同,而其中幾乎沒有一項是漂移。混在一起的話,唯一重要的那一行,也就是某人變更過的啟動類型,就會被淹沒在四十行無關的內容之下。
  • +
  • 無法比較的內容會被列出,而不是被隱藏。兩個快照中有一個從未讀取過的欄位,因為那次工作階段無權讀取它,會在其項目下顯示為 not compared,而摘要會統計這樣的項目。所以一份寫著沒有任何變化的差異,表示的是在雙方都能看到的範圍內沒有任何變化。
  • +
+
    +
  • 把提升權限的快照與未提升權限的快照比較會說謊,把沒人刪除過的項目回報為已刪除。每個檔案都會記錄產生它的帳戶是否是系統管理員,比較結果會說明這一點。
  • +
  • 是兩個檔案,而不只是一個檔案與這台電腦。在預備環境產生一個,在正式環境產生一個,然後在任何地方比較它們:為什麼預備環境不同這個問題的答案,不需要任何一台電腦在場。
  • +
+
+

視窗在 Audit... 下做同樣的事。Take snapshot... 寫入同一種檔案,如果你輸入了備註也會一併寫入,而 Compare with this machine... 或 Compare two snapshots... 會取代清單,按每個欄位一行顯示發生了哪些變化,所有使比較不那麼精確的情況都會寫在表格上方。Show 把它縮小到只顯示差異或某一個欄位,Export... 則把它寫入 CSV 檔案。

+
+
+ +
+
+

結束代碼才是關鍵

+

--exit-code 在組態不同時以 5 結束:項目被新增或刪除,或者某個項目的設定不同。只是自行停止或啟動的服務會被回報,但不計入,Windows 為每個已登入工作階段產生的依使用者副本也不計入,它們會被省略並被統計數量。這不是失敗:漂移正是這個工具要找的東西,找到它並不是失敗,這就是為什麼它有自己專屬的編號,而不是借用表示出了問題的那一個。

+
# 電腦投入使用的那一天
+bws snapshot create C:\baselines\web01.json --note "after the build"
+
+# 每晚,透過排程工作
+bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
+#   0 - 沒有組態漂移
+#   5 - 組態發生了漂移,drift.json 會說明具體內容
+#   3 - 已執行但無法讀取全部內容,因此答案是部分的
+

這就是整個機制:在電腦已知良好時產生的基準,以及每晚提出的一個問題。第一晚的回答若是 5,就會在第一晚而不是在某樣東西壞掉的那個早晨被人發現。

+ 把它用於稽核 +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/cs.html b/site/pages/stop-a-service-that-will-not-stop/cs.html new file mode 100644 index 0000000..43c0d48 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/cs.html @@ -0,0 +1,68 @@ + + + + + +
+
+ Průvodce +

Služba zaseklá na Stopping...

+

Snap-in ukazuje Stopping a nehne se. Obvyklá odpověď je Správce úloh, tip, v jakém svchost.exe žije, a Ukončit úlohu - což ukončí i každou další službu v tom procesu, aniž by vám řeklo, které to byly.

+
+
+ +
+
+

Proč se to děje

+ +
+
+ +
+
+

Podívejte se, než cokoli ukončíte

+

Zeptejte se, co by ukončení vzalo s sebou. Nic se neděje, dokud nevypustíte --dry-run.

+
$ bws kill Spooler --dry-run
+

Náhled pojmenuje proces číslem, pojmenuje každou další službu, která v něm žije, a ukáže dva kroky místo jednoho: požádat službu o zastavení a jen když to nezabere ukončit proces. Služba, která se zastaví sama, se nikdy neukončí.

+
+
    +
  • --force přeskočí zdvořilý krok a proces ukončí hned. Mění plán, ne jeho provedení, takže náhled ukáže jeden krok místo dvou a rozdíl je vidět dřív, než se cokoli stane.
  • +
  • --restart vše vrátí, jakmile je proces pryč - položku, na kterou jste se ptali, i všechno, co sdílelo její proces. Bez něj stroj zůstane s těmito službami zastavenými a zpráva říká, jak je znovu spustit.
  • +
+
    +
  • Odmítnutí přijde dřív než tlačítko. Ovladač, proces, který systém chrání, služba, jejíž zastavení správce nepřijme - odmítnuto při sestavování plánu, s důvodem, a ne po šedesáti sekundách čekání.
  • +
  • Varování, když na tom záleží. Pokud je položka taková, bez které stroj nefunguje, plán to říká - zastavení položí stroj, nejen službu.
  • +
+
+

Ukončení procesu je jediná věc, kterou tento nástroj dělá a kterou nikdo nemůže jménem stroje odmítnout. Proto je to samostatný příkaz, proto náhled pojmenovává každou službu, kterou vezme s sebou, a proto zdvořilý krok přichází první, pokud neřeknete jinak.

+
+
+ +
+
+

Bezpečnější pořadí

+
    +
  1. Zjistěte, co to je. bws show Spooler - proces, co na něm závisí, co potřebuje on sám, a zda vůbec přijímá požadavky na zastavení.
  2. +
  3. Zkuste běžné zastavení jako plán. bws stop Spooler --dry-run --dependents. Pokud je odpovědí odmítnutí, řekne, který ze tří důvodů to je.
  4. +
  5. Pokud se nezastaví, podívejte se, co stojí jeho ukončení. bws kill Spooler --dry-run a přečtěte si seznam služeb sdílejících tento proces.
  6. +
  7. Pak to udělejte, s cestou zpět. bws kill Spooler --restart. Zpráva končí tím, co nezabralo, a příkazy, které věci vrátí.
  8. +
+

Všechny čtyři fungují v okně stejně: klikněte pravým tlačítkem na řádek, zvolte Force stop..., přečtěte si plán a tlačítko pod ním je pojmenováno podle toho, co udělá.

+
+
+ +
+
+

Proč prostě nepoužít Správce úloh

+

Protože odpovídá na jinou otázku. Správce úloh zná procesy a tento problém je o službách a ty si neodpovídají jedna k jedné.

+

Sdílený svchost.exe může obsahovat tucet služeb. Správce úloh ho ukončí, aniž by řekl, kterých dvanáct, žádná se sama nevrátí a nic poté neřekne, co se zastavilo. EDR, který označí proces ukončující svchost.exe, dělá svou práci a vaše kliknutí od ničeho jiného rozeznat neumí.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/id.html b/site/pages/stop-a-service-that-will-not-stop/id.html new file mode 100644 index 0000000..d5ea755 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/id.html @@ -0,0 +1,68 @@ + + + + + +
+
+ Panduan +

Layanan yang macet di Stopping...

+

Snap-in menampilkan Stopping dan tidak pernah bergerak. Jawaban yang biasa adalah Task Manager, tebakan di svchost.exe mana ia hidup, dan End task - yang juga mengakhiri setiap layanan lain dalam proses itu, tanpa memberi tahu Anda yang mana.

+
+
+ +
+
+

Mengapa ini terjadi

+ +
+
+ +
+
+

Lihat sebelum mengakhiri apa pun

+

Tanyakan apa yang akan ikut terbawa jika diakhiri. Tidak ada yang terjadi sampai Anda membuang --dry-run.

+
$ bws kill Spooler --dry-run
+

Pratinjau menyebut proses dengan nomor, menyebut setiap layanan lain yang hidup di dalamnya, dan menampilkan dua langkah, bukan satu: minta layanan berhenti, dan hanya jika itu tidak berhasil, akhiri prosesnya. Layanan yang berhenti sendiri tidak pernah diakhiri.

+
+
    +
  • --force melewati langkah sopan dan mengakhiri proses seketika. Ia mengubah rencana, bukan cara menjalankannya, sehingga pratinjau menampilkan satu langkah, bukan dua, dan perbedaannya terlihat sebelum apa pun terjadi.
  • +
  • --restart mengembalikan semuanya setelah proses hilang - entri yang Anda tanyakan dan semua yang berbagi prosesnya. Tanpanya, mesin dibiarkan dengan layanan-layanan itu berhenti, dan laporan menyatakan cara memulainya lagi.
  • +
+
    +
  • Penolakan datang sebelum tombol. Driver, proses yang dilindungi sistem, layanan yang penghentiannya tidak diterima manajer - ditolak saat rencana dibangun, beserta alasannya, bukan setelah menunggu enam puluh detik.
  • +
  • Peringatan saat itu penting. Jika entrinya adalah yang tanpanya mesin tidak berfungsi, rencana menyatakannya - menghentikannya menjatuhkan mesin, bukan hanya layanannya.
  • +
+
+

Mengakhiri proses adalah satu-satunya hal yang dilakukan alat ini yang tidak bisa ditolak siapa pun atas nama mesin. Itulah sebabnya ini perintah tersendiri, mengapa pratinjau menyebut setiap layanan yang dibawanya serta, dan mengapa langkah sopan datang lebih dulu kecuali Anda menyatakan lain.

+
+
+ +
+
+

Urutan yang lebih aman

+
    +
  1. Lihat apa itu. bws show Spooler - prosesnya, apa yang bergantung padanya, apa yang dibutuhkannya, dan apakah ia menerima permintaan berhenti sama sekali.
  2. +
  3. Coba penghentian biasa, sebagai rencana. bws stop Spooler --dry-run --dependents. Jika jawabannya penolakan, ia menyebut yang mana dari tiga alasan itu.
  4. +
  5. Jika tidak mau berhenti, lihat berapa biaya mengakhirinya. bws kill Spooler --dry-run, dan baca daftar layanan yang berbagi proses itu.
  6. +
  7. Lalu lakukan, dengan jalan kembali. bws kill Spooler --restart. Laporan berakhir dengan apa yang tidak berhasil dan perintah yang mengembalikan keadaan.
  8. +
+

Keempatnya bekerja dengan cara yang sama di jendela: klik kanan sebuah baris, pilih Force stop..., baca rencananya, dan tombol di bawahnya dinamai sesuai apa yang akan dilakukannya.

+
+
+ +
+
+

Mengapa tidak pakai Task Manager saja

+

Karena ia menjawab pertanyaan yang berbeda. Task Manager mengenal proses dan masalah ini tentang layanan, dan keduanya tidak sejajar satu lawan satu.

+

svchost.exe bersama dapat memuat selusin layanan. Task Manager akan mengakhirinya tanpa menyebut kedua belas yang mana, tidak ada yang kembali sendiri, dan tidak ada yang sesudahnya memberi tahu Anda apa yang berhenti. EDR yang menandai proses yang mengakhiri svchost.exe sedang menjalankan tugasnya, dan ia tidak bisa membedakan klik Anda dari yang lain.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/ja.html b/site/pages/stop-a-service-that-will-not-stop/ja.html new file mode 100644 index 0000000..e363ad4 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/ja.html @@ -0,0 +1,68 @@ + + + + + +
+
+ ガイド +

Stopping... のまま止まったサービス

+

スナップインは Stopping を表示したまま動きません。よくある対処は、タスク マネージャーを開き、どの svchost.exe に入っているかを推測して「タスクの終了」を押すことです。それでは、そのプロセス内のほかのサービスもすべて、どれだったかを知らされないまま終了してしまいます。

+
+
+ +
+
+

なぜ起きるのか

+ +
+
+ +
+
+

何かを終了する前に確認する

+

終了すると何が巻き込まれるかを尋ねます。--dry-run を外すまで、何も起きません。

+
$ bws kill Spooler --dry-run
+

プレビューは、プロセスを番号で示し、そこに存在するほかのすべてのサービスの名前を挙げ、1 つではなく 2 つのステップを表示します。サービスに停止を要求し、それがうまくいかない場合にのみプロセスを終了します。自力で停止するサービスが強制終了されることはありません。

+
+
    +
  • --force は丁寧なステップを省略し、プロセスをすぐに終了します。実行ではなくプランを変えるので、プレビューには 2 つではなく 1 つのステップが表示され、何かが起きる前にその違いが見えます。
  • +
  • --restart は、プロセスが消えたあとにすべてを元に戻します。尋ねたエントリと、同じプロセスを共有していたすべてです。これがないと、マシンにはそれらのサービスが停止したまま残り、レポートはそれらを再び開始する方法を伝えます。
  • +
+
    +
  • 拒否はボタンより前に来ます。ドライバー、システムが保護しているプロセス、マネージャーが停止を受け付けないサービスは、60 秒待ったあとではなく、プランを作る時点で理由とともに拒否されます。
  • +
  • 重要なときは警告します。エントリがマシンの動作に不可欠なものであれば、プランがそう伝えます。停止すると、サービスだけでなくマシンが落ちます。
  • +
+
+

プロセスを終了することは、このツールが行う唯一の、マシンに代わって誰も拒否できないことです。だから独立したコマンドになっていて、プレビューが巻き込むすべてのサービスの名前を挙げ、指定しない限り丁寧なステップが先に実行されます。

+
+
+ +
+
+

より安全な順序

+
    +
  1. 何であるかを確認する。bws show Spooler で、プロセス、依存されているもの、依存しているもの、そもそも停止要求を受け付けているかどうかがわかります。
  2. +
  3. 通常の停止を、プランとして試す。bws stop Spooler --dry-run --dependents。答えが拒否であれば、3 つの理由のどれなのかが示されます。
  4. +
  5. 止まらない場合は、終了のコストを確認する。bws kill Spooler --dry-run を実行し、そのプロセスを共有するサービスの一覧を読みます。
  6. +
  7. それから実行する。戻る方法を用意して。bws kill Spooler --restart。レポートは、うまくいかなかったことと、元に戻すコマンドで終わります。
  8. +
+

4 つとも、ウィンドウでも同じように動作します。行を右クリックして Force stop... を選び、プランを読むと、その下のボタンには実行する内容が名前として付いています。

+
+
+ +
+
+

なぜタスク マネージャーでは足りないのか

+

答えている質問が違うからです。タスク マネージャーが知っているのはプロセスで、この問題はサービスについてのものであり、両者は 1 対 1 には対応しません。

+

共有の svchost.exe は、十数個のサービスを抱えていることがあります。タスク マネージャーは、その 12 個がどれかを言わずに終了します。どれも自力では戻ってこず、そのあとに何が止まったかを教えてくれるものはありません。svchost.exe を終了するプロセスを検知する EDR は役目を果たしていますが、あなたのクリックとほかの何かを区別することはできません。

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/ko.html b/site/pages/stop-a-service-that-will-not-stop/ko.html new file mode 100644 index 0000000..ad766fa --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/ko.html @@ -0,0 +1,68 @@ + + + + + +
+
+ 가이드 +

Stopping...에서 멈춘 서비스

+

스냅인은 Stopping을 표시한 채 움직이지 않습니다. 흔한 해결책은 작업 관리자를 열어 어느 svchost.exe 안에 있는지 짐작하고 작업 끝내기를 누르는 것인데, 그러면 그 프로세스 안의 다른 모든 서비스도, 어떤 서비스였는지 알려 주지 않은 채 함께 종료됩니다.

+
+
+ +
+
+

왜 이런 일이 생기는가

+ +
+
+ +
+
+

무엇이든 종료하기 전에 확인하세요

+

종료하면 무엇이 함께 사라지는지 물어보세요. --dry-run을 빼기 전에는 아무 일도 일어나지 않습니다.

+
$ bws kill Spooler --dry-run
+

미리 보기는 프로세스를 번호로 알려 주고, 그 안에 있는 다른 모든 서비스의 이름을 알려 주며, 한 단계가 아니라 두 단계를 보여 줍니다. 서비스에 중지를 요청하고, 그것이 통하지 않을 때만 프로세스를 종료합니다. 스스로 멈추는 서비스는 절대 강제 종료되지 않습니다.

+
+
    +
  • --force는 정중한 단계를 건너뛰고 프로세스를 바로 종료합니다. 실행이 아니라 계획을 바꾸므로, 미리 보기에 두 단계 대신 한 단계가 표시되고 그 차이가 아무 일이 일어나기 전에 보입니다.
  • +
  • --restart는 프로세스가 사라진 뒤 모든 것을 되돌립니다. 물어본 항목과 그 프로세스를 공유하던 모든 것입니다. 이것이 없으면 컴퓨터에는 그 서비스들이 중지된 채로 남으며, 보고서가 다시 시작하는 방법을 알려 줍니다.
  • +
+
    +
  • 거부는 버튼보다 먼저 옵니다. 드라이버, 시스템이 보호하는 프로세스, 서비스 관리자가 중지를 받아들이지 않는 서비스는 60초를 기다린 뒤가 아니라 계획을 만들 때 이유와 함께 거부됩니다.
  • +
  • 중요할 때는 경고합니다. 컴퓨터가 없이는 동작하지 않는 항목이면 계획이 그 사실을 알려 줍니다. 그것을 중지하면 서비스만이 아니라 컴퓨터가 내려갑니다.
  • +
+
+

프로세스를 종료하는 것은 이 도구가 하는 일 중 컴퓨터를 대신해 아무도 거부할 수 없는 유일한 일입니다. 그래서 별도의 명령이고, 그래서 미리 보기가 함께 사라지는 모든 서비스의 이름을 알려 주며, 그래서 다르게 지정하지 않으면 정중한 단계가 먼저 옵니다.

+
+
+ +
+
+

더 안전한 순서

+
    +
  1. 무엇인지 확인합니다. bws show Spooler로 프로세스, 그것에 종속된 것, 그것이 종속된 것, 그리고 중지 요청을 아예 받아들이는지 알 수 있습니다.
  2. +
  3. 일반적인 중지를 계획으로 시도합니다. bws stop Spooler --dry-run --dependents. 답이 거부라면 세 가지 이유 중 어느 것인지 알려 줍니다.
  4. +
  5. 멈추지 않으면 종료의 비용을 확인합니다. bws kill Spooler --dry-run을 실행하고, 그 프로세스를 공유하는 서비스 목록을 읽으세요.
  6. +
  7. 그다음 되돌릴 길을 두고 실행합니다. bws kill Spooler --restart. 보고서는 동작하지 않은 것과 모든 것을 되돌려 놓는 명령으로 끝납니다.
  8. +
+

네 가지 모두 창에서도 같은 방식으로 동작합니다. 행을 오른쪽 클릭하고 Force stop...을 선택해 계획을 읽으면, 그 아래 버튼에는 그것이 할 일의 이름이 붙어 있습니다.

+
+
+ +
+
+

왜 그냥 작업 관리자를 쓰지 않는가

+

다른 질문에 답하기 때문입니다. 작업 관리자는 프로세스를 알고 이 문제는 서비스에 대한 것이며, 둘은 일대일로 대응하지 않습니다.

+

공유 svchost.exe 하나에 서비스가 열 몇 개 들어 있을 수 있습니다. 작업 관리자는 그 열두 개가 무엇인지 말하지 않고 종료하고, 그중 어느 것도 스스로 돌아오지 않으며, 나중에 무엇이 멈췄는지 알려 주는 것이 없습니다. svchost.exe를 종료하는 프로세스를 표시하는 EDR은 제 할 일을 하는 것이며, 사용자의 클릭을 다른 어떤 것과도 구별할 수 없습니다.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/nl.html b/site/pages/stop-a-service-that-will-not-stop/nl.html new file mode 100644 index 0000000..3445ea4 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/nl.html @@ -0,0 +1,68 @@ + + + + + +
+
+ Gids +

Een service die op Stopping... vastzit

+

De snap-in toont Stopping en beweegt nooit meer. Het gebruikelijke antwoord is Taakbeheer, een gok in welke svchost.exe hij leeft, en Taak beëindigen - wat ook elke andere service in dat proces beëindigt, zonder u te zeggen welke dat waren.

+
+
+ +
+
+

Waarom het gebeurt

+ +
+
+ +
+
+

Kijk voordat u iets beëindigt

+

Vraag wat het beëindigen ervan zou meenemen. Er gebeurt niets totdat u --dry-run weglaat.

+
$ bws kill Spooler --dry-run
+

De voorvertoning noemt het proces bij nummer, noemt elke andere service die erin leeft, en toont twee stappen in plaats van één: vraag de service te stoppen, en beëindig het proces alleen als dat niet werkt. Een service die uit zichzelf stopt wordt nooit beëindigd.

+
+
    +
  • --force slaat de beleefde stap over en beëindigt het proces meteen. Het verandert het plan en niet de uitvoering ervan, dus de voorvertoning toont één stap in plaats van twee en het verschil is zichtbaar voordat er iets gebeurt.
  • +
  • --restart brengt alles terug zodra het proces weg is - het item waarnaar u vroeg en alles wat zijn proces deelde. Zonder die optie blijft de machine achter met die services gestopt, en het rapport zegt hoe u ze weer start.
  • +
+
    +
  • De weigering komt vóór de knop. Een stuurprogramma, een proces dat het systeem beschermt, een service waarvoor de beheerder geen stop accepteert - geweigerd bij het bouwen van het plan, met de reden, en niet na een wachttijd van zestig seconden.
  • +
  • Een waarschuwing wanneer het ertoe doet. Als het item er een is waar de machine niet zonder kan, zegt het plan dat - stoppen haalt de machine neer, niet alleen de service.
  • +
+
+

Een proces beëindigen is het enige wat dit hulpmiddel doet waarvoor niemand namens de machine kan weigeren. Daarom is het een opdracht op zich, daarom noemt de voorvertoning elke service die het meeneemt, en daarom komt de beleefde stap eerst, tenzij u anders zegt.

+
+
+ +
+
+

De veiligere volgorde

+
    +
  1. Kijk wat het is. bws show Spooler - het proces, wat ervan afhangt, wat het zelf nodig heeft, en of het überhaupt stopverzoeken accepteert.
  2. +
  3. Probeer de gewone stop, als plan. bws stop Spooler --dry-run --dependents. Als het antwoord een weigering is, zegt het welke van de drie redenen het is.
  4. +
  5. Als hij niet wil stoppen, kijk wat het beëindigen kost. bws kill Spooler --dry-run, en lees de lijst met services die dat proces delen.
  6. +
  7. Doe het dan, met een weg terug. bws kill Spooler --restart. Het rapport eindigt met wat niet werkte en de opdrachten die alles terugzetten.
  8. +
+

Alle vier werken op dezelfde manier in het venster: klik met rechts op een rij, kies Force stop..., lees het plan, en de knop eronder is genoemd naar wat hij gaat doen.

+
+
+ +
+
+

Waarom niet gewoon Taakbeheer

+

Omdat het een andere vraag beantwoordt. Taakbeheer kent processen en dit probleem gaat over services, en die komen niet één op één overeen.

+

Een gedeelde svchost.exe kan een dozijn services bevatten. Taakbeheer beëindigt hem zonder te zeggen welke twaalf, geen enkele komt uit zichzelf terug, en niets achteraf zegt u wat er is gestopt. Een EDR die een proces markeert dat svchost.exe beëindigt, doet zijn werk, en kan uw klik niet van iets anders onderscheiden.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/page.json b/site/pages/stop-a-service-that-will-not-stop/page.json index 4f399a0..03516f0 100644 --- a/site/pages/stop-a-service-that-will-not-stop/page.json +++ b/site/pages/stop-a-service-that-will-not-stop/page.json @@ -11,6 +11,12 @@ "fr": "service-windows-impossible-a-arreter", "es": "servicio-de-windows-que-no-se-detiene", "it": "servizio-windows-che-non-si-ferma", - "pt-br": "servico-do-windows-que-nao-para" + "pt-br": "servico-do-windows-que-nao-para", + "nl": "windows-service-die-niet-stopt", + "cs": "sluzba-windows-ktera-se-nezastavi", + "ro": "serviciu-windows-care-nu-se-opreste", + "tr": "durmayan-windows-hizmeti", + "id": "layanan-windows-yang-tidak-mau-berhenti", + "vi": "dich-vu-windows-khong-chiu-dung" } } diff --git a/site/pages/stop-a-service-that-will-not-stop/ro.html b/site/pages/stop-a-service-that-will-not-stop/ro.html new file mode 100644 index 0000000..249fd16 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/ro.html @@ -0,0 +1,68 @@ + + + + + +
+
+ Ghid +

Un serviciu blocat pe Stopping...

+

Snap-in-ul arată Stopping și nu se mișcă niciodată. Răspunsul obișnuit este Task Manager, o presupunere în ce svchost.exe trăiește și End task - ceea ce încheie și fiecare alt serviciu din acel proces, fără să vă spună care au fost.

+
+
+ +
+
+

De ce se întâmplă

+ +
+
+ +
+
+

Priviți înainte să încheiați ceva

+

Întrebați ce ar lua cu sine încheierea lui. Nu se întâmplă nimic până nu renunțați la --dry-run.

+
$ bws kill Spooler --dry-run
+

Previzualizarea numește procesul prin număr, numește fiecare alt serviciu care trăiește în el și arată doi pași în loc de unul: cere serviciului să se oprească și, doar dacă asta nu funcționează, încheie procesul. Un serviciu care se oprește singur nu este niciodată încheiat.

+
+
    +
  • --force sare peste pasul politicos și încheie procesul imediat. Schimbă planul și nu modul de rulare, deci previzualizarea arată un pas în loc de doi, iar diferența este vizibilă înainte să se întâmple ceva.
  • +
  • --restart readuce totul după ce procesul a dispărut - intrarea despre care ați întrebat și tot ce îi împărțea procesul. Fără el, mașina rămâne cu acele servicii oprite, iar raportul spune cum să le porniți din nou.
  • +
+
    +
  • Refuzul vine înaintea butonului. Un driver, un proces pe care sistemul îl protejează, un serviciu pentru care managerul nu acceptă o oprire - refuzat la construirea planului, cu motivul, și nu după o așteptare de șaizeci de secunde.
  • +
  • Un avertisment când contează. Dacă intrarea este una fără de care mașina nu funcționează, planul spune asta - oprirea doboară mașina, nu doar serviciul.
  • +
+
+

Încheierea unui proces este singurul lucru pe care îl face acest instrument și pe care nimeni nu-l poate refuza în numele mașinii. De aceea este o comandă proprie, de aceea previzualizarea numește fiecare serviciu pe care îl ia cu sine și de aceea pasul politicos vine primul, dacă nu spuneți altfel.

+
+
+ +
+
+

Ordinea mai sigură

+
    +
  1. Vedeți ce este. bws show Spooler - procesul, ce depinde de el, de ce depinde el și dacă acceptă deloc cereri de oprire.
  2. +
  3. Încercați oprirea obișnuită, ca plan. bws stop Spooler --dry-run --dependents. Dacă răspunsul este un refuz, spune care dintre cele trei motive este.
  4. +
  5. Dacă nu se oprește, priviți cât costă încheierea lui. bws kill Spooler --dry-run și citiți lista serviciilor care împart acel proces.
  6. +
  7. Apoi faceți-o, cu o cale de întoarcere. bws kill Spooler --restart. Raportul se încheie cu ce n-a mers și cu comenzile care pun lucrurile la loc.
  8. +
+

Toate patru funcționează la fel în fereastră: clic dreapta pe un rând, alegeți Force stop..., citiți planul, iar butonul de sub el poartă numele a ceea ce va face.

+
+
+ +
+
+

De ce nu doar Task Manager

+

Pentru că răspunde la o altă întrebare. Task Manager cunoaște procesele, iar această problemă este despre servicii, iar cele două nu se aliniază unul la unul.

+

Un svchost.exe partajat poate conține o duzină de servicii. Task Manager îl va încheia fără să spună care douăsprezece, niciunul nu revine singur și nimic după aceea nu vă spune ce s-a oprit. Un EDR care semnalează un proces ce încheie svchost.exe își face treaba și nu poate deosebi clicul dumneavoastră de orice altceva.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/ru.html b/site/pages/stop-a-service-that-will-not-stop/ru.html new file mode 100644 index 0000000..9af5db5 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/ru.html @@ -0,0 +1,68 @@ + + + + + +
+
+ Руководство +

Служба, застрявшая на Stopping...

+

Оснастка показывает Stopping и не двигается. Обычный ответ - Диспетчер задач, догадка, в каком svchost.exe она живёт, и «Снять задачу», что завершает и каждую другую службу в этом процессе, не говоря вам, какие это были.

+
+
+ +
+
+

Почему так происходит

+ +
+
+ +
+
+

Посмотрите, прежде чем что-либо завершать

+

Спросите, что унесло бы с собой завершение. Ничего не произойдёт, пока вы не уберёте --dry-run.

+
$ bws kill Spooler --dry-run
+

Предпросмотр называет процесс по номеру, называет каждую другую службу, живущую в нём, и показывает два шага вместо одного: попросить службу остановиться и, только если это не сработало, завершить процесс. Служба, которая останавливается сама, не завершается принудительно никогда.

+
+
    +
  • --force пропускает вежливый шаг и сразу завершает процесс. Он меняет план, а не его выполнение, поэтому предпросмотр показывает один шаг вместо двух, и разница видна до того, как что-либо произойдёт.
  • +
  • --restart возвращает всё обратно, когда процесса уже нет, - запись, о которой вы спрашивали, и всё, что делило её процесс. Без него машина остаётся с этими службами остановленными, а отчёт говорит, как запустить их снова.
  • +
+
    +
  • Отказ приходит раньше кнопки. Драйвер, процесс, который защищает система, служба, остановку которой диспетчер не принимает - отказ при построении плана, с причиной, а не после шестидесяти секунд ожидания.
  • +
  • Предупреждение, когда это важно. Если запись такая, без которой машина не работает, план говорит об этом: остановка обрушивает машину, а не только службу.
  • +
+
+

Завершение процесса - единственное, что делает этот инструмент и от чего никто не может отказаться за машину. Поэтому это отдельная команда, поэтому предпросмотр называет каждую службу, которую он уносит с собой, и поэтому вежливый шаг идёт первым, пока вы не скажете иначе.

+
+
+ +
+
+

Более безопасный порядок

+
    +
  1. Посмотрите, что это. bws show Spooler - процесс, что от неё зависит, от чего зависит она сама и принимает ли она запросы остановки вообще.
  2. +
  3. Попробуйте обычную остановку как план. bws stop Spooler --dry-run --dependents. Если ответ - отказ, он говорит, какая из трёх причин.
  4. +
  5. Если она не останавливается, посмотрите, чего стоит её завершение. bws kill Spooler --dry-run и прочитайте список служб, делящих этот процесс.
  6. +
  7. Затем сделайте это, с дорогой назад. bws kill Spooler --restart. Отчёт заканчивается тем, что не сработало, и командами, возвращающими всё на место.
  8. +
+

Все четыре работают так же в окне: щёлкните строку правой кнопкой, выберите Force stop..., прочитайте план, а кнопка под ним названа по тому, что она сделает.

+
+
+ +
+
+

Почему не просто Диспетчер задач

+

Потому что он отвечает на другой вопрос. Диспетчер задач знает о процессах, а эта проблема - о службах, и они не соответствуют друг другу один к одному.

+

Общий svchost.exe может содержать десяток служб. Диспетчер задач завершит его, не сказав, какие это двенадцать, ни одна не вернётся сама, и ничто потом не скажет вам, что остановилось. EDR, который отмечает процесс, завершающий svchost.exe, делает свою работу, и он не может отличить ваш щелчок от чего-либо другого.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/tr.html b/site/pages/stop-a-service-that-will-not-stop/tr.html new file mode 100644 index 0000000..9ce3154 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/tr.html @@ -0,0 +1,68 @@ + + + + + +
+
+ Kılavuz +

Stopping... üzerinde takılan bir hizmet

+

Ek bileşen Stopping gösterir ve hiç kıpırdamaz. Olağan yanıt Görev Yöneticisi, hizmetin hangi svchost.exe içinde yaşadığına dair bir tahmin ve Görevi sonlandır'dır - bu da o süreçteki diğer her hizmeti de sonlandırır ve hangilerinin olduğunu size söylemez.

+
+
+ +
+
+

Neden olur

+ +
+
+ +
+
+

Bir şeyi sonlandırmadan önce bakın

+

Onu sonlandırmanın beraberinde neleri götüreceğini sorun. --dry-run'ı bırakana kadar hiçbir şey olmaz.

+
$ bws kill Spooler --dry-run
+

Önizleme süreci numarasıyla adlandırır, içinde yaşayan diğer her hizmeti adlandırır ve bir yerine iki adım gösterir: hizmetten durmasını isteyin ve yalnızca bu işe yaramazsa süreci sonlandırın. Kendiliğinden duran bir hizmet asla sonlandırılmaz.

+
+
    +
  • --force kibar adımı atlar ve süreci hemen sonlandırır. Planı değiştirir, çalışmasını değil; bu yüzden önizleme iki yerine bir adım gösterir ve fark, bir şey olmadan önce görünür.
  • +
  • --restart her şeyi geri getirir, süreç gittikten sonra - sorduğunuz öğeyi ve sürecini paylaşan her şeyi. Onsuz makine, o hizmetler durmuş halde kalır ve rapor onları nasıl yeniden başlatacağınızı söyler.
  • +
+
    +
  • Ret, düğmeden önce gelir. Bir sürücü, sistemin koruduğu bir süreç, yöneticinin durdurmayı kabul etmediği bir hizmet - altmış saniyelik bir beklemeden sonra değil, plan kurulurken, gerekçesiyle birlikte reddedilir.
  • +
  • Önemli olduğunda bir uyarı. Öğe, makinenin onsuz çalışmadığı biriyse plan bunu söyler - durdurmak yalnızca hizmeti değil, makineyi indirir.
  • +
+
+

Bir süreci sonlandırmak, bu aracın yaptığı ve kimsenin makine adına reddedemeyeceği tek şeydir. Bu yüzden kendi başına bir komuttur, bu yüzden önizleme beraberinde götürdüğü her hizmeti adlandırır ve bu yüzden, siz aksini söylemedikçe kibar adım önce gelir.

+
+
+ +
+
+

Daha güvenli sıra

+
    +
  1. Ne olduğuna bakın. bws show Spooler - süreç, ona bağlı olanlar, onun neye bağlı olduğu ve durdurma isteklerini hiç kabul edip etmediği.
  2. +
  3. Olağan durdurmayı plan olarak deneyin. bws stop Spooler --dry-run --dependents. Yanıt bir retse, üç nedenden hangisi olduğunu söyler.
  4. +
  5. Durmuyorsa, sonlandırmanın neye mal olduğuna bakın. bws kill Spooler --dry-run ve o süreci paylaşan hizmetlerin listesini okuyun.
  6. +
  7. Sonra bir geri dönüş yoluyla yapın. bws kill Spooler --restart. Rapor, neyin çalışmadığı ve işleri geri koyan komutlarla biter.
  8. +
+

Dördü de pencerede aynı şekilde çalışır: bir satıra sağ tıklayın, Force stop... seçin, planı okuyun; altındaki düğme yapacağı şeyin adını taşır.

+
+
+ +
+
+

Neden sadece Görev Yöneticisi değil

+

Çünkü farklı bir soruyu yanıtlar. Görev Yöneticisi süreçleri bilir ve bu sorun hizmetlerle ilgilidir; ikisi bire bir örtüşmez.

+

Ortak bir svchost.exe bir düzine hizmet barındırabilir. Görev Yöneticisi onu hangi on ikisi olduğunu söylemeden sonlandırır, hiçbiri kendiliğinden geri gelmez ve sonrasında hiçbir şey size neyin durduğunu söylemez. svchost.exe'yi sonlandıran bir süreci işaretleyen bir EDR işini yapıyordur ve sizin tıklamanızı başka herhangi bir şeyinkinden ayıramaz.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/uk.html b/site/pages/stop-a-service-that-will-not-stop/uk.html new file mode 100644 index 0000000..3f43ceb --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/uk.html @@ -0,0 +1,68 @@ + + + + + +
+
+ Посібник +

Служба, що застрягла на Stopping...

+

Оснастка показує Stopping і не рухається. Звична відповідь - Диспетчер завдань, здогад, у якому svchost.exe вона живе, і «Завершити завдання», що завершує й кожну іншу службу в цьому процесі, не кажучи вам, які саме.

+
+
+ +
+
+

Чому так буває

+ +
+
+ +
+
+

Подивіться, перш ніж щось завершувати

+

Спитайте, що забере з собою завершення. Нічого не станеться, доки ви не приберете --dry-run.

+
$ bws kill Spooler --dry-run
+

Попередній перегляд називає процес за номером, називає кожну іншу службу, що живе в ньому, і показує два кроки, а не один: попросити службу зупинитися і, лише якщо це не спрацювало, завершити процес. Служба, що зупиняється сама, ніколи не завершується примусово.

+
+
    +
  • --force пропускає чемний крок і завершує процес одразу. Він змінює план, а не його виконання, тож попередній перегляд показує один крок замість двох, і різницю видно до того, як щось станеться.
  • +
  • --restart повертає все назад, коли процесу вже немає, - запис, про який ви питали, і все, що ділило з ним процес. Без нього машина лишається з цими зупиненими службами, а звіт каже, як їх запустити знову.
  • +
+
    +
  • Відмова приходить раніше за кнопку. Драйвер, процес, який система захищає, служба, зупинку якої диспетчер не приймає, - відмова під час побудови плану, з причиною, а не після шістдесяти секунд очікування.
  • +
  • Попередження, коли це важливо. Якщо запис належить до тих, без яких машина не працює, план про це каже: його зупинка зупиняє машину, а не лише службу.
  • +
+
+

Завершення процесу - єдине, що робить цей інструмент і від чого ніхто не може відмовити за машину. Саме тому це окрема команда, саме тому попередній перегляд називає кожну службу, яку вона забирає з собою, і саме тому чемний крок іде першим, якщо ви не скажете іншого.

+
+
+ +
+
+

Безпечніший порядок

+
    +
  1. Подивіться, що це таке. bws show Spooler - процес, що від неї залежить, від чого залежить вона і чи приймає вона запити зупинки взагалі.
  2. +
  3. Спробуйте звичайну зупинку, як план. bws stop Spooler --dry-run --dependents. Якщо відповідь - відмова, вона каже, яка саме з трьох причин.
  4. +
  5. Якщо вона не зупиняється, подивіться, чого коштує її завершення. bws kill Spooler --dry-run і прочитайте список служб, що ділять цей процес.
  6. +
  7. Тоді зробіть це, зі шляхом назад. bws kill Spooler --restart. Звіт закінчується тим, що не спрацювало, і командами, які повертають усе на місце.
  8. +
+

Усі чотири працюють так само у вікні: клацніть рядок правою кнопкою, виберіть Force stop..., прочитайте план, а кнопка під ним названа за тим, що вона зробить.

+
+
+ +
+
+

Чому б просто не скористатися Диспетчером завдань

+

Бо він відповідає на інше запитання. Диспетчер завдань знає про процеси, а ця проблема про служби, і вони не збігаються один до одного.

+

Спільний svchost.exe може тримати десяток служб. Диспетчер завдань завершить його, не сказавши, які саме дванадцять, жодна з них не повернеться сама, і ніщо потім не скаже вам, що зупинилося. EDR, який позначає процес, що завершує svchost.exe, робить свою роботу, і він не відрізнить ваше клацання від чогось іншого.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/vi.html b/site/pages/stop-a-service-that-will-not-stop/vi.html new file mode 100644 index 0000000..3a28504 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/vi.html @@ -0,0 +1,68 @@ + + + + + +
+
+ Hướng dẫn +

Một dịch vụ kẹt ở Stopping...

+

Snap-in hiển thị Stopping và không bao giờ nhúc nhích. Câu trả lời thường thấy là Task Manager, đoán xem nó sống trong svchost.exe nào, và End task - việc này cũng kết thúc mọi dịch vụ khác trong tiến trình đó, mà không cho bạn biết đó là những dịch vụ nào.

+
+
+ +
+
+

Vì sao điều này xảy ra

+ +
+
+ +
+
+

Hãy xem trước khi kết thúc bất cứ thứ gì

+

Hỏi xem việc kết thúc nó sẽ kéo theo những gì. Không có gì xảy ra cho đến khi bạn bỏ --dry-run.

+
$ bws kill Spooler --dry-run
+

Bản xem trước nêu tiến trình bằng số, nêu mọi dịch vụ khác sống trong đó, và hiển thị hai bước thay vì một: yêu cầu dịch vụ dừng, và chỉ khi điều đó không có tác dụng, kết thúc tiến trình. Một dịch vụ tự dừng thì không bao giờ bị kết thúc.

+
+
    +
  • --force bỏ qua bước lịch sự và kết thúc tiến trình ngay. Nó thay đổi kế hoạch chứ không phải cách chạy, nên bản xem trước hiển thị một bước thay vì hai và sự khác biệt thấy được trước khi có gì xảy ra.
  • +
  • --restart đưa mọi thứ trở lại sau khi tiến trình đã mất - mục bạn hỏi và mọi thứ đã dùng chung tiến trình của nó. Không có nó, máy bị để lại với các dịch vụ đó đã dừng, và báo cáo nói cách khởi động chúng lại.
  • +
+
    +
  • Lời từ chối đến trước nút bấm. Một trình điều khiển, một tiến trình mà hệ thống bảo vệ, một dịch vụ mà trình quản lý không chấp nhận lệnh dừng - bị từ chối khi kế hoạch được dựng, kèm lý do, chứ không phải sau sáu mươi giây chờ.
  • +
  • Một cảnh báo khi điều đó quan trọng. Nếu mục là thứ mà máy không hoạt động nếu thiếu, kế hoạch nói điều đó - dừng nó hạ cả máy, không chỉ dịch vụ.
  • +
+
+

Kết thúc một tiến trình là điều duy nhất công cụ này làm mà không ai có thể từ chối thay mặt máy. Đó là lý do nó là một lệnh riêng, lý do bản xem trước nêu tên mọi dịch vụ nó kéo theo, và lý do bước lịch sự đến trước trừ khi bạn nói khác.

+
+
+ +
+
+

Thứ tự an toàn hơn

+
    +
  1. Xem nó là gì. bws show Spooler - tiến trình, những gì phụ thuộc vào nó, nó phụ thuộc vào gì, và liệu nó có nhận yêu cầu dừng hay không.
  2. +
  3. Thử lệnh dừng thông thường, dưới dạng kế hoạch. bws stop Spooler --dry-run --dependents. Nếu câu trả lời là một lời từ chối, nó nói đó là lý do nào trong ba lý do.
  4. +
  5. Nếu nó không chịu dừng, xem việc kết thúc nó tốn gì. bws kill Spooler --dry-run, và đọc danh sách các dịch vụ dùng chung tiến trình đó.
  6. +
  7. Rồi làm, với một đường quay lại. bws kill Spooler --restart. Báo cáo kết thúc bằng những gì không hiệu quả và các lệnh đưa mọi thứ về chỗ cũ.
  8. +
+

Cả bốn hoạt động giống nhau trong cửa sổ: nhấp chuột phải vào một hàng, chọn Force stop..., đọc kế hoạch, và nút bên dưới được đặt tên theo điều nó sẽ làm.

+
+
+ +
+
+

Vì sao không dùng Task Manager

+

Vì nó trả lời một câu hỏi khác. Task Manager biết về tiến trình còn vấn đề này là về dịch vụ, và hai thứ đó không khớp một-một.

+

Một svchost.exe dùng chung có thể chứa cả chục dịch vụ. Task Manager sẽ kết thúc nó mà không nói mười hai cái nào, không cái nào tự quay lại, và không có gì sau đó cho bạn biết điều gì đã dừng. Một EDR đánh dấu tiến trình kết thúc svchost.exe đang làm đúng việc của nó, và nó không thể phân biệt cú nhấp của bạn với bất cứ thứ gì khác.

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/zh-hans.html b/site/pages/stop-a-service-that-will-not-stop/zh-hans.html new file mode 100644 index 0000000..1fc71a0 --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/zh-hans.html @@ -0,0 +1,68 @@ + + + + + +
+
+ 指南 +

卡在 Stopping... 的服务

+

管理单元显示 Stopping 后就一动不动。通常的办法是打开任务管理器,猜它位于哪个 svchost.exe 中,然后点“结束任务”,而这会把该进程中的所有其他服务也一并结束,却不告诉你它们是哪些。

+
+
+ +
+
+

为什么会这样

+ +
+
+ +
+
+

结束任何东西之前先看看

+

询问结束它会带走什么。在你去掉 --dry-run 之前什么也不会发生。

+
$ bws kill Spooler --dry-run
+

预览按编号指出该进程,点出其中的每个其他服务,并显示两个步骤而不是一个:请求服务停止,只有在无效时才结束进程。自己能停止的服务绝不会被强行结束。

+
+
    +
  • --force 跳过礼貌的那一步,直接结束进程。它改变的是计划而不是执行,所以预览显示一个步骤而不是两个,这种差异在任何操作发生之前就能看到。
  • +
  • --restart 在进程消失后把一切带回来:你询问的那个条目,以及与它共用进程的所有内容。没有它,计算机就会留下这些已停止的服务,报告会说明如何再次启动它们。
  • +
+
    +
  • 拒绝出现在按钮之前。驱动程序、系统保护的进程、服务管理器不接受停止请求的服务,都会在生成计划时连同原因一起被拒绝,而不是在等待六十秒之后。
  • +
  • 重要时会发出警告。如果该条目是计算机离不开的,计划会这样说明:停止它会让整台计算机宕机,而不只是这个服务。
  • +
+
+

结束进程是这个工具所做的唯一一件没人能替计算机拒绝的事。这就是它是一个独立命令的原因,也是预览会点出它带走的每个服务的原因,还是除非你另行指定,否则礼貌的那一步总是排在第一位的原因。

+
+
+ +
+
+

更稳妥的顺序

+
    +
  1. 先看它是什么。bws show Spooler:进程、依赖它的内容、它所依赖的内容,以及它到底是否接受停止请求。
  2. +
  3. 把普通停止当作计划来尝试。bws stop Spooler --dry-run --dependents。如果答案是拒绝,它会说明是三种原因中的哪一种。
  4. +
  5. 如果它停不下来,看看结束它的代价。bws kill Spooler --dry-run,并阅读共用该进程的服务列表。
  6. +
  7. 然后动手,并留好退路。bws kill Spooler --restart。报告以没有成功的内容和把一切恢复原状的命令结尾。
  8. +
+

这四步在窗口中的工作方式相同:右键单击一行,选择 Force stop...,阅读计划,其下方的按钮会以它将要执行的操作命名。

+
+
+ +
+
+

为什么不直接用任务管理器

+

因为它回答的是另一个问题。任务管理器了解进程,而这个问题与服务有关,二者并不一一对应。

+

一个共享的 svchost.exe 可以容纳十几个服务。任务管理器会结束它,却不说是哪十二个,其中没有一个会自行回来,事后也没有任何东西告诉你停掉了什么。如果某个 EDR 把结束 svchost.exe 的进程标记出来,那它是在履行职责,而它无法把你的点击与其他任何东西区分开。

+ +
+
diff --git a/site/pages/stop-a-service-that-will-not-stop/zh-hant.html b/site/pages/stop-a-service-that-will-not-stop/zh-hant.html new file mode 100644 index 0000000..2c1853c --- /dev/null +++ b/site/pages/stop-a-service-that-will-not-stop/zh-hant.html @@ -0,0 +1,68 @@ + + + + + +
+
+ 指南 +

卡在 Stopping... 的服務

+

管理單元顯示 Stopping 後就一動不動。通常的辦法是開啟工作管理員,猜它位於哪個 svchost.exe 中,然後按「結束工作」,而這會把該處理程序中的所有其他服務也一併結束,卻不告訴你它們是哪些。

+
+
+ +
+
+

為什麼會這樣

+ +
+
+ +
+
+

結束任何東西之前先看看

+

詢問結束它會帶走什麼。在你去掉 --dry-run 之前什麼也不會發生。

+
$ bws kill Spooler --dry-run
+

預覽依編號指出該處理程序,點出其中的每個其他服務,並顯示兩個步驟而不是一個:要求服務停止,只有在無效時才結束處理程序。自己能停止的服務絕不會被強行結束。

+
+
    +
  • --force 跳過禮貌的那一步,直接結束處理程序。它改變的是計畫而不是執行,所以預覽顯示一個步驟而不是兩個,這種差異在任何動作發生之前就能看到。
  • +
  • --restart 在處理程序消失後把一切帶回來:你詢問的那個項目,以及與它共用處理程序的所有內容。沒有它,電腦就會留下這些已停止的服務,報告會說明如何再次啟動它們。
  • +
+
    +
  • 拒絕出現在按鈕之前。驅動程式、系統保護的處理程序、服務管理員不接受停止要求的服務,都會在產生計畫時連同原因一起被拒絕,而不是在等待六十秒之後。
  • +
  • 重要時會發出警告。如果該項目是電腦離不開的,計畫會這樣說明:停止它會讓整台電腦當機,而不只是這個服務。
  • +
+
+

結束處理程序是這個工具所做的唯一一件沒人能替電腦拒絕的事。這就是它是一個獨立命令的原因,也是預覽會點出它帶走的每個服務的原因,還是除非你另行指定,否則禮貌的那一步總是排在第一位的原因。

+
+
+ +
+
+

更穩妥的順序

+
    +
  1. 先看它是什麼。bws show Spooler:處理程序、依賴它的內容、它所依賴的內容,以及它到底是否接受停止要求。
  2. +
  3. 把普通停止當作計畫來嘗試。bws stop Spooler --dry-run --dependents。如果答案是拒絕,它會說明是三種原因中的哪一種。
  4. +
  5. 如果它停不下來,看看結束它的代價。bws kill Spooler --dry-run,並閱讀共用該處理程序的服務清單。
  6. +
  7. 然後動手,並留好退路。bws kill Spooler --restart。報告以沒有成功的內容和把一切復原的命令結尾。
  8. +
+

這四步在視窗中的運作方式相同:在一列上按一下滑鼠右鍵,選擇 Force stop...,閱讀計畫,其下方的按鈕會以它將要執行的動作命名。

+
+
+ +
+
+

為什麼不直接用工作管理員

+

因為它回答的是另一個問題。工作管理員了解處理程序,而這個問題與服務有關,二者並不一一對應。

+

一個共用的 svchost.exe 可以容納十幾個服務。工作管理員會結束它,卻不說是哪十二個,其中沒有一個會自行回來,事後也沒有任何東西告訴你停掉了什麼。如果某個 EDR 把結束 svchost.exe 的處理程序標記出來,那它是在履行職責,而它無法把你的按一下與其他任何東西區分開。

+ +
+
diff --git a/site/pages/what-should-be-running/cs.html b/site/pages/what-should-be-running/cs.html new file mode 100644 index 0000000..9db47b0 --- /dev/null +++ b/site/pages/what-should-be-running/cs.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Průvodce +

Které služby mají běžet?

+

Poctivá odpověď je, že vám to nikdo říct nemůže a každý seznam, který to tvrdí, popisuje stroj, který není váš. Odpovědět lze na užší a mnohem užitečnější otázku: co na tomto stroji nesedí a co je jinak než ve chvíli, kdy to fungovalo.

+
+
+ +
+
+

Proč obecná otázka nemá odpověď

+ +
+
+ +
+
+

Otázky, které odpovědi mají

+
+
+

Co by mělo běžet a neběží

+

start:auto !status:running

+

Windows byl požádán, aby tyto spustil, a nebězí. Na zdravém stroji je to krátký seznam - pár položek, které startují pozdě a zase se zastaví. Cokoli jiného stojí za pohled.

+
+
+

Co je zakázáno a přesto běží

+

mismatch:running

+

Konfigurace a stav si odporují. Obvykle to někdo zakázal, aniž by zastavil, a příští restart bude překvapení.

+
+
+

Co ukazuje na soubor, který je pryč

+

file:missing

+

Odinstalace, která po sobě nechala registraci. Neškodné, dokud se to něco nepokusí spustit, a stopa k tomu, co na tomto stroji dřív bylo.

+
+
+

Co nikdo nepodepsal

+

signed:no peruser:no

+

Samo o sobě to nic nedokazuje a je to správné místo, kde začít číst. Druhý termín vynechá rodiny pro jednotlivé uživatele, které by jinak plnily seznam téměř duplikáty.

+
+
+

Co žádá o nejsilnější privilegia

+

privilege:SeDebugPrivilege

+

Privilegium, které procesu umožňuje otevřít jakýkoli jiný. Hrstka legitimních služeb o něj žádá a stojí za to vědět, které to na vašem stroji jsou.

+
+
+

Co čeká na trigger

+

trigger:any status:stopped

+

Zastaveno, protože o to dosud nic nepožádalo, a ne proto, že je něco špatně. Vědět, které to jsou, je způsob, jak první seznam přestane budit poplach.

+
+
+
+
+ +
+
+

Ta, která překoná všechny

+

Zeptejte se samotného stroje, když fungoval.

+

Pořiďte snímek v den, kdy stroj jde do provozu. Pak se otázka má tohle běžet změní na otázku běželo tohle, když všechno fungovalo - na otázku o vašem stroji, ne o stroji z nějakého článku.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... o týden, o záplatu nebo o incident později
+bws snapshot diff C:\baselines\web01.json --live
+

Konfigurace se hlásí odděleně od stavu běhu, takže odpovědí není čtyřicet služeb, které náhodou běží - je to typ spouštění, který někdo změnil.

+ Audit stroje na drift +
+
+ +
+
+

Než cokoli zastavíte

+

Každé zastavení v tomto nástroji nejdřív ukáže svůj plán: kroky, co s nimi spadne, a varování, když je některá z nich věc, bez které stroj nefunguje. Seznam takových je výchozí seznam sedmi - obě poloviny RPC a spouštěč DCOM, správce účtů, izolace klíčů, správce relací a Plug and Play - a Vzdálená plocha na něm není, takže při vzdálené relaci plán čtěte.

+ +
+
diff --git a/site/pages/what-should-be-running/id.html b/site/pages/what-should-be-running/id.html new file mode 100644 index 0000000..8e31612 --- /dev/null +++ b/site/pages/what-should-be-running/id.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Panduan +

Layanan apa yang seharusnya berjalan?

+

Jawaban jujurnya adalah tidak ada yang bisa memberi tahu Anda, dan setiap daftar yang mengklaimnya sedang menggambarkan mesin yang bukan milik Anda. Yang bisa dijawab lebih sempit dan jauh lebih berguna: apa yang tidak cocok di mesin ini, dan apa yang berbeda dari saat semuanya berfungsi.

+
+
+ +
+
+

Mengapa pertanyaan umum tidak punya jawaban

+ +
+
+ +
+
+

Pertanyaan yang punya jawaban

+
+
+

Apa yang seharusnya hidup dan tidak hidup

+

start:auto !status:running

+

Windows diminta memulai ini dan mereka tidak berjalan. Pada mesin yang sehat ini adalah daftar pendek - beberapa entri yang mulai terlambat dan berhenti lagi. Apa pun selain itu layak dilihat.

+
+
+

Apa yang dinonaktifkan tetapi tetap berjalan

+

mismatch:running

+

Konfigurasi dan status tidak sesuai. Biasanya seseorang menonaktifkannya tanpa menghentikannya, dan restart berikutnya akan menjadi kejutan.

+
+
+

Apa yang menunjuk ke berkas yang hilang

+

file:missing

+

Pencopotan yang meninggalkan registrasinya. Tidak berbahaya sampai ada yang mencoba memulainya, dan petunjuk tentang apa yang dulu ada di mesin ini.

+
+
+

Apa yang tidak ditandatangani siapa pun

+

signed:no peruser:no

+

Bukan bukti apa pun dengan sendirinya, dan tempat yang tepat untuk mulai membaca. Istilah kedua membuang keluarga per pengguna, yang jika tidak akan memenuhi daftar dengan hampir-duplikat.

+
+
+

Apa yang meminta hak istimewa terkuat

+

privilege:SeDebugPrivilege

+

Hak istimewa yang memungkinkan sebuah proses membuka proses lain mana pun. Segelintir layanan yang sah memintanya, dan layak diketahui mana saja di mesin Anda.

+
+
+

Apa yang menunggu pemicu

+

trigger:any status:stopped

+

Berhenti karena belum ada yang memintanya, bukan karena ada yang salah. Mengetahui yang mana adalah cara agar daftar pertama berhenti terasa mengkhawatirkan.

+
+
+
+
+ +
+
+

Yang mengalahkan semuanya

+

Tanyakan kepada mesin itu sendiri, saat ia berfungsi.

+

Ambil snapshot pada hari mesin mulai beroperasi. Maka apakah ini seharusnya berjalan menjadi apakah ini berjalan ketika semuanya berfungsi - pertanyaan tentang mesin Anda, bukan tentang mesin dalam sebuah artikel.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... seminggu, sebuah patch, atau sebuah insiden kemudian
+bws snapshot diff C:\baselines\web01.json --live
+

Konfigurasi dilaporkan terpisah dari status berjalan, sehingga jawabannya bukan empat puluh layanan yang kebetulan hidup - melainkan tipe startup yang diubah seseorang.

+ Mengaudit mesin untuk penyimpangan +
+
+ +
+
+

Sebelum Anda menghentikan apa pun

+

Setiap penghentian di alat ini menampilkan rencananya terlebih dahulu: langkah-langkahnya, apa yang ikut jatuh bersamanya, dan peringatan ketika salah satunya adalah sesuatu yang tanpanya mesin tidak berfungsi. Daftar itu adalah daftar awal berisi tujuh - dua bagian RPC dan peluncur DCOM, manajer akun, isolasi kunci, manajer sesi, dan plug and play - dan Remote Desktop tidak ada di dalamnya, jadi pada sesi jarak jauh, bacalah rencananya.

+ +
+
diff --git a/site/pages/what-should-be-running/ja.html b/site/pages/what-should-be-running/ja.html new file mode 100644 index 0000000..f16bceb --- /dev/null +++ b/site/pages/what-should-be-running/ja.html @@ -0,0 +1,86 @@ + + + + + +
+
+ ガイド +

どのサービスが動いているべきか

+

正直な答えは、誰にもわかりません。そして、わかると主張する一覧は、あなたのものではないマシンについて書いています。答えられるのは、もっと狭く、はるかに役立つ質問です。このマシンで辻褄が合わないものは何か、動いていたときと何が違うか。

+
+
+ +
+
+

一般的な質問に答えがない理由

+ +
+
+ +
+
+

答えのある質問

+
+
+

起動しているはずなのに起動していないもの

+

start:auto !status:running

+

Windows はこれらを開始するように言われていますが、実行されていません。健全なマシンでは短い一覧で、遅れて起動してまた停止する数個のエントリです。それ以外は確認する価値があります。

+
+
+

無効なのに実行されているもの

+

mismatch:running

+

構成と状態が食い違っています。たいていは誰かが停止せずに無効にしたもので、次の再起動で驚くことになります。

+
+
+

なくなったファイルを指しているもの

+

file:missing

+

登録が残ったままアンインストールされたものです。何かが開始しようとするまでは無害で、このマシンに何があったかを示す手がかりでもあります。

+
+
+

誰も署名していないもの

+

signed:no peruser:no

+

それだけで何かの証明にはならず、読み始める場所としてはふさわしいものです。2 番目の用語は、ユーザーごとのファミリーを除外します。そうしないと、似たエントリで一覧が埋まります。

+
+
+

最も強い特権を要求するもの

+

privilege:SeDebugPrivilege

+

プロセスがほかのあらゆるプロセスを開けるようになる特権です。正当なサービスの少数がこれを要求しており、ご自身のマシンでどれがそうかを知っておく価値があります。

+
+
+

トリガーを待っているもの

+

trigger:any status:stopped

+

何かがおかしいからではなく、まだ誰も要求していないために停止しています。これらがどれかを知っておくと、最初の一覧に不安を覚えなくなります。

+
+
+
+
+ +
+
+

すべてに勝つ方法

+

マシン自身に、動いていたときのことを尋ねます。

+

マシンが稼働を開始する日にスナップショットを取ります。そうすれば、これは動いているべきかはすべてが動いていたとき、これは動いていたかになります。記事の中のマシンではなく、あなたのマシンについての質問です。

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... 1 週間、パッチ、またはインシデントのあと
+bws snapshot diff C:\baselines\web01.json --live
+

構成は実行状態とは分けて報告されるので、答えはたまたま動いている 40 個のサービスではなく、誰かが変更したスタートアップの種類になります。

+ ドリフトのためのマシン監査 +
+
+ +
+
+

何かを停止する前に

+

このツールのすべての停止は、まずプランを表示します。ステップ、一緒に停止するもの、そしてその 1 つがマシンの動作に不可欠なものである場合の警告です。そのようなものの一覧は 7 つの初期リストです。RPC の 2 つの半分と DCOM ランチャー、アカウント マネージャー、キー分離、セッション マネージャー、プラグ アンド プレイで、リモート デスクトップは含まれていません。そのため、リモートセッションではプランを読んでください。

+ +
+
diff --git a/site/pages/what-should-be-running/ko.html b/site/pages/what-should-be-running/ko.html new file mode 100644 index 0000000..f0d6547 --- /dev/null +++ b/site/pages/what-should-be-running/ko.html @@ -0,0 +1,86 @@ + + + + + +
+
+ 가이드 +

어떤 서비스가 실행되어야 하는가?

+

솔직한 답은 아무도 말해 줄 수 없다는 것이며, 말해 줄 수 있다고 주장하는 모든 목록은 당신의 것이 아닌 컴퓨터를 설명하고 있습니다. 답할 수 있는 것은 더 좁고 훨씬 유용한 질문입니다. 이 컴퓨터에서 앞뒤가 맞지 않는 것은 무엇이며, 잘 동작하던 때와 무엇이 다른가.

+
+
+ +
+
+

일반적인 질문에 답이 없는 이유

+ +
+
+ +
+
+

답이 있는 질문

+
+
+

떠 있어야 하는데 떠 있지 않은 것

+

start:auto !status:running

+

Windows는 이 서비스들을 시작하라는 지시를 받았지만 실행 중이 아닙니다. 건강한 컴퓨터에서는 짧은 목록입니다. 늦게 시작했다가 다시 멈추는 항목 몇 개입니다. 그 밖의 것은 살펴볼 가치가 있습니다.

+
+
+

사용 안 함인데 그래도 실행 중인 것

+

mismatch:running

+

구성과 상태가 어긋나 있습니다. 보통 누군가 중지하지 않고 사용 안 함으로 바꾼 것이며, 다음 재시작이 놀라움이 될 것입니다.

+
+
+

사라진 파일을 가리키는 것

+

file:missing

+

등록 정보를 남기고 제거된 경우입니다. 무언가 시작하려 하기 전에는 해롭지 않으며, 이 컴퓨터에 무엇이 있었는지에 대한 단서입니다.

+
+
+

아무도 서명하지 않은 것

+

signed:no peruser:no

+

그 자체로는 아무것도 증명하지 않으며, 읽기를 시작하기에 알맞은 곳입니다. 두 번째 검색어는 사용자별 계열을 제외하는데, 그렇지 않으면 목록이 거의 같은 항목으로 채워집니다.

+
+
+

가장 강한 권한을 요청하는 것

+

privilege:SeDebugPrivilege

+

프로세스가 다른 어떤 프로세스든 열 수 있게 해 주는 권한입니다. 합법적인 서비스 몇 개가 이것을 요청하며, 사용 중인 컴퓨터에서는 어느 것인지 알아 둘 가치가 있습니다.

+
+
+

트리거를 기다리는 것

+

trigger:any status:stopped

+

무언가 잘못되어서가 아니라 아직 아무도 요청하지 않았기 때문에 중지되어 있습니다. 이것들이 무엇인지 아는 것이 첫 번째 목록이 더 이상 불안하지 않게 되는 방법입니다.

+
+
+
+
+ +
+
+

모든 것을 이기는 방법

+

컴퓨터 자신에게, 잘 동작하던 때에 대해 물어보세요.

+

컴퓨터가 운영에 들어가는 날 스냅샷을 만드세요. 그러면 이것이 실행되어야 하는가는 모든 것이 동작하던 때 이것이 실행 중이었는가가 됩니다. 기사 속 컴퓨터가 아니라 당신의 컴퓨터에 대한 질문입니다.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... 일주일, 패치, 또는 사고 이후
+bws snapshot diff C:\baselines\web01.json --live
+

구성은 실행 상태와 따로 보고되므로, 답은 우연히 떠 있는 서비스 마흔 개가 아니라 누군가 바꾼 시작 유형입니다.

+ 드리프트에 대한 컴퓨터 감사 +
+
+ +
+
+

무엇이든 중지하기 전에

+

이 도구의 모든 중지는 먼저 계획을 보여 줍니다. 단계, 함께 내려가는 것, 그리고 그중 하나가 컴퓨터가 없이는 동작하지 않는 것일 때의 경고입니다. 그런 것의 목록은 일곱 개로 이루어진 시작용 목록입니다. RPC의 두 부분과 DCOM 실행기, 계정 관리자, 키 격리, 세션 관리자, 플러그 앤 플레이이며, 원격 데스크톱은 들어 있지 않으므로 원격 세션에서는 계획을 읽으세요.

+ +
+
diff --git a/site/pages/what-should-be-running/nl.html b/site/pages/what-should-be-running/nl.html new file mode 100644 index 0000000..eff68c2 --- /dev/null +++ b/site/pages/what-should-be-running/nl.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Gids +

Welke services horen te draaien?

+

Het eerlijke antwoord is dat niemand het u kan zeggen, en elke lijst die dat beweert beschrijft een machine die niet de uwe is. Wat wel kan worden beantwoord is smaller en veel nuttiger: wat klopt er niet op deze machine, en wat is er anders dan toen het werkte.

+
+
+ +
+
+

Waarom de algemene vraag geen antwoord heeft

+ +
+
+ +
+
+

De vragen die wel antwoorden hebben

+
+
+

Wat zou moeten draaien en niet draait

+

start:auto !status:running

+

Windows is verteld deze te starten en ze draaien niet. Op een gezonde machine is dit een korte lijst - een paar items die laat starten en weer stoppen. Al het andere is een blik waard.

+
+
+

Wat is uitgeschakeld en draait toch

+

mismatch:running

+

Configuratie en toestand zijn het oneens. Meestal heeft iemand het uitgeschakeld zonder te stoppen, en de volgende herstart wordt een verrassing.

+
+
+

Wat wijst naar een bestand dat weg is

+

file:missing

+

Een verwijdering die de registratie heeft laten staan. Onschadelijk totdat iets het probeert te starten, en een aanwijzing over wat er vroeger op deze machine stond.

+
+
+

Wat niemand heeft ondertekend

+

signed:no peruser:no

+

Op zichzelf geen bewijs van iets, en de juiste plek om te beginnen met lezen. De tweede term laat de families per gebruiker weg, die de lijst anders vullen met bijna-duplicaten.

+
+
+

Wat vraagt om de sterkste bevoegdheden

+

privilege:SeDebugPrivilege

+

Een bevoegdheid waarmee een proces elk ander proces kan openen. Een handvol legitieme services vraagt erom, en het is de moeite waard te weten welke op uw machine.

+
+
+

Wat wacht op een trigger

+

trigger:any status:stopped

+

Gestopt omdat niets er nog om heeft gevraagd, niet omdat er iets mis is. Weten welke dit zijn is hoe de eerste lijst ophoudt alarmerend te zijn.

+
+
+
+
+ +
+
+

Degene die ze allemaal verslaat

+

Vraag de machine zelf, toen het werkte.

+

Maak een momentopname de dag dat de machine in gebruik gaat. Dan wordt hoort dit te draaien tot draaide dit toen alles werkte - een vraag over uw machine en niet over een machine in een artikel.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... een week, een patch of een incident later
+bws snapshot diff C:\baselines\web01.json --live
+

Configuratie wordt los van de uitvoeringstoestand gemeld, dus het antwoord is geen veertig services die toevallig draaien - het is het opstarttype dat iemand heeft gewijzigd.

+ Een machine controleren op drift +
+
+ +
+
+

Voordat u iets stopt

+

Elke stop in dit hulpmiddel toont eerst zijn plan: de stappen, wat er mee neergaat, en een waarschuwing wanneer een ervan iets is waar de machine niet zonder kan. De lijst daarvan is een startlijst van zeven - de twee helften van RPC en de DCOM-starter, de accountbeheerder, sleutelisolatie, de sessiebeheerder en plug-and-play - en Extern bureaublad staat er niet op, dus lees het plan bij een sessie op afstand.

+ +
+
diff --git a/site/pages/what-should-be-running/page.json b/site/pages/what-should-be-running/page.json index ffd32e0..8ef0dae 100644 --- a/site/pages/what-should-be-running/page.json +++ b/site/pages/what-should-be-running/page.json @@ -11,6 +11,12 @@ "fr": "quels-services-windows-devraient-tourner", "es": "que-servicios-de-windows-deberian-estar-en-marcha", "it": "quali-servizi-windows-dovrebbero-essere-attivi", - "pt-br": "quais-servicos-do-windows-deveriam-estar-em-execucao" + "pt-br": "quais-servicos-do-windows-deveriam-estar-em-execucao", + "nl": "welke-windows-services-horen-te-draaien", + "cs": "ktere-sluzby-windows-maji-bezet", + "ro": "ce-servicii-windows-ar-trebui-sa-ruleze", + "tr": "hangi-windows-hizmetleri-calismali", + "id": "layanan-windows-apa-yang-seharusnya-berjalan", + "vi": "dich-vu-windows-nao-nen-chay" } } diff --git a/site/pages/what-should-be-running/ro.html b/site/pages/what-should-be-running/ro.html new file mode 100644 index 0000000..053bc83 --- /dev/null +++ b/site/pages/what-should-be-running/ro.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Ghid +

Ce servicii ar trebui să ruleze?

+

Răspunsul sincer este că nimeni nu vi-l poate spune, iar orice listă care pretinde asta descrie o mașină care nu este a dumneavoastră. Ceea ce se poate răspunde este mai îngust și mult mai util: ce nu se potrivește pe această mașină și ce este diferit față de când funcționa.

+
+
+ +
+
+

De ce întrebarea generală nu are răspuns

+ +
+
+ +
+
+

Întrebările care au răspunsuri

+
+
+

Ce ar trebui să fie pornit și nu este

+

start:auto !status:running

+

Windows a primit ordin să pornească acestea și nu rulează. Pe o mașină sănătoasă aceasta este o listă scurtă - câteva intrări care pornesc târziu și se opresc din nou. Orice altceva merită o privire.

+
+
+

Ce este dezactivat și totuși rulează

+

mismatch:running

+

Configurația și starea nu concordă. De obicei cineva l-a dezactivat fără să-l oprească, iar următoarea repornire va fi o surpriză.

+
+
+

Ce indică un fișier care a dispărut

+

file:missing

+

O dezinstalare care a lăsat înregistrarea în urmă. Inofensivă până când ceva încearcă să-l pornească și un indiciu despre ce se afla pe această mașină.

+
+
+

Ce n-a semnat nimeni

+

signed:no peruser:no

+

Nu este dovada a nimic singură și este locul potrivit de unde să începeți să citiți. Al doilea termen elimină familiile pe utilizator, care altfel umplu lista cu aproape-duplicate.

+
+
+

Ce cere cele mai puternice privilegii

+

privilege:SeDebugPrivilege

+

Un privilegiu care permite unui proces să deschidă oricare altul. Câteva servicii legitime îl cer și merită să știți care dintre ele o fac pe mașina dumneavoastră.

+
+
+

Ce așteaptă un declanșator

+

trigger:any status:stopped

+

Oprit pentru că încă nimic nu l-a cerut, și nu pentru că ceva este greșit. A ști care sunt acestea este felul în care prima listă încetează să mai fie alarmantă.

+
+
+
+
+ +
+
+

Cea care le bate pe toate

+

Întrebați mașina însăși, de când funcționa.

+

Faceți un instantaneu în ziua în care mașina intră în serviciu. Atunci ar trebui să ruleze asta devine rula asta când totul funcționa - o întrebare despre mașina dumneavoastră și nu despre o mașină dintr-un articol.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... o săptămână, o actualizare sau un incident mai târziu
+bws snapshot diff C:\baselines\web01.json --live
+

Configurația este raportată separat de starea de rulare, deci răspunsul nu este patruzeci de servicii care se întâmplă să fie pornite - este tipul de pornire pe care l-a schimbat cineva.

+ Auditarea unei mașini pentru derivă +
+
+ +
+
+

Înainte să opriți ceva

+

Fiecare oprire din acest instrument își arată mai întâi planul: pașii, ce cade odată cu ei și un avertisment când unul dintre ei este ceva fără de care mașina nu funcționează. Lista acestora este o listă de pornire de șapte - cele două jumătăți ale RPC și lansatorul DCOM, managerul de conturi, izolarea cheilor, managerul de sesiuni și plug and play - iar Remote Desktop nu este pe ea, deci într-o sesiune la distanță citiți planul.

+ +
+
diff --git a/site/pages/what-should-be-running/ru.html b/site/pages/what-should-be-running/ru.html new file mode 100644 index 0000000..9559691 --- /dev/null +++ b/site/pages/what-should-be-running/ru.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Руководство +

Какие службы должны работать?

+

Честный ответ - никто не может вам этого сказать, и каждый список, который на это претендует, описывает машину, которая не ваша. Ответить можно на более узкий и гораздо более полезный вопрос: что не сходится на этой машине и что отличается от того, как было, когда всё работало.

+
+
+ +
+
+

Почему у общего вопроса нет ответа

+ +
+
+ +
+
+

Вопросы, у которых есть ответы

+
+
+

Что должно работать и не работает

+

start:auto !status:running

+

Windows велели запустить эти службы, а они не работают. На здоровой машине это короткий список - пара записей, которые стартуют поздно и снова останавливаются. Всё остальное стоит проверить.

+
+
+

Что отключено, но всё равно работает

+

mismatch:running

+

Конфигурация и состояние расходятся. Обычно кто-то отключил её, не остановив, и следующая перезагрузка станет сюрпризом.

+
+
+

Что указывает на пропавший файл

+

file:missing

+

Удаление, оставившее регистрацию. Безвредно, пока что-то не попробует её запустить, и подсказка о том, что раньше было на этой машине.

+
+
+

Что никто не подписал

+

signed:no peruser:no

+

Само по себе ничего не доказывает и является правильным местом, с которого стоит начать чтение. Второй терм отбрасывает семейства для каждого пользователя, которые иначе заполняют список почти одинаковыми записями.

+
+
+

Что просит самые сильные привилегии

+

privilege:SeDebugPrivilege

+

Привилегия, позволяющая процессу открыть любой другой. Горстка законных служб просит её, и стоит знать, какие именно на вашей машине.

+
+
+

Что ждёт триггера

+

trigger:any status:stopped

+

Остановлено, потому что их пока ничто не запрашивало, а не потому что что-то не так. Знать, какие это, - способ сделать так, чтобы первый список перестал тревожить.

+
+
+
+
+ +
+
+

Тот, что побеждает все

+

Спросите саму машину, когда она работала.

+

Сделайте снимок в день ввода машины в эксплуатацию. Тогда должно ли это работать превращается в работало ли это, когда всё функционировало - вопрос о вашей машине, а не о машине из статьи.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... неделю, исправление или инцидент спустя
+bws snapshot diff C:\baselines\web01.json --live
+

Конфигурация сообщается отдельно от состояния выполнения, поэтому ответ - не сорок служб, которые случайно работают, а тип запуска, который кто-то изменил.

+ Аудит машины на дрейф +
+
+ +
+
+

Прежде чем что-либо остановить

+

Каждая остановка в этом инструменте сначала показывает свой план: шаги, что падает вместе с ними и предупреждение, когда одна из них - то, без чего машина не работает. Список таких - стартовый, из семи: две половины RPC и средство запуска DCOM, диспетчер учётных записей, изоляция ключей, диспетчер сеансов и Plug and Play - и Удалённого рабочего стола в нём нет, поэтому в удалённом сеансе читайте план.

+ +
+
diff --git a/site/pages/what-should-be-running/tr.html b/site/pages/what-should-be-running/tr.html new file mode 100644 index 0000000..1063c13 --- /dev/null +++ b/site/pages/what-should-be-running/tr.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Kılavuz +

Hangi hizmetler çalışıyor olmalı?

+

Dürüst yanıt şu ki bunu size kimse söyleyemez ve öyle olduğunu iddia eden her liste sizin olmayan bir makineyi anlatır. Yanıtlanabilecek şey daha dar ve çok daha yararlı: bu makinede neyin tutmadığı ve çalışırken olandan neyin farklı olduğu.

+
+
+ +
+
+

Genel sorunun neden yanıtı yok

+ +
+
+ +
+
+

Yanıtı olan sorular

+
+
+

Açık olması gereken ve olmayan

+

start:auto !status:running

+

Windows'a bunları başlatması söylendi ve çalışmıyorlar. Sağlıklı bir makinede bu kısa bir listedir - geç başlayıp yine duran birkaç öğe. Bunun dışındaki her şeye bir bakmaya değer.

+
+
+

Devre dışı olan ve yine de çalışan

+

mismatch:running

+

Yapılandırma ve durum uyuşmuyor. Genellikle biri onu durdurmadan devre dışı bırakmıştır ve bir sonraki yeniden başlatma bir sürpriz olur.

+
+
+

Kaybolmuş bir dosyaya işaret eden

+

file:missing

+

Kaydı geride bırakan bir kaldırma. Bir şey onu başlatmaya çalışana kadar zararsız ve bu makinede eskiden ne olduğuna dair bir ipucu.

+
+
+

Kimsenin imzalamadığı

+

signed:no peruser:no

+

Tek başına bir şeyin kanıtı değil ve okumaya başlamak için doğru yer. İkinci terim, listeyi aksi halde neredeyse aynı öğelerle dolduracak kullanıcı başına aileleri atar.

+
+
+

En güçlü ayrıcalıkları isteyen

+

privilege:SeDebugPrivilege

+

Bir işlemin diğer herhangi birini açmasına izin veren bir ayrıcalık. Bir avuç meşru hizmet onu ister ve makinenizde hangilerinin istediğini bilmeye değer.

+
+
+

Bir tetikleyici bekleyen

+

trigger:any status:stopped

+

Bir şey yanlış olduğu için değil, henüz hiçbir şey onları istemediği için durmuş. Bunların hangileri olduğunu bilmek, ilk listenin ürkütücü olmaktan çıkma yoludur.

+
+
+
+
+ +
+
+

Hepsini yenen

+

Makinenin kendisine sorun, çalışırken.

+

Makinenin hizmete girdiği gün bir anlık görüntü alın. O zaman bu çalışıyor olmalı mı, her şey çalışırken bu çalışıyor muydu olur - bir makale içindeki bir makine hakkında değil, sizin makineniz hakkında bir soru.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... bir hafta, bir yama ya da bir olay sonra
+bws snapshot diff C:\baselines\web01.json --live
+

Yapılandırma çalışma durumundan ayrı bildirilir; bu yüzden yanıt tesadüfen açık olan kırk hizmet değil, birinin değiştirdiği başlangıç türüdür.

+ Bir makineyi sapma için denetleme +
+
+ +
+
+

Bir şeyi durdurmadan önce

+

Bu araçtaki her durdurma önce planını gösterir: adımları, onlarla birlikte nelerin indiğini ve biri makinenin onsuz çalışmadığı bir şeyse bir uyarı. Bunların listesi yedilik bir başlangıç listesidir - RPC'nin iki yarısı ve DCOM başlatıcısı, hesap yöneticisi, anahtar yalıtımı, oturum yöneticisi ve tak-çalıştır - ve Uzak Masaüstü listede yok, dolayısıyla uzak bir oturumda planı okuyun.

+ +
+
diff --git a/site/pages/what-should-be-running/uk.html b/site/pages/what-should-be-running/uk.html new file mode 100644 index 0000000..59d68df --- /dev/null +++ b/site/pages/what-should-be-running/uk.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Посібник +

Які служби мають працювати?

+

Чесна відповідь - ніхто не може вам цього сказати, а кожен список, що на це претендує, описує машину, яка не ваша. Відповісти можна на вужче й набагато корисніше запитання: що не сходиться на цій машині і що відрізняється від того, як було, коли все працювало.

+
+
+ +
+
+

Чому в загального запитання немає відповіді

+ +
+
+ +
+
+

Запитання, у яких є відповіді

+
+
+

Що має працювати й не працює

+

start:auto !status:running

+

Windows наказано запустити ці служби, а вони не працюють. На здоровій машині це короткий список - пара записів, які стартують пізно й знову зупиняються. Усе інше варто перевірити.

+
+
+

Що вимкнено, але все одно працює

+

mismatch:running

+

Конфігурація й стан розходяться. Зазвичай хтось вимкнув її, не зупинивши, і наступне перезавантаження стане сюрпризом.

+
+
+

Що вказує на зниклий файл

+

file:missing

+

Видалення, що залишило реєстрацію. Нешкідливе, доки щось не спробує її запустити, і підказка про те, що раніше було на цій машині.

+
+
+

Що ніхто не підписав

+

signed:no peruser:no

+

Само по собі нічого не доводить і є правильним місцем, з якого варто почати читання. Другий термін відкидає сімейства для кожного користувача, які інакше заповнюють список майже однаковими записами.

+
+
+

Що просить найсильніші привілеї

+

privilege:SeDebugPrivilege

+

Привілей, що дозволяє процесу відкрити будь-який інший. Жменька законних служб його просить, і варто знати, які саме на вашій машині.

+
+
+

Що чекає на тригер

+

trigger:any status:stopped

+

Зупинено, бо їх поки ніщо не запитувало, а не тому, що щось не так. Знати, які це, - спосіб зробити так, щоб перший список перестав тривожити.

+
+
+
+
+ +
+
+

Той, що перемагає всі

+

Спитайте саму машину, коли вона працювала.

+

Зробіть знімок у день введення машини в експлуатацію. Тоді чи має це працювати перетворюється на чи працювало це, коли все функціонувало - запитання про вашу машину, а не про машину зі статті.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... через тиждень, виправлення чи інцидент
+bws snapshot diff C:\baselines\web01.json --live
+

Конфігурація повідомляється окремо від стану виконання, тож відповідь - не сорок служб, що випадково працюють, а тип запуску, який хтось змінив.

+ Аудит машини на дрейф +
+
+ +
+
+

Перш ніж щось зупиняти

+

Кожна зупинка в цьому інструменті спершу показує свій план: кроки, що падає разом із ними, і попередження, коли один із них - те, без чого машина не працює. Список таких - стартовий, із семи: дві половини RPC і засіб запуску DCOM, диспетчер облікових записів, ізоляція ключів, диспетчер сеансів і Plug and Play - і Віддаленого робочого стола в ньому немає, тому у віддаленому сеансі читайте план.

+ +
+
diff --git a/site/pages/what-should-be-running/vi.html b/site/pages/what-should-be-running/vi.html new file mode 100644 index 0000000..6a92ea9 --- /dev/null +++ b/site/pages/what-should-be-running/vi.html @@ -0,0 +1,86 @@ + + + + + +
+
+ Hướng dẫn +

Những dịch vụ nào nên chạy?

+

Câu trả lời trung thực là không ai nói cho bạn được, và mọi danh sách tự nhận làm được đều đang mô tả một máy không phải của bạn. Điều có thể trả lời hẹp hơn và hữu ích hơn nhiều: điều gì không khớp trên máy này, và điều gì khác so với lúc nó còn hoạt động.

+
+
+ +
+
+

Vì sao câu hỏi chung chung không có câu trả lời

+ +
+
+ +
+
+

Những câu hỏi có câu trả lời

+
+
+

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

+

start:auto !status:running

+

Windows được bảo khởi động những dịch vụ này và chúng không chạy. Trên một máy khỏe mạnh đây là một danh sách ngắn - vài mục khởi động muộn rồi lại dừng. Bất cứ thứ gì khác đều đáng xem.

+
+
+

Những gì bị vô hiệu hóa mà vẫn chạy

+

mismatch:running

+

Cấu hình và trạng thái không khớp. Thường là ai đó đã vô hiệu hóa nó mà không dừng nó, và lần khởi động lại tới sẽ là một bất ngờ.

+
+
+

Những gì trỏ tới một tệp đã mất

+

file:missing

+

Một lần gỡ cài đặt để lại phần đăng ký. Vô hại cho đến khi có thứ cố khởi động nó, và là manh mối về những gì từng có trên máy này.

+
+
+

Những gì không ai ký

+

signed:no peruser:no

+

Bản thân nó không chứng minh được gì, và là chỗ đúng để bắt đầu đọc. Thành phần thứ hai loại bỏ các họ theo người dùng, vốn sẽ lấp danh sách bằng những mục gần như trùng.

+
+
+

Những gì yêu cầu đặc quyền mạnh nhất

+

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. Một số ít dịch vụ hợp lệ yêu cầu nó, và đáng biết là những dịch vụ nào trên máy của bạn.

+
+
+

Những gì đang chờ một trình kích hoạt

+

trigger:any status:stopped

+

Dừng vì chưa có gì yêu cầu chúng, chứ không phải vì có gì sai. Biết chúng là những dịch vụ nào chính là cách danh sách đầu tiên thôi gây lo ngại.

+
+
+
+
+ +
+
+

Cái đánh bại tất cả

+

Hỏi chính cái máy, khi nó còn hoạt động.

+

Chụp một bản vào ngày máy được đưa vào hoạt động. Khi đó cái này có nên chạy không trở thành cái này có chạy khi mọi thứ còn hoạt động không - một câu hỏi về máy của bạn chứ không phải về một cái máy trong một bài báo.

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... một tuần, một bản vá, hay một sự cố sau
+bws snapshot diff C:\baselines\web01.json --live
+

Cấu hình được báo riêng với trạng thái chạy, nên câu trả lời không phải bốn mươi dịch vụ tình cờ đang chạy - mà là kiểu khởi động mà ai đó đã đổi.

+ Kiểm toán một máy để tìm sai lệch +
+
+ +
+
+

Trước khi bạn dừng bất cứ thứ gì

+

Mỗi lệnh dừng trong công cụ này hiển thị kế hoạch của nó trước: các bước, những gì bị kéo theo, và một cảnh báo khi một trong số đó là thứ mà máy không hoạt động nếu thiếu. Danh sách các dịch vụ ấy là một danh sách khởi đầu gồm bảy - hai nửa của RPC và trình khởi chạy DCOM, trình quản lý tài khoản, cô lập khóa, trình quản lý phiên và plug and play - và Remote Desktop không có trong đó, nên khi qua một phiên từ xa, hãy đọc kế hoạch.

+ +
+
diff --git a/site/pages/what-should-be-running/zh-hans.html b/site/pages/what-should-be-running/zh-hans.html new file mode 100644 index 0000000..29df282 --- /dev/null +++ b/site/pages/what-should-be-running/zh-hans.html @@ -0,0 +1,86 @@ + + + + + +
+
+ 指南 +

应该运行哪些服务?

+

诚实的回答是没人能告诉你,而每一份声称能告诉你的清单,描述的都是另一台不是你的计算机。能够回答的是一个更窄、也有用得多的问题:这台计算机上有什么对不上,以及与它正常工作时相比有什么不同。

+
+
+ +
+
+

为什么笼统的问题没有答案

+ +
+
+ +
+
+

确实有答案的问题

+
+
+

应该在运行却没有运行的内容

+

start:auto !status:running

+

Windows 被告知要启动这些服务,而它们没有在运行。在健康的计算机上这是一份很短的清单:几个启动较晚、随后又停止的条目。其他任何内容都值得看一眼。

+
+
+

已禁用却仍在运行的内容

+

mismatch:running

+

配置与状态不一致。通常是有人禁用了它却没有停止它,下一次重启会带来意外。

+
+
+

指向已丢失文件的内容

+

file:missing

+

卸载后遗留了注册信息。在有东西尝试启动它之前是无害的,也是关于这台计算机上曾经有过什么的线索。

+
+
+

没人签名的内容

+

signed:no peruser:no

+

它本身不能证明任何事,却是开始阅读的合适起点。第二个检索词会去掉按用户的服务族,否则它们会让列表里充满近似重复的条目。

+
+
+

请求最强特权的内容

+

privilege:SeDebugPrivilege

+

一种让进程能够打开任何其他进程的特权。少数合法的服务会请求它,值得知道你的计算机上是哪几个。

+
+
+

正在等待触发器的内容

+

trigger:any status:stopped

+

它们处于停止状态,是因为还没有东西请求它们,而不是因为出了什么问题。知道这些是哪些,就是让第一份清单不再令人担忧的办法。

+
+
+
+
+ +
+
+

胜过所有这些的那一个

+

询问计算机本身,在它正常工作的时候。

+

在计算机投入使用的那一天生成一个快照。这样,这个应该运行吗就变成了在一切正常时,这个在运行吗:一个关于你的计算机的问题,而不是关于一篇文章里那台计算机的问题。

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... 一周、一次补丁或一次事件之后
+bws snapshot diff C:\baselines\web01.json --live
+

配置与运行状态分开报告,所以答案不是四十个恰好在运行的服务,而是某人更改过的启动类型。

+ 审计计算机的漂移 +
+
+ +
+
+

在停止任何东西之前

+

这个工具中的每一次停止都会先展示它的计划:各个步骤、随之关闭的内容,以及当其中之一是计算机离不开的东西时的警告。这样的清单是一份七项的入门清单:RPC 的两个部分和 DCOM 启动器、账户管理器、密钥隔离、会话管理器以及即插即用,其中没有远程桌面,所以通过远程会话操作时,请阅读计划。

+ +
+
diff --git a/site/pages/what-should-be-running/zh-hant.html b/site/pages/what-should-be-running/zh-hant.html new file mode 100644 index 0000000..a7fa238 --- /dev/null +++ b/site/pages/what-should-be-running/zh-hant.html @@ -0,0 +1,86 @@ + + + + + +
+
+ 指南 +

應該執行哪些服務?

+

誠實的回答是沒人能告訴你,而每一份聲稱能告訴你的清單,描述的都是另一台不是你的電腦。能夠回答的是一個更窄、也有用得多的問題:這台電腦上有什麼對不上,以及與它正常運作時相比有什麼不同。

+
+
+ +
+
+

為什麼籠統的問題沒有答案

+ +
+
+ +
+
+

確實有答案的問題

+
+
+

應該執行卻沒有執行的內容

+

start:auto !status:running

+

Windows 被告知要啟動這些服務,而它們沒有在執行。在健康的電腦上這是一份很短的清單:幾個啟動較晚、隨後又停止的項目。其他任何內容都值得看一眼。

+
+
+

已停用卻仍在執行的內容

+

mismatch:running

+

組態與狀態不一致。通常是有人停用了它卻沒有停止它,下一次重新啟動會帶來意外。

+
+
+

指向已遺失檔案的內容

+

file:missing

+

解除安裝後遺留了登錄資訊。在有東西嘗試啟動它之前是無害的,也是關於這台電腦上曾經有過什麼的線索。

+
+
+

沒人簽章的內容

+

signed:no peruser:no

+

它本身不能證明任何事,卻是開始閱讀的合適起點。第二個搜尋詞會去掉依使用者的服務族,否則它們會讓清單裡充滿近似重複的項目。

+
+
+

要求最強特殊權限的內容

+

privilege:SeDebugPrivilege

+

一種讓處理程序能夠開啟任何其他處理程序的特殊權限。少數合法的服務會要求它,值得知道你的電腦上是哪幾個。

+
+
+

正在等待觸發程序的內容

+

trigger:any status:stopped

+

它們處於停止狀態,是因為還沒有東西要求它們,而不是因為出了什麼問題。知道這些是哪些,就是讓第一份清單不再令人擔憂的辦法。

+
+
+
+
+ +
+
+

勝過所有這些的那一個

+

詢問電腦本身,在它正常運作的時候。

+

在電腦投入使用的那一天產生一個快照。這樣,這個應該執行嗎就變成了在一切正常時,這個在執行嗎:一個關於你的電腦的問題,而不是關於一篇文章裡那台電腦的問題。

+
bws snapshot create C:\baselines\web01.json --note "after the build"
+# ... 一週、一次修補程式或一次事件之後
+bws snapshot diff C:\baselines\web01.json --live
+

組態與執行狀態分開回報,所以答案不是四十個恰好在執行的服務,而是某人變更過的啟動類型。

+ 稽核電腦的漂移 +
+
+ +
+
+

在停止任何東西之前

+

這個工具中的每一次停止都會先展示它的計畫:各個步驟、隨之關閉的內容,以及當其中之一是電腦離不開的東西時的警告。這樣的清單是一份七項的入門清單:RPC 的兩個部分和 DCOM 啟動器、帳戶管理員、金鑰隔離、工作階段管理員以及隨插即用,其中沒有遠端桌面,所以透過遠端工作階段操作時,請閱讀計畫。

+ +
+
diff --git a/site/site.json b/site/site.json index 6e9e7f4..31e3f03 100644 --- a/site/site.json +++ b/site/site.json @@ -7,7 +7,7 @@ "support": "https://donislawdev.com/support/", "_languages": "The languages that are PUBLISHED, in the order the switch lists them. The first is the default and lives at the root. The others live under /{code}/. A language that is in language_registry and not here is prepared and unreachable, which is how it is written and built before it goes live.", - "languages": ["en", "de", "es", "fr", "it", "pl", "pt-br"], + "languages": ["en", "cs", "de", "es", "fr", "id", "it", "ja", "ko", "nl", "pl", "pt-br", "ro", "ru", "tr", "uk", "vi", "zh-hans", "zh-hant"], "_language_registry": "How each language is written, in one place. The key is the address code in lower case and the name of its files (site/i18n/{code}.json, site/pages/{id}/{code}.html). tag is what lang and hreflang carry, locale is og:locale, name is the language in its OWN alphabet and is never translated, short is what the switch shows for the language you are in. dir is written only when it is rtl. slugs is own when the language has a slug of its own for every page in each page.json, and english when its pages live at the default language's slugs - the choice for alphabets that cannot be an ASCII address without being transliterated.", "language_registry": {