Tworzenie, kasowanie i konfigurowanie usług w CMD
W naszej wycieczce po komendach Wiersza Poleceń Windows dzisiaj dochodzimy do zagadnienia usług systemowych. W tym artykule skupimy się na tworzeniu, kasowaniu, zmianie konfiguracji oraz sprawdzaniu stanu usług, a o kontrolowaniu ich (start, stop itd) za pomocą polecenia NET, możecie poczytać w osobnym artykule.
W systemach Windows nie ma natywnego kreatora służącego do tworzenia i kasowania usług. Czynności te można wykonać poprzez wpisy w Rejestrze, Powershell i CMD. Ja najczęściej korzystam z Wiersza Poleceń, bo składnia jest bardzo prosta.
A więc, zacznijmy od początku: do konfigurowania usług w systemie Windows służy program SC.EXE. W tym artykule podam garść praktycznych przykładów skupiając się na najbardziej popularnych opcjach. Jeśli szukacie wszystkich dostępnych opcji – jak zawsze możecie zajrzeć do systemowej pomocy:
sc.exe /?
I jeszcze dwie małe uwagi:
Po znaku równości musi być odstęp (spacja).
Nazwy usług, to nazwy systemowe. Tabelę wszystkich nazw usług w systemach Windows znajdziecie w moim wcześniejszym artykule.
Tworzenie nowej usługi
Najbardziej podstawowa składnia polecenia zawiera nazwę usługi, sposób jej uruchamiania (boot|system|auto|demand|disabled|delayed-auto) i ścieżkę do pliku exe. Oto prosty przykład:
sc create „PDFCreator” start= auto binpath= „c:\Programme\PDFCreator\PDFCreator.exe”
Możemy też tworzyć usługi na zdalnej maszynie:
sc \\zdalny_komputer create PDFCreator binpath= “c:\Programme\PDFCreator\PDFCreator.exe”
Konfiguracja usług
Podane przykładowe parametry możemy też zastosować już w momencie tworzenia usługi, ja akurat podam je w kontekście zmiany konfiguracji istniejących usług. Oto garść przykładów.
Dodanie opisu do istniejącej usługi:
sc description „PDFCreator” „Umożliwia drukowanie do pliku PDF”
Dodanie zależności do istniejącej usługi:
sc config „Moja_usluga” depend= „MSSQLServer”
Zmiana trybu uruchamiania na automatyczny:
sc config „Moja_usluga” start= auto
Zmiana konta, na którym uruchamia się usługa:
sc config „Moja_usluga” obj= domana\konto_serwisowe password= M0j3-hasl0-Ni3-d0-od9Adn1ec1@
Ustawienie konta systemowego:
sc config „Moja_usluga” obj= „.\LocalSystem” password= „”
Dodanie akcji przy awarii usługi. Wartości opóźnienia podawane są milisekundach. W tym przykładzie konfigurujemy „przy pierwszej awarii restartuj usługę po 3 minutach”, „przy drugiej awarii restartuj usługę po 3 minutach” „przy powtarzanych awariach nie rób nic”.
sc failure „Moja_usluga” actions= restart/180000/restart/180000/””/180000 reset= 86400
Kasowanie usługi
Polecenie kasujące usługę jest bardzo proste:
sc delete nazwa_usługi
Sprawdzenie stanu usługi
Jak wiemy, niektóre usługi na serwerach mogą być niezwykle ważne i warto upewniać się że działają – na przykład jakimś prostym skryptem w harmonogramie Zadań.
Stan usługi „Windows Update” znajdziemy poleceniem:
sc query wuauserv
lub
sc query wuauserv | Find „STATE”
Tabele z wszystkimi nazwami usług znajdziecie w osobnym artykule.
A jak to wykorzystać w skrypcie? Uruchomiona usługa ma status RUNNING, zatem nasz skrypt może sprawdzić czy tak jest, i wykonać działania warunkowe:
if %errorlevel% == 1 echo usluga nie dzala!!!!
Jeśli pominąłem coś istotnego, piszcie 🙂
Cześć, jak uruchomić microsoft virtual pc jako usługę, żeby xp mode startował w tle jak jeszcze nikt nie jest zalogowany?
Dodaj virtual pc jako usługę z odpowiednimi parametrami uruchomieniowymi w trybie autostartu. Listę parametrów masz dostępną tutaj:
https://letitknow.wordpress.com/2012/02/29/command-line-reference-for-microsoft-virtual-pc/
Specjalnie nie podaję, które masz wykorzystać, żeby zachęcić Cię do poeksperymentowania 🙂 choć tak na serio to odpowiedź masz na dole artykułu z linku powyżej.