Usługi systemu pod kontrolą
Ponieważ manipulacje działaniem usług systemowych wymagają praw administratora, musisz uruchomić środowisko PowerShell ISE z odpowiednimi uprawnieniami. Najprościej to zrobisz, klikając prawym klawiszem myszy skrót do programu i wybierając z menu kontekstowego Uruchom jako administrator.
W górnej części okna wpisz pokazany tu skrypt:
W pierwszej linii widzisz zmienną, której jest przypisana nie jedna, lecz kilka wartości. To przykład dwuelementowej tablicy. W taki sposób możesz tworzyć w skryptach PowerShell tablice zawierające wiele obiektów, na których później przeprowadzane są działania.
W kolejnej linii 2 widzisz instrukcję foreach. Stanowi ona początek pętli, która zostanie powtórzona tyle razy, ile elementów ma utworzona wcześniej tablica obiektów. W tej linii pojawia się też zmienna $Usluga, której nie przypisujemy ręcznie żadnej wartości. Jest to tzw. zmienna licznikowa, która przechowuje aktualnie pobrany element tablicy, czyli w przypadku tego skryptu nazwę zatrzymywanej usługi.
Linie od 3 do 6 to treść pętli, której liczbę iteracji wyznacza liczba elementów tablicy utworzonej w pierwszym wierszu. Pętla składa się z dwóch poleceń. Polecenie Write-Host wyświetla komunikat zawarty w cudzysłowach, natomiast polecenie Stop-Service zatrzymuje usługę, której nazwa jest przechowywana przez zmienną licznikową. Każda usługa w systemie Windows ma dwie nazwy: wewnętrzną (systemową), i z tej właśnie korzystaliśmy w opisywanym skrypcie, oraz tzw. nazwę wyświetlaną, bardziej „ludzką” w brzmieniu. W skrypcie stosujemy nazwy systemowe ze względu na to, że są po prostu krótsze. Nic jednak nie stoi na przeszkodzie, byś użył nazw wyświetlanych. Wtedy w tablicy musiałbyś zadeklarować „Bufor wydruku” i „Rejestr zdalny”, a parametr -Name w poleceniu Stop-Service zastąpić parametrem -DisplayName.
W linii 5 znajduje się jeszcze jeden parametr: -Force. Jest to przełącznik wymuszający zatrzymanie usługi nawet wtedy, gdy istnieją elementy od niej zależne. W tym przypadku dotyczy to usługi Bufor wydruku (Spooler), od której zależy element o nazwie Faks.
Ostatnia linia skryptu to po prostu wyświetlenie komunikatu informującego o zatrzymaniu wybranych usług.
Na koniec jeszcze jedna podpowiedź: możesz użyć niemal identycznego skryptu do uruchamiania usług. Oto, co musiałbyś zmienić: zastąpić polecenie Stop-Service poleceniem Start-Service, usunąć parametr -Force i oczywiście dla porządku zmodyfikować treść wyświetlanych komunikatów oraz wpisać nazwy usług, które chcesz włączyć do tablicy w pierwszym wierszu.