Layanan wildcard restart

21

Saat ini, kami telah menyiapkan file .BAT yang mencantumkan semua layanan untuk memulai / menghentikannya, mis.

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

Kami menambahkan layanan baru setiap saat dan daftarnya terus bertambah dan sulit untuk mempertahankan file batch.

Apakah mungkin menggunakan WILDCARD seperti 'SC start SERVICE *' atau apalah?

Edward Tung
sumber
1
Versi windows apa?
Endoro

Jawaban:

17

Anda bisa menggunakan wmicsintaks wildcard SQL-ish.

Dari cmdkonsol:

wmic service where "name like 'SERVICE%'" call startservice

Dari .batnaskah:

wmic service where "name like 'SERVICE%%'" call startservice

Kata kerja yang tersedia termasuk startservice, stopservice, pauseservice, resumeservice, dan lain-lain. Lakukan wmic service call /?untuk info lebih lanjut.

rojo
sumber
1
Bahasa query disebut WQL, BTW. Ini adalah bagian dari SQL.
Bob
@ Bob - Oh. Ya, pelajari sesuatu yang baru setiap hari. :>
rojo
Hanya ingin menambahkan satu hal lagi. Saya mengalami kesalahan di mana nama layanan tidak dikenali. Ternyata sebuah layanan memiliki Nama Layanan dan Nama Tampilan. Nama Layanan harus digunakan, bukan Nama Tampilan. Anda dapat menemukan Nama Layanan dengansc query
jdramer
13

Mudah, melalui Powershell:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service
Gotxi
sumber
Saya memilih yang ini karena menjalankan WAY lebih cepat daripada wmic. Di komputer saya dibutuhkan sekitar 2 milidetik untuk mendapatkan daftar layanan dengan cara ini. Dibutuhkan sekitar 13000 milidetik menggunakan wmic.
arjabbar
bagaimana cara menggabungkan kedua perintah ini dalam sekali jalan?
Raja Anbazhagan
0

jika Anda menginginkan perintah One Line,

Anda dapat menggunakan Restart-Service Cmdlet yang sudah dibuat sebelumnya di PowerShell.

Untuk menggunakan Restart-Layanan cukup panggil cmdlet diikuti dengan nama layanan:

Restart-Service mysql57

Untuk memulai kembali beberapa layanan cukup tentukan nama setiap layanan, dipisahkan dengan koma:

Restart-Service mysql57,apache

Jika Anda mau, tambahkan parameter -displayname dan tentukan nama tampilan layanan (nama yang diperlihatkan dalam snap-in Layanan) sebagai gantinya:

Restart-Service -displayname "Mysql 5.7 server"

Cmdlet ini juga menerima pencocokan wildcard. Untuk memulai kembali semua layanan yang dimulai dengan "mysql":

Restart-Service mysql*
Raja Anbazhagan
sumber