Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00028 004559 13085741 na godz. na dobę w sumie
Windows PowerShell. Najlepsze praktyki - ebook/pdf
Windows PowerShell. Najlepsze praktyki - ebook/pdf
Autor: Liczba stron: 688
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-0481-9 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> systemy operacyjne >> powershell
Porównaj ceny (książka, ebook (-40%), audiobook).
PowerShell to naprawdę niezwykła konsola. Pozwala ona kontrolować system Windows i inne aplikacje oraz nimi zarządzać. Jest szczególnie doceniana przez zaawansowanych użytkowników i administratorów. Jeżeli chcesz poznać najlepsze sposoby wykorzystania konsoli PowerShell, ta książka jest dla Ciebie.

Sięgnij po nią i przekonaj się, jakie tajemnice kryje konsola Windows PowerShell oraz jak efektywnie skorzystać z jej możliwości. Poznaj moduł Active Directory, dzięki któremu przygotujesz skrypty pozwalające na wyszukiwanie kont. Naucz się konfigurować środowisko do wykonywania skryptów oraz zwinnie omiń typowe pułapki. Odkryj tajniki projektowania i wdrażania skryptów. Przekonaj się, jak przygotować pomoc do skryptu, opracować moduły oraz obsługiwać błędy. Dowiedz się, jak ustawić zasady wykonywania dla skryptu, uruchomić skrypt oraz kontrolować wersje. Książka ta będzie pożyteczną lekturą dla wszystkich użytkowników korzystających z Windows PowerShell każdego dnia!

Z książki tej dowiesz się jak: Wykorzystaj potencjał konsoli Windows PowerShell!
 
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Windows PowerShell Best Practices Tłumaczenie: Łukasz Piwko ISBN: 978-83-283-0478-9 Authorized translation from the English language edition: WINDOWS POWERSHELL BEST PRACTICES; ISBN 0735666490; by Ed Wilson; published by Microsoft Press, a division of Microsoft Corporation, Inc. Copyright © 2013 by Ed Wilson. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc., or Microsoft Press. Polish language edition published by HELION S.A., under license and with the permission of Pearson Education, Inc. Copyright © 2015. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/winpsp.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/winpsp Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:258)ci Przedmowa .................................................................................. 15 Wprowadzenie ............................................................................. 17 Cz(cid:218)(cid:258)(cid:202) I Podstawowe wiadomo(cid:258)ci o konsoli Windows PowerShell .........................21 Rozdzia(cid:239) 1. Przegl(cid:200)d mo(cid:285)liwo(cid:258)ci konsoli Windows PowerShell ..................... 23 Czym jest konsola Windows PowerShell ..................................................................23 Instalowanie konsoli Windows PowerShell ..............................................................25 Wdra(cid:285)anie konsoli Windows PowerShell .................................................................26 Polecenia cmdlet ................................................................................................27 U(cid:285)ywanie narz(cid:218)dzi wiersza polece(cid:241) .........................................................................28 Kwestie bezpiecze(cid:241)stwa dotycz(cid:200)ce konsoli Windows PowerShell ............................29 Kontrolowanie wykonywania polece(cid:241) cmdlet Windows PowerShell ...................30 Zatwierdzanie polece(cid:241) .......................................................................................30 Zawieszanie potwierdzenia wykonania polece(cid:241) cmdlet ......................................31 Praca z konsol(cid:200) Windows PowerShell ......................................................................31 W(cid:239)(cid:200)czanie konsoli Windows PowerShell ............................................................32 Konfigurowanie konsoli Windows PowerShell ...................................................33 Przekazywanie opcji do polece(cid:241) cmdlet ...................................................................34 Korzystanie z opcji pomocy ................................................................................35 Zdobywanie informacji w pomocy .....................................................................38 Dodatkowe (cid:283)ród(cid:239)a informacji ...................................................................................43 Rozdzia(cid:239) 2. Polecenia CIM .............................................................................. 45 Przegl(cid:200)danie klas us(cid:239)ugi WMI za pomoc(cid:200) polece(cid:241) CIM ............................................45 Sposób u(cid:285)ycia parametru classname ..................................................................45 Znajdowanie metod klas WMI ...........................................................................47 Filtrowanie klas wed(cid:239)ug kwalifikatora ................................................................48 Kup książkęPoleć książkę 6 Windows PowerShell. Najlepsze praktyki Wyszukiwanie egzemplarzy klas WMI .....................................................................49 Zmniejszanie liczby zwróconych w(cid:239)asno(cid:258)ci i egzemplarzy ...................................50 Usuwanie niepotrzebnych informacji ..................................................................51 Praca z klasami Association .....................................................................................52 Dodatkowe (cid:283)ród(cid:239)a informacji ...................................................................................57 Cz(cid:218)(cid:258)(cid:202) II Planowanie skryptów ........................................59 Rozdzia(cid:239) 3. Modu(cid:239) Active Directory ................................................................ 61 Podstawowe wiadomo(cid:258)ci o module Active Directory ...............................................61 Instalowanie modu(cid:239)u Active Directory ................................................................62 Rozpoczynanie pracy z modu(cid:239)em Active Directory ..............................................63 Zastosowanie modu(cid:239)u Active Directory ..............................................................63 Wyszukiwanie posiadaczy roli FSMO ..................................................................65 Dokumentowanie Active Directory .....................................................................70 Zmienianie nazw lokalizacji us(cid:239)ugi Active Directory ............................................73 Zarz(cid:200)dzanie u(cid:285)ytkownikami ...............................................................................74 Tworzenie u(cid:285)ytkownika .....................................................................................77 Znajdowanie kont u(cid:285)ytkowników i ich odblokowywanie ....................................78 Znajdowanie wy(cid:239)(cid:200)czonych u(cid:285)ytkowników ..........................................................80 Znajdowanie nieu(cid:285)ywanych kont u(cid:285)ytkowników ................................................81 Dodatkowe (cid:283)ród(cid:239)a informacji ...................................................................................85 Rozdzia(cid:239) 4. Znajdowanie mo(cid:285)liwo(cid:258)ci zastosowania skryptów ....................... 87 Automatyzowanie rutynowych zada(cid:241) ......................................................................87 Interfejs automatyzacji .............................................................................................88 Odczytywanie rejestru za pomoc(cid:200) metody RegRead ...........................................91 Odczytywanie rejestru za pomoc(cid:200) WMI .............................................................91 Odczytywanie rejestru za pomoc(cid:200) klas platformy .NET .......................................92 Macierzyste techniki Windows PowerShell do wykonywania niektórych zada(cid:241) .................................................................93 Wymagania strukturalne .........................................................................................96 Wymagania dotycz(cid:200)ce bezpiecze(cid:241)stwa ...................................................................96 Wykrywanie bie(cid:285)(cid:200)cego u(cid:285)ytkownika ..................................................................97 Wykrywanie roli u(cid:285)ytkownika ..........................................................................107 Wymagania dotycz(cid:200)ce wersji platformy .NET ...................................................111 Wymagania dotycz(cid:200)ce systemu operacyjnego ..................................................113 Wymagania dotycz(cid:200)ce aplikacji .......................................................................117 Wymagania dotycz(cid:200)ce modu(cid:239)ów .....................................................................118 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................119 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 7 Rozdzia(cid:239) 5. Konfigurowanie (cid:258)rodowiska skryptowego ................................ 121 Konfigurowanie profilu ..........................................................................................121 Tworzenie aliasów ...........................................................................................122 Tworzenie funkcji .............................................................................................125 Przes(cid:239)anianie istniej(cid:200)cych polece(cid:241) ....................................................................126 Przekazywanie wielu parametrów ....................................................................129 Tworzenie zmiennych ......................................................................................134 Tworzenie dysków PowerShell .........................................................................141 W(cid:239)(cid:200)czanie obs(cid:239)ugi skryptów ............................................................................146 Tworzenie profilu ..................................................................................................148 Wybór odpowiedniego profilu .........................................................................148 Tworzenie innych profili ...................................................................................150 U(cid:285)ywanie funkcji z innych skryptów .......................................................................152 Tworzenie biblioteki funkcji .............................................................................153 Do(cid:239)(cid:200)czanie pliku ..............................................................................................154 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................156 Rozdzia(cid:239) 6. Unikanie pu(cid:239)apek podczas pisania skryptów ............................. 157 Brak obs(cid:239)ugi polece(cid:241) .............................................................................................157 Skomplikowane konstruktory .................................................................................159 Kwestie dotycz(cid:200)ce zgodno(cid:258)ci wersji .......................................................................160 Sprawdzanie wersji systemu operacyjnego ......................................................165 Brak obs(cid:239)ugi WMI ..................................................................................................167 Praca z obiektami i przestrzeniami nazw ................................................................167 Pobieranie listy dostawców WMI ...........................................................................172 Praca z klasami WMI .............................................................................................173 Zmienianie ustawie(cid:241) ........................................................................................176 Modyfikowanie warto(cid:258)ci przez rejestr ..............................................................178 Brak obs(cid:239)ugi platformy .NET ..................................................................................182 U(cid:285)ywanie statycznych metod i w(cid:239)asno(cid:258)ci .........................................................182 Zale(cid:285)no(cid:258)(cid:202) od wersji .........................................................................................185 Brak obs(cid:239)ugi COM ............................................................................................185 Brak obs(cid:239)ugi aplikacji zewn(cid:218)trznych .................................................................191 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................195 Rozdzia(cid:239) 7. (cid:165)ledzenie mo(cid:285)liwo(cid:258)ci zastosowania skryptów .......................... 197 Ewaluacja potrzeby napisania skryptu ...................................................................197 Odczytywanie pliku tekstowego .......................................................................198 Eksportowanie historii polece(cid:241) ........................................................................204 Polecenia promieniste ......................................................................................205 Wysy(cid:239)anie zapyta(cid:241) do Active Directory ............................................................208 Po prostu u(cid:285)ywaj wiersza polece(cid:241) ...................................................................214 Kup książkęPoleć książkę 8 Windows PowerShell. Najlepsze praktyki Obliczanie korzy(cid:258)ci z u(cid:285)ycia skryptu .......................................................................217 Powtarzalno(cid:258)(cid:202) .................................................................................................218 Mo(cid:285)liwo(cid:258)(cid:202) opisania w dokumentacji ................................................................222 Zdolno(cid:258)(cid:202) do adaptacji ......................................................................................223 Wspó(cid:239)praca nad skryptami ....................................................................................227 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................227 Cz(cid:218)(cid:258)(cid:202) III Projektowanie skryptów ..................................229 Rozdzia(cid:239) 8. Projektowanie skryptów ............................................................ 231 Podstawowe wiadomo(cid:258)ci o funkcjach ...................................................................231 Definiowanie funkcji w celu u(cid:239)atwienia wielokrotnego wykorzystania kodu ...........240 Definiowanie funkcji z dwoma parametrami ....................................................244 Ograniczenia typu ............................................................................................249 Funkcje przyjmuj(cid:200)ce wi(cid:218)cej ni(cid:285) dwa parametry ......................................................252 Definiowanie logiki biznesowej w funkcjach ..........................................................254 Definiowanie funkcji w celu u(cid:239)atwienia modyfikacji skryptów ................................256 Podstawowe wiadomo(cid:258)ci o filtrach .......................................................................263 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................268 Rozdzia(cid:239) 9. Projektowanie pomocy do skryptów ......................................... 271 Dodawanie dokumentacji w komentarzach jednowierszowych ..............................271 Praca z folderami tymczasowymi .....................................................................277 U(cid:285)ywanie wielowierszowych znaczników komentarzowych w Windows PowerShell 4.0 ...................................................................................279 Tworzenie komentarzy wielowierszowych za pomoc(cid:200) znaczników komentarzowych ......................................................279 Tworzenie jednowierszowych komentarzy przy u(cid:285)yciu znaczników komentarzowych ......................................................280 U(cid:285)ywanie pomocy komentarzowej ........................................................................281 13 zasad pisania efektywnych komentarzy ............................................................286 Aktualizuj dokumentacj(cid:218) razem ze skryptem ....................................................287 Dodawaj komentarze podczas pisania kodu .....................................................288 Pisz z my(cid:258)l(cid:200) o u(cid:285)ytkownikach z ró(cid:285)nych krajów ...............................................288 Zamieszczaj informacje w nag(cid:239)ówku ................................................................290 Podaj list(cid:218) warunków u(cid:285)ywania .......................................................................291 Opisuj niedoskona(cid:239)o(cid:258)ci ....................................................................................292 Nie dodawaj zb(cid:218)dnych informacji ....................................................................293 Uzasadniaj powody napisania kodu .................................................................293 Zastosowanie komentarzy jednowierszowych ..................................................294 Unikaj komentarzy na ko(cid:241)cu wiersza ...............................................................295 Opisuj struktury zagnie(cid:285)d(cid:285)one .........................................................................295 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 9 U(cid:285)ywaj standardowego zestawu s(cid:239)ów kluczowych ..........................................296 Opisuj wszelkie dziwne fragmenty kodu ..........................................................297 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................300 Rozdzia(cid:239) 10. Projektowanie modu(cid:239)ów ........................................................... 301 Podstawowe wiadomo(cid:258)ci o modu(cid:239)ach ...................................................................301 Znajdowanie i (cid:239)adowanie modu(cid:239)ów .......................................................................302 Wy(cid:258)wietlanie listy dost(cid:218)pnych modu(cid:239)ów .........................................................302 (cid:146)adowanie modu(cid:239)ów .......................................................................................305 Instalowanie modu(cid:239)ów ..........................................................................................308 Tworzenie folderu na modu(cid:239)y ..........................................................................309 Sposób u(cid:285)ycia zmiennej $modulePath .............................................................311 Tworzenie dysku modu(cid:239)u .................................................................................313 Sprawdzanie zale(cid:285)no(cid:258)ci modu(cid:239)ów ....................................................................314 U(cid:285)ywanie modu(cid:239)ów pochodz(cid:200)cych z udzia(cid:239)ów .................................................318 Tworzenie modu(cid:239)u .................................................................................................319 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................325 Rozdzia(cid:239) 11. Obs(cid:239)uga wej(cid:258)cia i wyj(cid:258)cia .......................................................... 327 Wybór najlepszej metody pobierania danych .........................................................328 Wczytywanie danych z wiersza polece(cid:241) ...........................................................328 Sposób u(cid:285)ycia instrukcji Param ........................................................................335 Pobieranie hase(cid:239) na wej(cid:258)ciu .............................................................................348 Pobieranie (cid:239)a(cid:241)cuchów po(cid:239)(cid:200)czenia ....................................................................356 Monitowanie o informacje .....................................................................................357 Wybór najlepszej metody zwracania danych ..........................................................358 Wysy(cid:239)anie informacji na ekran .........................................................................360 Wysy(cid:239)anie wyników do pliku ...........................................................................366 Wysy(cid:239)anie danych równocze(cid:258)nie na ekran i do pliku ........................................367 Wysy(cid:239)anie wyników na adres e-mail ................................................................371 Wysy(cid:239)anie wyników z funkcji ...........................................................................371 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................377 Rozdzia(cid:239) 12. Obs(cid:239)uga b(cid:239)(cid:218)dów ......................................................................... 379 Obs(cid:239)uga brakuj(cid:200)cych parametrów .........................................................................380 Przypisywanie parametrowi warto(cid:258)ci domy(cid:258)lnej ..............................................380 Tworzenie parametrów obowi(cid:200)zkowych ..........................................................381 Ograniczanie mo(cid:285)liwo(cid:258)ci wyboru ...........................................................................382 Ograniczanie liczby opcji za pomoc(cid:200) metody PromptForChoice ........................382 Znajdowanie dost(cid:218)pnych komputerów za pomoc(cid:200) polecenia ping ...................384 Sprawdzanie zawarto(cid:258)ci tablicy za pomoc(cid:200) operatora -contains .......................385 Testowanie w(cid:239)asno(cid:258)ci za pomoc(cid:200) operatora -contains .....................................387 Kup książkęPoleć książkę 10 Windows PowerShell. Najlepsze praktyki Post(cid:218)powanie w przypadku braku uprawnie(cid:241) .......................................................389 Podejmowanie nieudanych prób ......................................................................391 Sprawdzanie, czy skrypt posiada potrzebne uprawnienia, i eleganckie ko(cid:241)czenie pracy .........................................................................393 Sposób u(cid:285)ycia instrukcji #Requires ..................................................................393 Post(cid:218)powanie w przypadku braku dostawców WMI ..............................................396 Niepoprawne typy danych .....................................................................................403 B(cid:239)(cid:218)dy zakresu ........................................................................................................408 Sposób u(cid:285)ycia funkcji sprawdzaj(cid:200)cej warto(cid:258)ci graniczne ..................................408 Ograniczanie dopuszczalnych warto(cid:258)ci parametru ............................................409 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................410 Rozdzia(cid:239) 13. Testowanie skryptów ................................................................. 411 Techniki testowania podstawowej sk(cid:239)adni .............................................................411 Szukanie b(cid:239)(cid:218)dów .............................................................................................415 Uruchamianie skryptu ......................................................................................417 Dokumentowanie pracy ...................................................................................419 Testowanie wydajno(cid:258)ci skryptów ..........................................................................421 Zapisywanie i przegl(cid:200)danie danych ..................................................................421 U(cid:285)ycie potoku Windows PowerShell ................................................................423 Szacowanie wydajno(cid:258)ci ró(cid:285)nych wersji skryptu ................................................426 Sposób u(cid:285)ycia parametrów standardowych ...........................................................434 Sposób u(cid:285)ycia parametru debug ......................................................................434 Sposób u(cid:285)ycia parametru Verbose ...................................................................436 Sposób u(cid:285)ycia parametru whatif ......................................................................437 Tworzenie dzienników za pomoc(cid:200) funkcji Start-Transcript ......................................441 Zaawansowane techniki testowania skryptów .......................................................443 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................445 Rozdzia(cid:239) 14. Dokumentowanie skryptów ....................................................... 447 Pobieranie dokumentacji z pomocy ........................................................................447 Pobieranie dokumentacji z komentarzy ..................................................................452 Sposób u(cid:285)ycia parsera AST ....................................................................................455 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................457 Cz(cid:218)(cid:258)(cid:202) IV Wdra(cid:285)anie skryptu ...........................................459 Rozdzia(cid:239) 15. Ustawianie zasad wykonywania skryptów ................................ 461 Wybór zasady wykonywania dla skryptu ...............................................................461 Przeznaczenie zasad wykonywania skryptów ...................................................462 Ró(cid:285)ne zasady wykonywania skryptów .............................................................462 Co to jest strefa internetowa ............................................................................463 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 11 Wdra(cid:285)anie zasady wykonywania skryptu ...............................................................465 Modyfikowanie rejestru ...................................................................................465 U(cid:285)ycie polecenia Set-ExecutionPolicy ...............................................................466 Wdra(cid:285)anie zasady wykonywania skryptów za pomoc(cid:200) zasady grupowej .........469 Podpisywanie kodu ...............................................................................................472 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................474 Rozdzia(cid:239) 16. Uruchamianie skryptów ............................................................. 475 Skrypty logowania .................................................................................................475 Co uwzgl(cid:218)dni(cid:202) w skryptach logowania ............................................................476 Metody wywo(cid:239)ywania skryptów logowania .....................................................480 Folder skryptów .....................................................................................................482 Wdra(cid:285)anie lokalne ...........................................................................................482 Lokalne wdra(cid:285)anie pakietu MSI .......................................................................482 Samodzielne skrypty ..............................................................................................483 Diagnostyka .....................................................................................................483 Raportowanie i kontrolowanie .........................................................................483 Skrypty pomocy technicznej ...................................................................................484 Unikaj edytowania ...........................................................................................484 Dostarcz dobrej jako(cid:258)ci pomoc .........................................................................484 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................487 Rozdzia(cid:239) 17. Kontrola wersji skryptów ........................................................... 489 Dlaczego warto stosowa(cid:202) kontrol(cid:218) wersji ..............................................................489 Unikanie wprowadzania b(cid:239)(cid:218)dów ......................................................................490 Precyzyjne usuwanie usterek ...........................................................................491 (cid:165)ledzenie zmian ...............................................................................................491 Lista skryptów .................................................................................................491 Zachowanie zgodno(cid:258)ci z innymi skryptami .......................................................491 Wewn(cid:218)trzny numer wersji w komentarzach .....................................................493 Programy do kontroli wersji ...................................................................................496 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................497 Rozdzia(cid:239) 18. Rejestrowanie wyników ............................................................ 499 Zapisywanie danych w pliku tekstowym ................................................................499 Projektowanie metody rejestrowania wyników skryptu ....................................500 Miejsce przechowywania tekstu .......................................................................509 Przechowywanie dzienników w lokalizacjach sieciowych .................................513 Zapisywanie danych w dzienniku zdarze(cid:241) .............................................................517 Sposób u(cid:285)ycia dziennika aplikacji .....................................................................519 Tworzenie w(cid:239)asnego dziennika zdarze(cid:241) ...........................................................519 Zapisywanie danych w rejestrze ............................................................................520 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................522 Kup książkęPoleć książkę 12 Windows PowerShell. Najlepsze praktyki Rozdzia(cid:239) 19. Rozwi(cid:200)zywanie problemów ze skryptami ................................. 523 Podstawy debugowania w Windows PowerShell ...................................................523 B(cid:239)(cid:218)dy sk(cid:239)adniowe .............................................................................................524 B(cid:239)(cid:218)dy wykonawcze ..........................................................................................524 B(cid:239)(cid:218)dy logiczne .................................................................................................527 Sposób u(cid:285)ycia polecenia Set-PSDebug ...................................................................530 (cid:165)ledzenie wykonywania skryptu ......................................................................531 Wykonywanie skryptu krok po kroku ...............................................................535 W(cid:239)(cid:200)czanie trybu (cid:258)cis(cid:239)ego ..................................................................................542 Debugowanie skryptów .........................................................................................545 Ustawianie punktów wstrzymania ...................................................................547 Reagowanie na punkty wstrzymania ................................................................555 Wy(cid:258)wietlanie listy punktów wstrzymania ........................................................556 W(cid:239)(cid:200)czanie i wy(cid:239)(cid:200)czanie punktów wstrzymania .................................................558 Usuwanie punktów wstrzymania .....................................................................559 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................561 Rozdzia(cid:239) 20. Praca w (cid:258)rodowisku Windows PowerShell ISE .......................... 563 Uruchamianie (cid:258)rodowiska Windows PowerShell ISE ..............................................563 Zawarto(cid:258)(cid:202) okna Windows PowerShell ISE ........................................................563 Praca w okienku skryptu ..................................................................................565 Rozwijanie nazw za pomoc(cid:200) klawisza Tab i funkcja IntelliSense .......................567 Sposób u(cid:285)ycia fragmentów kodu w (cid:258)rodowisku Windows PowerShell ISE .............569 Tworzenie skryptów przy u(cid:285)yciu gotowych fragmentów kodu ..........................569 Tworzenie nowych gotowych fragmentów kodu w Windows PowerShell ISE .....569 Usuwanie fragmentów kodu zdefiniowanych przez u(cid:285)ytkownika .....................570 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................571 Rozdzia(cid:239) 21. Narz(cid:218)dzia do pracy zdalnej i zadania Windows PowerShell ..... 573 Narz(cid:218)dzia do pracy zdalnej Windows PowerShell ..................................................573 Klasyczne sposoby pracy zdalnej ......................................................................573 Zdalne zarz(cid:200)dzanie systemem Windows ..........................................................583 Zadania Windows PowerShell ...............................................................................590 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................596 Rozdzia(cid:239) 22. Przep(cid:239)ywy pracy w Windows PowerShell .................................. 597 Do czego s(cid:239)u(cid:285)(cid:200) przep(cid:239)ywy pracy w Windows PowerShell .......................................597 Wymagania przep(cid:239)ywów pracy ........................................................................598 Prosty przep(cid:239)yw pracy ......................................................................................598 Równoleg(cid:239)e wykonywanie polece(cid:241) ........................................................................599 Aktywno(cid:258)ci przep(cid:239)ywów pracy ...............................................................................602 Polecenia Windows PowerShell jako aktywno(cid:258)ci ..............................................602 Niedozwolone polecenia rdzenne ....................................................................604 Kup książkęPoleć książkę SPIS TRE(cid:165)CI 13 Nieautomatyczne aktywno(cid:258)ci z polece(cid:241) ...........................................................604 Aktywno(cid:258)ci równoleg(cid:239)e ....................................................................................605 Ustalanie punktów kontrolnych dla przep(cid:239)ywów pracy w Windows PowerShell .....606 Czym s(cid:200) punkty kontrolne ................................................................................606 Tworzenie punktów kontrolnych ......................................................................606 Dodawanie punktów kontrolnych ....................................................................607 Dodawanie aktywno(cid:258)ci sekwencyjnej do przep(cid:239)ywu pracy .....................................609 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................611 Rozdzia(cid:239) 23. Us(cid:239)uga konfiguracji (cid:285)(cid:200)danego stanu programu PowerShell ...... 613 Podstawowe informacje o Us(cid:239)udze konfiguracji (cid:285)(cid:200)danego stanu programu PowerShell ...................................................................613 Proces DSC ......................................................................................................614 Parametry konfiguracji .....................................................................................617 Ustawianie zale(cid:285)no(cid:258)ci ......................................................................................618 Dane konfiguracji .............................................................................................619 Kontrolowanie dryfu konfiguracji ...........................................................................623 Dodatkowe (cid:283)ród(cid:239)a informacji .................................................................................625 O autorze ................................................................................... 627 Skorowidz .................................................................................. 629 Kup książkęPoleć książkę 14 Windows PowerShell. Najlepsze praktyki Kup książkęPoleć książkę Rozdzia(cid:239) 7 (cid:165)ledzenie mo(cid:285)liwo(cid:258)ci zastosowania skryptów (cid:132) Ocenianie, czy skrypt jest potrzebny (cid:132) Obliczanie korzy(cid:258)ci z zastosowania skryptu (cid:132) Wspó(cid:239)praca nad skryptami (cid:132) Dodatkowe (cid:283)ród(cid:239)a informacji Nale(cid:285)y (cid:258)ledzi(cid:202) mo(cid:285)liwo(cid:258)ci zastosowania skryptów, aby mie(cid:202) pewno(cid:258)(cid:202), (cid:285)e najbardziej korzystne skrypty zostan(cid:200) napisane najszybciej. Taki spis mo(cid:285)liwych do oskryptowania przypadków mo(cid:285)e efektywnie s(cid:239)u(cid:285)y(cid:202) do zarz(cid:200)dzania skryptami w przedsi(cid:218)biorstwie. Kluczem jest w(cid:239)a(cid:258)ciwe pos(cid:239)ugiwanie si(cid:218) tym zbiorem informacji. Ewaluacja potrzeby napisania skryptu Nie wszystko w konsoli Windows PowerShell 4.0, podobnie jak w Windows PowerShell 3.0, musi by(cid:202) oskryptowane. Programi(cid:258)ci j(cid:218)zyków Microsoft VBScrip i Perl cz(cid:218)sto maj(cid:200) odczucie, (cid:285)e w danej sytuacji powinni napisa(cid:202) skrypt. Ale wiele czynno(cid:258)ci mo(cid:285)na wykona(cid:202) w wierszu polece(cid:241) bez u(cid:285)ywania jakiegokolwiek skryptu. Jedn(cid:200) z wielkich zalet konsoli Windows PowerShell jest mo(cid:285)liwo(cid:258)(cid:202) u(cid:285)ywania instrukcji j(cid:218)zykowych bezpo(cid:258)rednio w wierszu polece(cid:241). Instrukcja for umo(cid:285)liwia tworzenie p(cid:218)tli, do obs(cid:239)ugi których w innych j(cid:218)zykach konieczne by(cid:239)oby napisanie skryptu. Aby u(cid:239)atwi(cid:202) prac(cid:218) w wierszu polece(cid:241), twórcy konsoli Windows PowerShell umo(cid:285)liwili dzielenie polece(cid:241) na kilka wierszy. Po zako(cid:241)czeniu wpisywania mo(cid:285)na po raz drugi nacisn(cid:200)(cid:202) klawisz Enter, aby je wykona(cid:202). Poni(cid:285)ej znajduje si(cid:218) polecenie wysy(cid:239)aj(cid:200)ce polecenie ping do wszystkich adresów IP z przedzia(cid:239)u od 192.168.2.1 do 192.168.2.10: PS C:\ for($i = 1 ; $i -le 10 ; $i++) { Test-Connection -Destination 192.168.2.$i -Count 1 -ErrorAction Silentlycontinue | Format-Table –property Address, statusCode, ResponseTime -AutoSize } Kup książkęPoleć książkę 198 Rozdzia(cid:239) 7. (cid:165)ledzenie mo(cid:285)liwo(cid:258)ci zastosowania skryptów Address statusCode ResponseTime ------- ---------- ------------ 192.168.2.1 0 1 Address statusCode ResponseTime ------- ---------- ------------ 192.168.2.3 0 2 Address statusCode ResponseTime ------- ---------- ------------ 192.168.2.5 0 0 Address statusCode ResponseTime ------- ---------- ------------ 192.168.2.10 0 10 Je(cid:258)li zastosuje si(cid:218) par(cid:218) sztuczek sk(cid:239)adni Windows PowerShell, np. aliasy, cz(cid:218)(cid:258)ciowe parametry i argumenty pozycyjne, powy(cid:285)sze polecenie mo(cid:285)na znacznie skróci(cid:202). Poni(cid:285)ej znajduje si(cid:218) w(cid:239)a(cid:258)nie taka skrócona wersja: 1..10 | {Test-Connection 10.1.1.$_ -cou 1 -ea 0 | ft Address, StatusCode, ResponseTime -au} Odczytywanie pliku tekstowego Najprostszy skrypt Windows PowerShell jest zbiorem polece(cid:241) PowerShell zapisanych w pliku o okre(cid:258)lonym rozszerzeniu. Je(cid:258)li kto(cid:258) nie chce pisa(cid:202) skryptu, mo(cid:285)e zapisa(cid:202) zbiór polece(cid:241) w pliku tekstowym, jak pokazano na rysunku 7.1. RYSUNEK 7.1. Plik zawieraj(cid:200)cy zbiór polece(cid:241) Windows PowerShell Przy u(cid:285)yciu konsoli Windows PowerShell mo(cid:285)na odczyta(cid:202) plik commands.txt i wykona(cid:202) znajduj(cid:200)ce si(cid:218) w nim polecenia za pomoc(cid:200) polecenia Get-Content, które s(cid:239)u(cid:285)y w(cid:239)a(cid:258)nie do pobierania polece(cid:241) z plików tekstowych. Domy(cid:258)lnym parametrem polecenia Get-Content jest path. Podczas pracy w wierszu polece(cid:241) nie trzeba go podawa(cid:202). (cid:165)cie(cid:285)ka mo(cid:285)e by(cid:202) lokalna lub nawet UNC (ang. Universal Naming Convention), pod warunkiem (cid:285)e ma si(cid:218) odpowiednie uprawnienia do odczytu pliku tekstowego. Najlepszym sposobem u(cid:285)ycia tej techniki jest przekazanie wyników do polecenia Invoke-Expression. Ka(cid:285)de polecenie przekazywane przez potok do tego polecenia zostaje przez nie wykonane, jak pokazano poni(cid:285)ej: Get-Content -Path C:\fso\Commands.txt | Invoke-Expression Wynik tego polecenia pokazano na rysunku 7.2. Kup książkęPoleć książkę Ewaluacja potrzeby napisania skryptu 199 RYSUNEK 7.2. Polecenia Windows PowerShell bez problemu przetwarzaj(cid:200) zawarto(cid:258)(cid:202) plików tekstowych i wykonuj(cid:200) znajduj(cid:200)ce si(cid:218) w nich polecenia Podczas korzystania z funkcji pracy zdalnej konsoli Windows PowerShell do pracy z niezaufan(cid:200) domen(cid:200) (cid:239)atwo si(cid:218) pomyli(cid:202) przy u(cid:285)ywaniu takich polece(cid:241) jak Get-Content. Parametr -path odnosi si(cid:218) do (cid:258)cie(cid:285)ki lokalnej dla komputera docelowego, a nie tego, z którego wykonuje si(cid:218) polecenie. W poni(cid:285)szym przyk(cid:239)adzie (cid:258)cie(cid:285)ka c:\fso\commands.txt wskazuje plik tekstowy o nazwie commands.txt znajduj(cid:200)cy si(cid:218) w folderze fso na dysku C komputera o nazwie Sydney w domenie Woodbridgebank.com. Je(cid:258)li plik ten nie zostanie tam znaleziony, wyst(cid:200)pi b(cid:239)(cid:200)d. PS C:\ invoke-command -ComputerName sydney.woodbridgebank.com -Credential administrator@woodbridgebank.com -ScriptBlock {get-content -Path C:\fso\Commands.txt | Invoke-Expression} Invoke-Command : Cannot find path C:\fso\Commands.txt because it does not exist.At line:1 char:15 + invoke-command -ComputerName sydney.woodbridgebank.com -Credential administrator@woodbridgebank.com -ScriptBlock {get-content -Path C:\fso\Commands.txt | Invoke-Expression} + CategoryInfo : ObjectNotFound: (C:\fso\Commands.txt:String) [Get-Content], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand Pewnie zastanawiasz si(cid:218), czy mo(cid:285)esz wskaza(cid:202) plik commands.txt na komputerze, z którego wykonywane jest polecenie, za pomoc(cid:200) (cid:258)cie(cid:285)ki UNC. Jako (cid:285)e zdalna domena jest niezaufana, nie ma (cid:285)adnego kontekstu zabezpiecze(cid:241), który pozwoli(cid:239)by zdalnemu poleceniu uzyska(cid:202) dost(cid:218)p do systemu plików komputera lokalnego. Polecenie znajduj(cid:200)ce si(cid:218) w parametrze ScriptBlock zostanie wykonane w kontek(cid:258)cie komputera docelowego, którym w tym przypadku jest Sydney.Woodbridgebank.com. Komputer lokalny, z którego wykonywane jest polecenie, nazywa si(cid:218) Windows 8.NWTraders.com. Jako (cid:285)e te dwie domeny nie maj(cid:200) zaufanych relacji, nie mo(cid:285)na poda(cid:202) danych po(cid:258)wiadczaj(cid:200)cych, które umo(cid:285)liwi(cid:239)yby wykonanie polecenia. Wynik próby wykonania polecenia przedstawiono poni(cid:285)ej: Kup książkęPoleć książkę 200 Rozdzia(cid:239) 7. (cid:165)ledzenie mo(cid:285)liwo(cid:258)ci zastosowania skryptów PS C:\ invoke-command -ComputerName sydney.woodbridgebank.com -Credential administrator@woodbridgebank.com -ScriptBlock {get-content -Path \\Windows 8\fso\Commands.txt | Invoke-Expression} Invoke-Command : Cannot find path \\Windows 8\fso\Commands.txt because it does not exist. At line:1 char:15 + invoke-command -ComputerName sydney.woodbridgebank.com -Credential administrator@woodbridgebank.com -ScriptBlock {get-content -Path \\Windows 8\fso\Commands.txt | Invoke-Expression} + CategoryInfo : ObjectNotFound: (\\Windows 8\fso\Commands.txt:String) [Get-Content],ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand Myl(cid:200)ce mo(cid:285)e by(cid:202) to, (cid:285)e polecenie Get-Content w pojedynk(cid:218) dzia(cid:239)a bardzo dobrze. Na komputerze o nazwie client1 zawieraj(cid:200)cym folder o nazwie bin, w którym znajduje si(cid:218) plik tekstowy o nazwie commands.txt, polecenie to zostanie wykonane, pod warunkiem (cid:285)e umie(cid:258)cimy je w pojedynczym cudzys(cid:239)owie, jak pokazano poni(cid:285)ej: PS C:\ Get-Content -Path \\client1\bin\Commands.txt Get-Service -Name bits -ComputerName Windows 8 Get-Process -Name explorer -ComputerName berlin Get-EventLog -LogName application -Newest 1 -ComputerName berlin,Windows 8 Invoke-Command -ComputerName Berlin { Get-Date } Get-Date Ale tego nale(cid:285)a(cid:239)o si(cid:218) spodziewa(cid:202), poniewa(cid:285) zalogowany u(cid:285)ytkownik ma uprawnienia dost(cid:218)pu do u(cid:285)ytego folderu, wi(cid:218)c mo(cid:285)e te(cid:285) wczyta(cid:202) za pomoc(cid:200) polecenia Get-Content (cid:258)cie(cid:285)k(cid:218) UNC do pliku commands.txt. Mo(cid:285)na zmapowa(cid:202) dysk na zdalnej domenie i skopiowa(cid:202) plik z lokalnego komputera do odpowiedniego folderu na serwerze zdalnym. Oczywi(cid:258)cie konieczne b(cid:218)dzie otwarcie dodatkowych portów w zaporze systemu Windows, co mo(cid:285)e, ale nie musi by(cid:202) wykonalne, w zale(cid:285)no(cid:258)ci od konfiguracji sieci. Je(cid:258)li zdecydujesz si(cid:218) na takie rozwi(cid:200)zanie, mo(cid:285)esz dokona(cid:202) zmian konfiguracyjnych za pomoc(cid:200) konsoli Windows PowerShell, jak pokazano poni(cid:285)ej: PS C:\ Invoke-Command -ComputerName Sydney.WoodBridgeBank.Com -Credential Administrator@WoodbridgeBank.com -ScriptBlock { netsh advfirewall firewall set rule group= File and Printer Sharing new enable=Yes } Updated 28 rule(s). Ok. Po wprowadzeniu wyj(cid:200)tku do zapory mo(cid:285)na zmapowa(cid:202) dysk przy u(cid:285)yciu graficznego interfejsu u(cid:285)ytkownika, polecenia Net Use z poziomu konsoli Windows PowerShell lub dowoln(cid:200) inn(cid:200) metod(cid:200). Po zmapowaniu dysku mo(cid:285)na skopiowa(cid:202) plik commands.txt na serwer za pomoc(cid:200) polecenia Copy-Item, jak pokazano poni(cid:285)ej: Copy-Item -Path C:\fso\Commands.txt -Destination z: UWAGA Podczas kopiowania obiektów na zmapowany dysk za pomoc(cid:241) polecenia Copy-Item nale(cid:276)y mie(cid:232) na uwadze struktur(cid:246) tego zmapowanego dysku. Cz(cid:246)sto mapuje si(cid:246) dyski w celu umo(cid:276)li- wienia u(cid:276)ywania ich na zdalnym komputerze. Zdalny udzia(cid:228) prawie zawsze jest udzia(cid:228)em folderu, a nie ca(cid:228)ego dysku. Jako (cid:276)e nasz dysk zdalny jest punktem mapowania jednego folderu, miejsce docelowe ulega zmianie. W poni(cid:276)szym poleceniu dysk Z jest udzia(cid:228)em folderu Fso na serwerze zdalnym. Parametr -destination kieruje do korzenia zmapowanego dysku, a nie do folderu Z:\fso. Kup książkęPoleć książkę Ewaluacja potrzeby napisania skryptu 201 Teraz mo(cid:285)na u(cid:285)y(cid:202) pliku commands.txt bezpo(cid:258)rednio w poleceniu Windows PowerShell, jak pokazano poni(cid:285)ej: PS C:\ invoke-command -ComputerName Sydney.WoodbridgeBank.com -Credential administrator@WoodBridgeBank.com -ScriptBlock { Get-Content -Path C:\fso\Commands.txt | Invoke-Expression } Jednym z rozwi(cid:200)za(cid:241) dylematu mapowania dysków jest u(cid:285)ycie pulpitu zdalnego, który umo(cid:285)liwia dost(cid:218)p do zasobów lokalnych, je(cid:258)li chcemy mie(cid:202) je dost(cid:218)pne w swojej sesji. Wybieraj(cid:200)c pulpit zdalny, klikaj(cid:200)c przycisk Options i wybieraj(cid:200)c kart(cid:218) Local resources, mo(cid:285)emy wybra(cid:202) po(cid:239)(cid:200)czenia drukarki, dost(cid:218)p do schowka oraz udost(cid:218)pni(cid:202) lokalne dyski w sesji RDP (ang. Remote Desktop Protocol). Ustawienia pulpitu zdalnego mo(cid:285)na otworzy(cid:202), klikaj(cid:200)c kolejno Start/Wszystkie programy/Akcesoria/ Pod(cid:239)(cid:200)czanie pulpitu zdalnego. Je(cid:258)li pulpit zdalny nie zosta(cid:239) jeszcze skonfigurowany, system wy(cid:258)wietli informacj(cid:218) o braku dost(cid:218)pu widoczn(cid:200) na rysunku 7.3. RYSUNEK 7.3. Odmowa dost(cid:218)pu podczas próby po(cid:239)(cid:200)czenia si(cid:218) z pulpitem zdalnym Aby w(cid:239)(cid:200)czy(cid:202) zdalny pulpit w systemach Microsoft Windows 2012 i Windows 2012 R2, nale(cid:285)y w mened(cid:285)erze serwera w w(cid:218)(cid:283)le Serwer lokalny wybra(cid:202) opcj(cid:218) Pulpit zdalny. W systemach Windows 8 i Windows 8.1 nale(cid:285)y w Panelu sterowania otworzy(cid:202) aplet System, klikn(cid:200)(cid:202) odno(cid:258)nik Ustawienia zdalne. Pojawi si(cid:218) okno dialogowe W(cid:239)a(cid:258)ciwo(cid:258)ci systemu z otwart(cid:200) kart(cid:200) Zdalny, jak wida(cid:202) na rysunku 7.4. RYSUNEK 7.4. Pulpit zdalny musi by(cid:202) w(cid:239)(cid:200)czony Kup książkęPoleć książkę 202 Rozdzia(cid:239) 7. (cid:165)ledzenie mo(cid:285)liwo(cid:258)ci zastosowania skryptów W dolnej cz(cid:218)(cid:258)ci okna znajduj(cid:200) si(cid:218) trzy opcje dotycz(cid:200)ce pulpitu zdalnego. Domy(cid:258)lnie po(cid:239)(cid:200)czenie z pulpitem zdalnym jest zabronione. Najbezpieczniejszym rozwi(cid:200)zaniem jest zaznaczenie opcji Zezwalaj na po(cid:239)(cid:200)czenia tylko z komputerów, na których Pulpit zdalny jest uruchomiony z uwierzytelnianiem na poziomie sieci (zalecane). Dodatkowo mo(cid:285)na okre(cid:258)li(cid:202), którzy u(cid:285)ytkownicy mog(cid:200) nawi(cid:200)zywa(cid:202) po(cid:239)(cid:200)czenie. Domy(cid:258)lnie uprawnienia takie maj(cid:200) wszyscy cz(cid:239)onkowie grupy administratorów domeny. Po w(cid:239)(cid:200)czeniu pulpitu zdalnego automatycznie zostanie utworzony wyj(cid:200)tek umo(cid:285)liwiaj(cid:200)cy przep(cid:239)yw ruchu RDP przez zapor(cid:218) systemu Windows. Warto dok(cid:239)adnie sprawdzi(cid:202), czy na pewno wyj(cid:200)tek zosta(cid:239) utworzony. Na rysunku 7.5 wida(cid:202) wyj(cid:200)tek zapory w systemie Windows 8.1. RYSUNEK 7.5. Pulpit zdalny musi mie(cid:202) wyj(cid:200)tek w zaporze systemu Windows Zapiski praktyka Brian Wilhite Premier Field Engineer (PFE), Microsoft Corporation W ramach swoich codziennych obowi(cid:200)zków administratora systemów pracuj(cid:200)cego w do(cid:258)(cid:202) du(cid:285)ej firmie cz(cid:218)sto musz(cid:218) rozwi(cid:200)zywa(cid:202) problemy wymagaj(cid:200)ce u(cid:285)ycia konsoli Windows PowerShell. Najcz(cid:218)(cid:258)ciej korzystam z Instrumentacji zarz(cid:200)dzania Windows (WMI), która jest moj(cid:200) ulubion(cid:200) technologi(cid:200) w systemach Windows. Konsola PowerShell u(cid:239)atwia prac(cid:218) z WMI na niespotykan(cid:200) wcze(cid:258)niej skal(cid:218). Jedn(cid:200) z najlepszych rzeczy, jakie mo(cid:285)na robi(cid:202) za pomoc(cid:200) narz(cid:218)dzi WMI i Windows PowerShell, jest tworzenie procesów na zdalnych komputerach. To bardzo przydatna mo(cid:285)liwo(cid:258)(cid:202) dla ka(cid:285)dego, kto musi instalowa(cid:202), aktualizowa(cid:202) lub odinstalowywa(cid:202) programy na komputerach z systemem Windows w swoim (cid:258)rodowisku, w którym nie ma programów do zarz(cid:200)dzania typu System Center Configuration Manager. Kup książkęPoleć książkę Ewaluacja potrzeby napisania skryptu 203 Ostatnio na naszych serwerach kto(cid:258) przez pomy(cid:239)k(cid:218) zainstalowa(cid:239) pewien program. Aby go szybko usun(cid:200)(cid:202), postanowi(cid:239)em za pomoc(cid:200) WMI zdalnie utworzy(cid:202) proces MSIExec.exe z ci(cid:200)giem dezinstalacji dla MSI. Ci(cid:200)g dezinstalacji (UninstallString) dla ka(cid:285)dego programu mo(cid:285)na znale(cid:283)(cid:202) w rejestrze, typowo w nast(cid:218)puj(cid:200)cej lokalizacji ( SID to identyfikator SID u(cid:285)ytkownika, z którym zosta(cid:239) zainstalowany dany program, a GUID produktu to niepowtarzalny identyfikator interesuj(cid:200)cego nas produktu): HKLM\SOFTWARE\Microsoft\Windows\ CurrentVersion\Installer\UserData\ SID \Products\ GUID produktu \InstallProperties. W ten sposób mo(cid:285)na znale(cid:283)(cid:202) ci(cid:200)g dezinstalacji (UninstallString) wybranego programu, który chcemy usun(cid:200)(cid:202) z systemu. Usun(cid:200)(cid:239)em prawdziwy identyfikator GUID produktu, aby nie oczernia(cid:202) niewinnej firmy: MsiExec.exe /X{ GUID produktu } /quiet W tym przypadku wiem, bo to sprawdzi(cid:239)em, (cid:285)e prze(cid:239)(cid:200)cznik /quiet zadzia(cid:239)a dla produktu, który chc(cid:218) usun(cid:200)(cid:202). Ale Ty mo(cid:285)esz mie(cid:202) inne do(cid:258)wiadczenia. Do wykonania tego zadania u(cid:285)yjemy polecenia Invoke-WmiMethod. Ponadto u(cid:285)yjemy metody Create klasy Win32_Process w celu utworzenia procesu na zdalnym komputerze. Najlepiej mie(cid:202) w(cid:239)(cid:200)czone narz(cid:218)dzia do pracy zdalnej Windows PowerShell w swoim komputerze, ale je(cid:258)li nie s(cid:200) w(cid:239)(cid:200)czone, nie panikuj. Opisuj(cid:218) kilka technik realizacji tego zadania. W pierwszej technice przyj(cid:200)(cid:239)em za(cid:239)o(cid:285)enie, (cid:285)e na docelowych komputerach zdalnych w(cid:239)(cid:200)czone s(cid:200) narz(cid:218)dzia do pracy zdalnej Windows PowerShell. Zmienna $Computers zawiera zbiór nazw komputerów, których u(cid:285)yjemy jako urz(cid:200)dze(cid:241) docelowych: Invoke-Command -ScriptBlock { Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList MsiExec.exe /X{ Product GUID } /quiet } -ComputerName $Computers Drug(cid:200) technik(cid:218) mo(cid:285)na zastosowa(cid:202), gdy narz(cid:218)dzia do pracy zdalnej Windows PowerShell na komputerach zdalnych nie s(cid:200) w(cid:239)(cid:200)czone: $Computers | ForEach-Object { Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList MsiExec.exe /X{ Product GUID } /quiet -ComputerName $_} Z w(cid:239)asnego do(cid:258)wiadczenia wiem, (cid:285)e w takich sytuacjach jak ta, gdy komputerów s(cid:200) setki lub nawet tysi(cid:200)ce, bardziej niezawodnym rozwi(cid:200)zaniem jest przekazanie nazw komputerów do polecenia ForEach-Object zamiast przekazywania ca(cid:239)ej listy do parametru ComputerName. Oba przedstawione rozwi(cid:200)zania powinny zwróci(cid:202) obiekt zawieraj(cid:200)cy ReturnValue i ProcessId. Je(cid:258)li tworzenie procesu powiedzie si(cid:218), ReturnValue b(cid:218)dzie mie(cid:202) warto(cid:258)(cid:202) 0. Zero wskazuje, (cid:285)e proces zosta(cid:239) utworzony, ale nie mówi nic o tym, czy dezinstalacja si(cid:218) powiod(cid:239)a. Dlatego nale(cid:285)y to jeszcze sprawdzi(cid:202) w dziennikach zdarze(cid:241) wszystkich systemów. Kup książkęPoleć książkę 204 Rozdzia(cid:239) 7. (cid:165)ledzenie mo(cid:285)liwo(cid:258)ci zastosowania skryptów Eksportowanie historii polece(cid:241) Wiele prac administracyjnych wykonywanych przy u(cid:285)yciu konsoli Windows PowerShell polega na wpisywaniu serii polece(cid:241) w konsoli. Niezale(cid:285)nie od tego, czy edytujemy rejestr, czy zatrzymujemy ró(cid:285)ne procesy i us(cid:239)ugi, aby zapewni(cid:202) spójne (cid:258)rodowisko operacyjne, nale(cid:285)y skopiowa(cid:202) prace konfiguracyjne na kilka ró(cid:285)nych serwerów. W przesz(cid:239)o(cid:258)ci trzeba by(cid:239)o do tego tworzy(cid:202) skrypty. Je(cid:258)li polecenia do zduplikowania s(cid:200) seri(cid:200) polece(cid:241) wpisywanych w konsoli, mo(cid:285)na obej(cid:258)(cid:202) si(cid:218) bez skryptu, eksportuj(cid:200)c histori(cid:218) polece(cid:241) do pliku .xml za pomoc(cid:200) polecenia Get-History, jak pokazano poni(cid:285)ej: Get-History | Export-Clixml -Path C:\fso\history.xml Wynikiem tego polecenia jest plik .xml zawieraj(cid:200)cy wszystkie polecenia, jakie wpisano w konsoli. Na rysunku 7.6 wida(cid:202) zawarto(cid:258)(cid:202) takiego przyk(cid:239)adowego pliku: RYSUNEK 7.6. Plik .xml z histori(cid:200) polece(cid:241) Polecenia z tego pliku mo(cid:285)na importowa(cid:202) za pomoc(cid:200) polecenia Import-Clixml. Jego wynik przekazuje si(cid:218) do polecenia Add-History, aby polecenia zawarte w zaimportowanym pliku doda(cid:202) do historii konsoli. Nale(cid:285)y u(cid:285)y(cid:202) prze(cid:239)(cid:200)cznika -passthru, aby polecenia przekaza(cid:202) zarówno do polecenia Add-History, jak i ForEach-Object. W poleceniu ForEach-Object mo(cid:285)na wykona(cid:202) ka(cid:285)de polecenie z historii za pomoc(cid:200) polecenia Invoke-History. Poni(cid:285)ej przedstawiono opisywany zestaw polece(cid:241) wraz z wynikiem jego wykonania: PS C:\ Import-Clixml -Path C:\fso\history.xml | Add-History -Passthru | ForEach-Object { Invoke-History } if(!(test-path -path c:\fso4)) { new-item c:\fso4 -ItemType directory } Directory: C:\ Kup książkęPoleć książkę Ewaluacja potrzeby napisania skryptu 205 Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 1/9/2009 12:33 AM fso4 Get-Command C:\fso4\commands.txt notepad C:\fso4\commands.txt Technik(cid:218) t(cid:218) mo(cid:285)na te(cid:285) zastosowa(cid:202) zdalnie, pos(cid:239)uguj(cid:200)c si(cid:218) poleceniem Invoke-Command. Pami(cid:218)taj, (cid:285)e (cid:258)cie(cid:285)ka path jest wzgl(cid:218)dna w odniesieniu do komputera b(cid:218)d(cid:200)cego celem, a nie komputera wykonuj(cid:200)cego polecenie. Je(cid:258)li o tym zapomnisz, wyst(cid:200)pi b(cid:239)(cid:200)d, jak wida(cid:202) na rysunku 7.7. RYSUNEK 7.7. B(cid:239)(cid:200)d spowodowany u(cid:285)yciem lokalnych (cid:258)cie(cid:285)ek do plików Je(cid:258)li najpierw skopiujesz plik na komputer docelowy i dostosujesz swój wiersz polece(cid:241), to technika polegaj(cid:200)ca na zaimportowaniu i wykonaniu historii sprawdzi si(cid:218) wy(cid:258)mienicie. Zalet(cid:200) konsoli Windows PowerShell jest to, (cid:285)e z poleceniem Copy-Item mo(cid:285)na u(cid:285)ywa(cid:202) (cid:258)cie(cid:285)ek UNC. W(cid:239)a(cid:258)nie to sprawia, (cid:285)e technika ta jest godna uwagi, poniewa(cid:285) umo(cid:285)liwia (cid:239)atwe przenoszenie plików na zdalny komputer, jak wida(cid:202) poni(cid:285)ej: PS C:\ Copy-Item C:\fso\history.xml \\berlin\c$\fso PS C:\ Import-Clixml -Path C:\fso\history.xml | Add-History -Passthru | ForEach -Object { Invoke-History } if(!(test-path -path c:\fso4)) { new-item c:\fso4 -ItemType directory } Directory: C:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 1/9/2009 12:40 AM fso4 Get-Command C:\fso4\commands.txt notepad C:\fso4\commands.txt Polecenia promieniste Polecenia promieniste (ang. fan-out command) to takie, które uruchamia si(cid:218) z centralnego komputera na pewnej liczbie zdalnych komputerów. Jednym ze sposobów ich wykonywania jest u(cid:285)ycie polecenia Invoke-Command, jak pokazano poni(cid:285)ej: PS C:\ Invoke-Command -Computer berlin,Windows 8 -Script { $env:computername $(get-date) } WINDOWS 8 01/09/2009 08:31:42 BERLIN 01/09/2009 08:31:47 Kup książkęPoleć książkę 206 Rozdzia(cid:239) 7. (cid:165)ledzenie mo(cid:285)liwo(cid:258)ci zastosowania skryptów W sposób promienisty mo(cid:285)na wykona(cid:202) wiele polece(cid:241), przekazuj(cid:200)c im tablic(cid:218) nazw komputerów jako parametr -computername. Wad(cid:200) tej metody jest to, (cid:285)e zwrócone wyniki s(cid:200) prawie bezu(cid:285)yteczne. Najlepiej wyt(cid:239)umaczy(cid:202) to na konkretnym przyk(cid:239)adzie. Poni(cid:285)ej u(cid:285)yto polecenia Get-Service do pobrania informacji o konfiguracji us(cid:239)ug z dwóch komputerów. Pierwszy z nich nazywa si(cid:218) Windows 8, a drugi Berlin. Jak wida(cid:202), wyniki polecenia dla tych dwóch komputerów s(cid:200) pomieszane i nie ma kolumny informuj(cid:200)cej, do którego komputera odnosi si(cid:218) dana informacja. W zwi(cid:200)zku z tym wynik ten jest przydatny tylko w tym wzgl(cid:218)dzie, (cid:285)e pozwala szybko przejrze(cid:202) us(cid:239)ugi na dwóch komputerach i znale(cid:283)(cid:202) ró(cid:285)nice w ich konfiguracji. Poni(cid:285)ej znajduje si(cid:218) omawiane polecenie i cz(cid:218)(cid:258)(cid:202) zwróconego przez nie wyniku: PS C:\ Get-Service -ComputerName Windows 8, Berlin Status Name DisplayName ------ ---- ----------- Running 1-vmsrvc Virtual Machine Additions Services ... Running 1-vmsrvc Virtual Machine Additions Services ... Running AeLookupSvc Application Experience Stopped AeLookupSvc Application Experience Stopped ALG Application Layer Gateway Service Stopped ALG Application Layer Gateway Service Stopped Appinfo Application Information Stopped Appinfo Application Information Stopped AppMgmt Application Management Stopped AppMgmt Application Management Stopped AudioEndpointBu... Windows Audio Endpoint Builder Stopped AudioEndpointBu... Windows Audio Endpoint Builder Stopped Audiosrv Windows Audio Stopped Audiosrv Windows Audio Running BFE Base Filtering Engine Running BFE Base Filtering Engine Running BITS Background Intelligent Transfer Ser... Stopped BITS Background Intelligent Transfer Ser... Stopped Browser Computer Browser Running Browser Computer Browser reszta wyników opuszczona Jak wida(cid:202) w powy(cid:285)szych danych, na jednym komputerze us(cid:239)uga AeLookupSvc jest uruchomiona, a na drugim zatrzymana. Aby dowiedzie(cid:202) si(cid:218), na którym dzia(cid:239)a, a na którym nie, wystarczy u(cid:285)y(cid:202) polecenia Get-Service. PS C:\ Get-Service -Name AeLookupSvc -computer Windows 8 Status Name DisplayName ------ ---- ----------- Stopped AeLookupSvc Application Experience PS C:\ Get-Service -Name AeLookupSvc -computer Berlin Status Name DisplayName ------ ---- ----------- Running AeLookupSvc Application Experience Mo(cid:285)esz pomy(cid:258)le(cid:202), (cid:285)e pierwsze wyst(cid:200)pienie nazwy us(cid:239)ugi nale(cid:285)y do komputera, który jest pierwszy na li(cid:258)cie. Ale jak wida(cid:202), us(cid:239)uga AeLookupSvc jest uruchomiona na komputerze Berlin, a zatrzymana na komputerze Windows 8. W wyniku jest w(cid:239)a(cid:258)nie taka kolejno(cid:258)(cid:202), ale w poleceniu promienistym najpierw wymieniony jest komputer Windo
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Windows PowerShell. Najlepsze praktyki
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: