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 berjalan Get-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 tangan Baca setiap jalur peluncuran, selesaikan, panggil Get-AuthenticodeSignature pada masing-masing - sebuah skrip, bukan perintah bws list --query "signed:no"
Apa yang akan ikut jatuh jika ini dihentikan sc enumdepend X, lalu baca daftarnya dan putuskan sendiri bws stop X --dry-run --dependents, yaitu rencana yang akan dijalankan
Apa yang berubah sejak minggu lalu Tidak ada, kecuali Anda menulis pengumpulnya sendiri bws snapshot diff before.json --live
Siapa yang mengubah tipe startup, dan kapan Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 }, lalu baca pesan setiap peristiwa bws history Spooler, yang baris pertamanya menyatakan seberapa jauh log menjangkau ke belakang
Keluaran yang dapat dibaca mesin Objek 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

  • Anda berada di mesin yang hanya akan Anda sentuh sekali. Keduanya sudah ada di sana dan tidak ada yang harus lolos kebijakan.
  • Anda perlu mengubah akun, jalur peluncuran, atau tindakan pemulihan. sc.exe melakukan ketiganya. Alat ini menampilkan akun dan jalur peluncuran dan tidak mengubah keduanya, dan membaca tindakan pemulihan hanya untuk memperingatkan sebelum mengakhiri proses.
  • Anda perlu membuat atau menghapus layanan. sc create dan sc delete. Bukan di sini, dengan sengaja.
  • Anda sudah jauh di dalam pipeline PowerShell. bws list --json kembali sebagai objek melalui ConvertFrom-Json, sehingga ia bergabung dengan pipeline alih-alih menggantikannya.

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.