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ázka | S tím, co je na stroji | Zde |
|---|---|---|
| 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ý soubor | Přečíst každou cestu ke spuštění, převést ji, na každé zavolat Get-AuthenticodeSignature - skript, ne příkaz |
bws list --query "signed:no" |
| Co by zastavení tohoto strhlo s sebou | sc enumdepend X, potom přečíst seznam a rozhodnout sám |
bws stop X --dry-run --dependents, což je plán, který by se spustil |
| Co se změnilo od minulého týdne | Nic, pokud jste si sběrač nenapsali sami | bws snapshot diff before.json --live |
| Kdo změnil typ spouštění a kdy | Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, potom přečíst zprávu každé události |
bws history Spooler, jehož první řádek říká, jak daleko protokol sahá |
| Strojově čitelný výstup | Objekty 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
- Jste na stroji, kterého se dotknete jednou. Obojí tam už je a nic se nemusí protlačovat přes politiku.
- Potřebujete změnit účet, cestu ke spuštění nebo akce obnovení.
sc.exezvládne všechny tři. Tento nástroj účet a cestu ke spuštění ukazuje a ani jedno nemění a akce obnovení čte jen proto, aby varoval, než ukončí proces. - Potřebujete službu vytvořit nebo smazat.
sc createasc delete. Zde ne, záměrně. - Už jste hluboko v pipeline PowerShellu.
bws list --jsonse vrací jako objekty přesConvertFrom-Json, takže se do pipeline zapojí, místo aby ji nahradil.
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í.