Ponowne uruchomienie usług Wildcard

21

Obecnie mamy ustawiony plik .BAT, który zawiera listę wszystkich usług, aby je uruchomić / zatrzymać np.

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

Cały czas dodajemy nowe usługi, a lista rośnie i trudno jest utrzymać plik wsadowy.

Czy można użyć WILDCARD, np. „SC start SERVICE *” lub czegoś takiego?

Edward Tung
źródło
1
Jaka wersja systemu Windows?
Endoro

Odpowiedzi:

17

Możesz użyć wmicskładni wieloznacznej SQL-ish.

Z cmdkonsoli:

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

Ze .batskryptu:

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

Dostępne czasowniki należą startservice, stopservice, pauseservice, resumeservice, i inne. Zrób wmic service call /?więcej informacji.

Rojo
źródło
1
Język zapytań nosi nazwę WQL, BTW. To podzbiór SQL.
Bob
@Bob - Oh. Każdego dnia uczysz się czegoś nowego. :>
rojo
Chciałem tylko dodać jeszcze jedną rzecz. Wystąpił błąd polegający na tym, że nazwa usługi nie została rozpoznana. Okazuje się, że usługa ma Nazwę usługi i Nazwę wyświetlaną. Należy używać nazwy usługi, a nie nazwy wyświetlanej. Nazwę usługi można znaleźć za pomocąsc query
jdramer
13

Łatwo, za pomocą Powershell:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service
Gotxi
źródło
Głosowałem za tym, ponieważ działa on WAY szybciej niż wmic. Na mojej maszynie uzyskanie listy usług w ten sposób zajmuje około 2 milisekund. Używanie wmic zajmuje około 13000 milisekund.
arjabbar
jak połączyć te dwa polecenia za jednym razem?
Raja Anbazhagan
0

jeśli chcesz komendy One Line,

Możesz użyć polecenia cmdlet Restart-Service, które jest wstępnie wbudowane w PowerShell.

Aby użyć usługi Restart-Service, po prostu wywołaj polecenie cmdlet, a następnie nazwę usługi:

Restart-Service mysql57

Aby zrestartować wiele usług, po prostu podaj nazwę każdej usługi, oddzielając je przecinkami:

Restart-Service mysql57,apache

Jeśli wolisz, dodaj parametr -displayname i podaj wyświetlaną nazwę usługi (nazwa wyświetlana w przystawce Usługi):

Restart-Service -displayname "Mysql 5.7 server"

To polecenie cmdlet akceptuje również dopasowanie z użyciem symboli wieloznacznych. Aby ponownie uruchomić wszystkie usługi zaczynające się od „mysql”:

Restart-Service mysql*
Raja Anbazhagan
źródło