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ý 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.exe zvlá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 create a sc delete. Zde ne, záměrně.
  • Už jste hluboko v pipeline PowerShellu. bws list --json se vrací jako objekty přes ConvertFrom-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í.