Guida

sc.exe, Get-Service e questo strumento

Entrambi sono già sulla macchina, ed entrambi resteranno utili. Questa pagina parla di dove si fermano - e dice chiaramente dove sono ancora la risposta migliore.

Dove si ferma ciascuno

sc.exe

Raggiunge quasi tutto ciò che sa il gestore di controllo dei servizi, e non le dice nulla su come chiederlo. La sintassi è degli anni Novanta - sc config X start= auto, dove lo spazio dopo il segno uguale è obbligatorio e la sua assenza è un fallimento silenzioso nel fare ciò che intendeva.

Risponde su una voce alla volta. Non c'è filtro, né un output che uno script possa analizzare senza scrivere un parser, né anteprima: sc stop o funziona o restituisce un numero.

Get-Service e i cmdlet *-Service

Oggetti veri, una pipeline e una vista superficiale. In Windows PowerShell 5.1, quello fornito con Windows, Get-Service non mostra l'account con cui gira un servizio né la sua descrizione. PowerShell 7 mostra entrambi, e anche il percorso di avvio, e si installa a parte.

Stop-Service -Force significa "anche se qualcosa ne dipende" - ferma i dipendenti, e glielo dice dopo e non prima.

Le stesse domande, in tre modi

DomandaCon ciò che c'è sulla macchinaQui
Cosa dovrebbe essere attivo e non lo è Get-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' } bws list --query "start:auto !status:running"
Quali servizi hanno un eseguibile non firmato Leggere ogni percorso di avvio, risolverlo, chiamare Get-AuthenticodeSignature su ciascuno - uno script, non un comando bws list --query "signed:no"
Cosa trascinerebbe con sé fermare questo sc enumdepend X, poi leggere l'elenco e decidere da sé bws stop X --dry-run --dependents, che è il piano che verrebbe eseguito
Cosa è cambiato dalla settimana scorsa Niente, a meno che abbia scritto lei stessa il raccoglitore bws snapshot diff before.json --live
Chi ha cambiato il tipo di avvio, e quando Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, poi leggere il messaggio di ogni evento bws history Spooler, la cui prima riga dice fin dove arriva il registro
Output leggibile da una macchina Oggetti da PowerShell, testo da sc.exe --json su ogni comando, sullo standard output, con gli avvisi sullo standard error

Dove questo strumento non concorda con sc.exe su un servizio, è un bug qui. Parte della suite di test esegue entrambi sulla macchina in cui gira e li confronta voce per voce, e una differenza tra i due è la cosa più utile da mettere in una segnalazione.

Quando continuare a usare ciò che ha

  • È su una macchina che toccherà una volta sola. Entrambi sono già lì e nulla deve passare una policy.
  • Deve cambiare l'account, il percorso di avvio o le azioni di ripristino. sc.exe fa tutte e tre le cose. Questo strumento mostra l'account e il percorso di avvio e non cambia nessuno dei due, e legge le azioni di ripristino solo per avvisare prima di terminare un processo.
  • Deve creare o eliminare un servizio. sc create e sc delete. Non qui, di proposito.
  • È già immerso in una pipeline PowerShell. bws list --json torna come oggetti tramite ConvertFrom-Json, così si unisce alla pipeline invece di sostituirla.

Insieme, anziché al posto

Lo strumento che risponde a cosa non va in questa macchina e gli strumenti che cambiano un'impostazione non sono lo stesso strumento. Ponga la domanda qui, legga il piano qui e usi ciò che preferisce per eseguirlo - il piano stampa la riga di comando che chiede la stessa cosa, e quella riga è fatta per essere copiata.