15Jul

Geek School: Dowiedz się, jak zautomatyzować system Windows za pomocą PowerShell

click fraud protection

W tym wydaniu Geek School pomożemy Ci zrozumieć potężny język skryptowy PowerShell wbudowany w system Windows i jest niezwykle przydatny do poznania w środowisku IT.

Podczas gdy ta seria nie jest zorganizowana wokół egzaminu, nauka PowerShell jest jedną z najważniejszych rzeczy, które możesz zrobić jako administrator sieci, więc jeśli jest coś, czego chcesz się nauczyć, aby pomóc swojej karierze IT, to jest to. Poza tym jest dużo zabawy.

Wprowadzenie

PowerShell to najpotężniejsze narzędzie do automatyzacji, jakie ma do zaoferowania Microsoft, a także język powłoki i skryptów.

Należy pamiętać, że ta seria jest oparta na PowerShell 3, który jest dostarczany z Windows 8 i Serwerem 2012. Jeśli korzystasz z systemu Windows 7, pobierz aktualizację PowerShell 3, zanim przejdziesz dalej.

Poznaj konsolę i ISE

Dostępne są dwa sposoby interakcji z PowerShell, konsola i zintegrowane środowisko skryptowe - znane również jako ISE.ISE znacznie poprawiła się z ohydnej wersji dostarczanej z PowerShell 2 i można ją otworzyć, naciskając kombinację klawiszy Win + R, aby wyświetlić pole uruchamiania, a następnie wpisując powershell_ise i naciskając klawisz enter.

instagram viewer

Jak widać, ISE ma widok podzielony, dzięki czemu można szybko pisać scenki, jednocześnie będąc w stanie zobaczyć wynik w dolnej połowie ISE.Dolna część ISE, w której drukowane są wyniki twojego skryptu, może być również używana jako monit REPL - podobnie jak w wierszu polecenia. V3 ISE wreszcie dodał wsparcie dla intellisense zarówno w okienku skryptu, jak i konsoli interaktywnej.

Alternatywnie, możesz wchodzić w interakcje z PowerShell za pomocą Konsoli PowerShell, która jest tym, czego użyję dla większości z tej serii. Konsola PowerShell zachowuje się podobnie do wiersza polecenia - wystarczy wprowadzić polecenia i wypluwa wyniki. Aby otworzyć konsolę Windows PowerShell, ponownie naciśnij kombinację klawiszy Win + R, aby otworzyć pole uruchamiania i wpisz polecenie powershell, a następnie naciśnij klawisz enter. Monity REPL

są niesamowite do natychmiastowej satysfakcji: wprowadzasz polecenie i otrzymujesz wyniki. Konsola nie oferuje intellisense, ale oferuje coś, co nazywa się uzupełnianiem kart, które działa tak samo - po prostu zacznij wpisywać polecenia i naciskaj tabulator, aby przełączać się między możliwymi dopasowaniami.

Korzystanie z systemu pomocy

W poprzednich wersjach programu PowerShell pliki pomocy były dołączane podczas instalowania systemu Windows. To było dobre rozwiązanie, ale pozostawiło nam znaczący problem. Kiedy zespół pomocy PowerShell musiał przestać pracować nad plikami pomocy, programiści PowerShell wciąż byli zajęci kodowaniem i wprowadzaniem zmian. Oznaczało to, że kiedy PowerShell został dostarczony, pliki pomocy były niepoprawne, ponieważ nie zawierały nowych zmian, które zostały wprowadzone w kodzie. Aby rozwiązać ten problem, program PowerShell 3 nie zawiera plików pomocy i zawiera system pomocy, który można zaktualizować.Oznacza to, że zanim zrobisz cokolwiek, będziesz chciał pobrać najnowsze pliki pomocy. Możesz to zrobić, otwierając konsolę PowerShell i uruchamiając:

Aktualizacja - Pomoc

Gratulujemy uruchomienia pierwszego polecenia PowerShell! Prawda jest taka, że ​​polecenie Update-Help ma o wiele więcej opcji niż po prostu uruchomienie go, a aby je zobaczyć, będziemy chcieli zobaczyć pomoc dla polecenia. Aby wyświetlić pomoc dotyczącą polecenia, wystarczy przekazać nazwę polecenia, które ma pomóc, do parametru Name polecenia Get-Help, na przykład:

Get-Help -Name Update-Help

Pewnie zastanawiasz się, jak interpretowaćcały ten tekst w każdym razie, mam na myśli, dlaczego w sekcji składni są dwie partie informacji i dlaczego jest tak wiele nawiasów w całym miejscu? Po pierwsze: powodem są dwa bloki informacji w sekcji składni, ponieważ reprezentują one różne sposoby uruchamiania polecenia. Są to technicznie zwane zestawy parametrów i można ich używać tylko na raz( nie można mieszać parametrów z różnych zestawów).Na powyższym zrzucie ekranu widać, że górny zestaw parametrów ma parametr SourcePath, a na dole nie. Powodem jest to, że używałbyś najwyższego zestawu parametrów( takiego, który zawiera SourcePath), gdybyś aktualizował pliki pomocy z innego komputera w sieci, który już je pobrał, podczas gdy nie musiałbyś określać ścieżki źródłowej, jeślichciałem tylko pobrać najnowsze pliki od Microsoftu.

Aby odpowiedzieć na drugie pytanie, istnieje pewna składnia, którą pomagają pliki pomocnicze i oto ona:

  • Nawiasy kwadratowe wokół nazwy parametru i jego typu oznaczają, że jest to parametr opcjonalny, a polecenie będzie działało bez niego.
  • Nawiasy kwadratowe wokół nazwy parametrów oznaczają, że parametry są parametrem pozycyjnym.
  • Obiekt po prawej stronie parametru w nawiasach kątowych informuje o typie danych oczekiwanym parametrze.

Chociaż powinieneś nauczyć się czytać składnię pliku pomocy, jeśli nie masz pewności co do konkretnego parametru, po prostu dopisz -Odniesienie do końca polecenia get help i przewiń w dół do sekcji parametrów, gdzie dowiesz się nieco więcej okażdy parametr.

Get-Help -Name Update-Help -Full

Ostatnią rzeczą, którą powinieneś wiedzieć o systemie pomocy, jest to, jak możesz go użyć do wykrywania poleceń, co w rzeczywistości jest bardzo łatwe. Widzisz, PowerShell akceptuje symbole wieloznaczne prawie wszędzie, więc ich użycie wraz z poleceniem Get-Help pozwala na łatwe wykrywanie poleceń.Na przykład, szukam poleceń, które dotyczą Usług Windows:

Get-Help -Name * service *

Oczywiście, wszystkie te informacje mogą nie być przydatne dla nietoperza, ale zaufaj mi, poświęć czas i naucz się korzystaćsystem pomocy. Przydaje się cały czas, nawet zaawansowanym skryptom, którzy robią to od lat.

Security

Nie byłoby to właściwe wprowadzenie bez wspominania o bezpieczeństwie. Największym zmartwieniem zespołu PowerShell jest to, że PowerShell staje się najnowszym i największym punktem ataków dla dzieci-skryptów. Wprowadzili kilka środków bezpieczeństwa, aby upewnić się, że tak się nie dzieje, więc spójrzmy na nie.

Najbardziej podstawową formą ochrony jest fakt, że rozszerzenie pliku PS1( rozszerzenie używane do oznaczenia skryptu PowerShell) nie jest zarejestrowane na hoście PowerShell, którego faktycznie zarejestrowano w Notatniku. Oznacza to, że dwukrotne kliknięcie pliku otworzy się za pomocą notatnika zamiast działać.

Po drugie, nie możesz uruchamiać skryptów z powłoki po prostu wpisując nazwę skryptu, musisz podać pełną ścieżkę do skryptu. Jeśli chcesz uruchomić skrypt na dysku C, musisz wpisać:

C: \ runme.ps1

Lub jeśli już jesteś w katalogu głównym dysku C, możesz użyć następującego:

. \ Runme.ps1

Wreszcie, PowerShell ma coś, co nazywa się zasadami wykonywania, co powstrzymuje cię od uruchamiania jakiegokolwiek starego skryptu. W rzeczywistości domyślnie nie można uruchamiać żadnych skryptów i trzeba zmienić zasady wykonywania, jeśli chcesz mieć możliwość ich uruchamiania. Istnieją 4 godne uwagi zasady wykonania:

  • Ograniczony : Jest to domyślna konfiguracja w PowerShell. To ustawienie oznacza, że ​​żaden skrypt nie może działać, niezależnie od jego podpisu. Jedyną rzeczą, którą można uruchomić w PowerShell przy tym ustawieniu, jest indywidualne polecenie.
  • AllSigned: To ustawienie umożliwia uruchamianie skryptów w PowerShell. Skrypt musi mieć powiązany podpis cyfrowy od zaufanego wydawcy. Przed uruchomieniem skryptów od zaufanych wydawców pojawi się monit.
  • RemoteSigned : To ustawienie umożliwia uruchamianie skryptów, ale wymaga, aby skrypt i pliki konfiguracyjne pobrane z Internetu miały powiązany podpis cyfrowy od zaufanego wydawcy. Skrypty uruchamiane z komputera lokalnego nie muszą być podpisywane. Przed uruchomieniem skryptu nie ma monitów.
  • Nieograniczony : Umożliwia uruchamianie niepodpisanych skryptów, w tym wszystkich skryptów i plików konfiguracyjnych pobranych z Internetu. Dotyczy to plików z Outlooka i Messengera. Ryzyko polega tutaj na uruchamianiu skryptów bez podpisu i bezpieczeństwa. Ponownie rozpoczęliśmy, że nigdy nie używałeś tego ustawienia.

Aby sprawdzić, jaka jest aktualna polityka wykonywania, otwórz konsolę PowerShell i wpisz:

Get-ExecutionPolicy

Dla tego kursu i większości innych okoliczności, zasady RemoteSigned są najlepsze, więc śmiało i zmień swoje zasady za pomocą następujących zasad.

Uwaga: Należy to zrobić z podwyższonej konsoli PowerShell.

Set-ExecutionPolicy RemoteSigned

To wszystko na ten czas ludzie, do zobaczenia jutro po więcej zabawy z PowerShell.

Disclaimer: Właściwym terminem dla polecenia PowerShell jest cmdlet i od teraz będziemy używać tej właściwej terminologii. Po prostu lepiej było nazwać je poleceniami do tego wprowadzenia.

Jeśli masz jakieś pytania, możesz tweetować mnie @taybgibb, lub po prostu zostawić komentarz.