Windows PowerShell. Przewodnik po skryptach. Ed Wilson
|
|
- Eleonora Górecka
- 7 lat temu
- Przeglądów:
Transkrypt
1 Windows PowerShell Przewodnik po skryptach Ed Wilson
2 Windows PowerShell Przewodnik po skryptach Edycja polska Microsoft Press Original English language edition 2008 by Ed Wilson Tytuł oryginału: Windows PowerShell Scripting Guide Polish edition by APN PROMISE Sp. z o. o. Warszawa 2008 APN PROMISE Sp. z o. o., biuro: Warszawa, ul. Zielna 39 tel. (022) ; fax (022) mspress@promise.pl Wszystkie prawa zastrzeżone. Żadna część niniejszej książki nie może być powielana ani rozpowszechniana w jakiejkolwiek formie i w jakikolwiek sposób (elektroniczny, mechaniczny), włącznie z fotokopiowaniem, nagrywaniem na taśmy lub przy użyciu innych systemów bez pisemnej zgody wydawcy. Microsoft, Microsoft Press, Active Directory, ActiveX, Excel, Internet Explorer, MSDN, MSN, Outlook, SQL Server, Visual Basic, Windows, Windows NT, Windows PowerShell, Windows Server, Windows Vista oraz Zune są zarejestrowanymi znakami towarowymi Microsoft Corporation. Wszystkie inne nazwy handlowe i towarowe występujące w niniejszej publikacji mogą być znakami towarowymi zastrzeżonymi lub nazwami zastrzeżonymi odpowiednich firm odnośnych właścicieli. Przykłady firm, produktów, osób i wydarzeń opisane w niniejszej książce są fikcyjne i nie odnoszą się do żadnych konkretnych firm, produktów, osób i wydarzeń. Ewentualne podobieństwo do jakiejkolwiek rzeczywistej firmy, organizacji, produktu, nazwy domeny, adresu poczty elektronicznej, logo, osoby, miejsca lub zdarzenia jest przypadkowe i niezamierzone. APN PROMISE Sp. z o. o. dołożyła wszelkich starań, aby zapewnić najwyższą jakość tej publikacji. Jednakże nikomu nie udziela się rękojmi ani gwarancji. APN PROMISE Sp. z o. o. nie jest w żadnym wypadku odpowiedzialna za jakiekolwiek szkody będące następstwem korzystania z informacji zawartych w niniejszej publikacji, nawet jeśli APN PROMISE została powiadomiona o możliwości wystąpienia szkód. ISBN: Przekład: Krzysztof Szkudlarek, Jowita Chościłowicz, Barbara Piątkowska, Tomasz Sochacki Redakcja: Marek Włodarz Korekta: Ewa Swędrowska Skład i łamanie: MAWart Marek Włodarz
3 Książkę tę dedykuję Teresie. Tak się cieszę, że zdecydowałaś się dzielić swoje życie ze mną.
4 Spis treści Podziękowania... xi Wstęp... xiii Czy ta książka jest dla mnie?...xiv Korzystanie z obrazu dysku CD...xiv Wymagania systemowe...xv Pomoc techniczna...xvi 1 Powłoka programu Windows PowerShell... 1 Instalowanie programu Windows PowerShell... 1 Sprawdzanie instalacji za pomocą skryptu w języku VBScript... 1 Wdrażanie programu Windows PowerShell... 2 Interakcja z powłoką... 4 Omówienie narzędzi wiersza poleceń typu Cmdlet... 6 Konfigurowanie programu Windows PowerShell... 7 Tworzenie profilu programu Windows PowerShell... 7 Konfigurowanie opcji uruchamiania programu Windows PowerShell... 7 Kwestie bezpieczeństwa w programie Windows PowerShell... 8 Kontrolowanie działania poleceń typu Cmdlet... 8 Potwierdzanie poleceń...10 Zawieszanie potwierdzeń wykonywania poleceń typu Cmdlet...12 Przekazywanie opcji dla poleceń typu cmdlet...14 Korzystanie z polecenia Get-Help (Pobierz pomoc)...15 Praca z aliasami i przypisywanie skróconych nazw poleceniom typu cmdlet...18 Dodatkowe zastosowania poleceń typu cmdlet...19 Korzystanie z polecenia Get-ChildItem...21 Formatowanie wyjścia...21 Stosowanie polecenia cmdlet Get-Command...29 Eksploracja obiektów przy użyciu polecenia Get-Member...32 Podsumowanie Skrypty programu Windows PowerShell...37 Dlaczego warto korzystać ze skryptów?...37 Konfigurowanie zasady obsługi skryptów...40 Uruchamianie skryptów programu Windows PowerShell...43 Stosowanie zmiennych...44 Stosowanie stałych...45 Używanie instrukcji sterujących...46 Dodawanie parametrów do polecenia ForEach-Object...47 Stosowanie parametru Begin...47 Stosowanie parametru Process...48
5 Spis treści v Stosowanie parametru End...48 Używanie instrukcji For...48 Używanie instrukcji służących do podejmowania decyzji...49 Używanie instrukcji If Elseif Else...50 Używanie instrukcji Switch...51 Praca z typami danych...55 Odkrywamy możliwości wyrażeń regularnych...59 Używanie argumentów podawanych w wierszu poleceń...63 Podsumowanie Zarządzanie dziennikami...65 Identyfikowanie dzienników zdarzeń...65 Odczytywanie dzienników zdarzeń...66 Eksportowanie do pliku tekstowego...67 Eksportowanie do pliku w formacie XML...69 Przeglądanie ogólnych plików dzienników...71 Analizowanie kilku dzienników...72 Pobieranie pojedynczego wpisu z dziennika zdarzeń...73 Przeszukiwanie dziennika zdarzeń...76 Filtrowanie zdarzeń według właściwości...77 Wybór źródła zdarzeń...77 Wybór stopnia ważności zdarzeń...78 Wybieranie komunikatów...78 Zarządzanie dziennikiem zdarzeń...79 Identyfikowanie źródeł zdarzeń...79 Modyfikowanie ustawień dziennika zdarzeń...80 Analizowanie dziennika zdarzeń podsystemu WMI...84 Zmienianie poziomu rejestrowania podsystemu WMI...84 Korzystanie z programu narzędziowego do obsługi zdarzeń systemu Windows Windows Event Command-Line Utility...85 Zapisywanie informacji w dziennikach zdarzeń...86 Tworzenie źródła zdarzeń...86 Umieszczanie w dzienniku wyników zwracanych przez polecenia typu cmdlet...87 Tworzenie własnych dzienników zdarzeń...89 Podsumowanie Zarządzanie usługami...91 Dokumentowanie istniejących usług...91 Praca z działającymi usługami...92 Zapisywanie wyników w pliku tekstowym...93 Zapisywanie wyników w bazie danych...96 Ustawianie konfiguracji usług Akceptowanie argumentów podawanych w wierszu poleceń Zatrzymywanie usług Poprawne zatrzymywanie usług Uruchamianie usług
6 vi Spis treści Poprawne uruchamianie usług Utrzymywanie pożądanej konfiguracji usług Sprawdzanie, czy właściwe usługi są zatrzymane Odczytywanie pliku i sprawdzanie stanu usług Sprawdzanie, czy właściwe usługi są uruchomione Sprawdzanie konfiguracji usług Tworzenie raportu o wyjątkach Podsumowanie Zarządzanie udziałami Dokumentowanie udziałów Dokumentowanie udziałów użytkownika Zapisywanie informacji o udziałach w pliku tekstowym Dokumentowanie udziałów administracyjnych Zapisywanie informacji o udziałach w bazie danych programu Microsoft Access Prowadzenie inspekcji udziałów Modyfikowanie udziałów Używanie w skrypcie parametrów Tłumaczenie kodu powrotu Tworzenie nowych udziałów Tworzenie kilku udziałów Usuwanie udziałów Usuwanie tylko niedozwolonych udziałów Podsumowanie Zarządzanie drukarkami Tworzenie spisu zainstalowanych drukarek Odpytywanie wielu komputerów Rejestrowanie do pliku Zapisywanie informacji w bazie danych programu Microsoft Access Raportowanie portów drukarek Identyfikowanie sterowników drukarek Instalowanie sterowników drukarek Instalowanie znalezionych na komputerze sterowników drukarki Instalowanie sterowników drukarek, których nie znaleziono na komputerze Podsumowanie Bieżące administrowanie komputerami osobistymi Utrzymywanie właściwego stanu komputerów osobistych Tworzenie spisu dysków Zapisywanie informacji o konfiguracji dysków, w bazie danych programu Microsoft Access Praca z partycjami Dopasowywanie dysków i partycji Praca z dyskami logicznymi
7 Spis treści vii Monitorowanie stopnia wykorzystania przestrzeni dyskowej Rejestrowanie informacji o zajętości przestrzeni dyskowej, w bazie danych Monitorowanie czasu życia plików Monitorowanie wydajności Korzystanie z klas liczników wydajności Identyfikowanie źródeł błędów stronicowania Podsumowanie Praca z siecią Praca z ustawieniami sieci Raportowanie ustawień sieci Odczytywanie konfiguracji kart sieciowych Filtrowanie tylko właściwości posiadających wartość Konfigurowanie ustawień karty sieciowej Wykrywanie obecności kilku kart sieciowych Zapisywanie informacji o kartach sieciowych w arkuszu kalkulacyjnym programu Microsoft Excel Identyfikowanie podłączonych kart sieciowych Ustawianie statycznego adresu IP Włączanie obsługi protokołu DHCP Konfigurowanie zapory ogniowej systemu Windows Raportowanie ustawień zapory ogniowej Konfigurowanie ustawień zapory ogniowej Podsumowanie Konfigurowanie ustawień pulpitu Problemy związane ustawieniami konfiguracyjnymi pulpitu Konfigurowanie wygaszaczy ekranu Prowadzenie inspekcji wygaszaczy ekranu Wyświetlanie tylko właściwości posiadających wartość Tworzenie raportów z informacjami o zabezpieczonych wygaszaczach ekranu.271 Zarządzanie opcjami zasilania komputerów osobistych Modyfikowanie schematu zasilania Podsumowanie Rozwiązywanie problemów występujących po zakończeniu wdrożenia Konfigurowanie daty i godziny Zdalne konfigurowanie daty i godziny Rejestrowanie rezultatów w dzienniku zdarzeń Konfigurowanie źródła czasu Korzystanie z polecenia Net Time Command Sprawdzanie źródła czasu poprzez odpytywanie rejestru systemu Włączanie kont użytkowników Tworzenie lokalnego konta użytkownika Tworzenie użytkownika lokalnego
8 viii Spis treści Tworzenie lokalnej grupy użytkowników Konfigurowanie wygaszacza ekranu Zmienianie nazwy komputera Wyłączanie lub ponowne uruchamianie komputera zdalnego Podsumowanie Zarządzanie danymi użytkowników Praca z kopiami zapasowymi Konfigurowanie plików trybu offline Włączenie funkcji plików trybu offline Praca z punktami przywracania systemu Odczytywanie ustawień funkcji przywracania systemu Wyświetlanie listy dostępnych punktów przywracania systemu Podsumowanie Rozwiązywanie problemów związanych z systemem Windows Rozwiązywanie problemów związanych z uruchamianiem systemu Sprawdzanie konfiguracji rozruchowej Sprawdzanie konfiguracji usług uruchamianych podczas uruchamiania systemu Wyświetlanie zależności pomiędzy usługami Sprawdzanie konfiguracji sterowników urządzeń uruchamianych podczas uruchamiania systemu Analizowanie procesów uruchamianych za pomocą grupy Autostart Analizowanie problemów sprzętowych Rozwiązywanie problemów związanych z funkcjonowaniem sieci Podsumowanie Zarządzanie kontami użytkowników domeny Tworzenie jednostek organizacyjnych Tworzenie kont użytkowników domeny Modyfikowanie atrybutów użytkownika Modyfikowanie ogólnych informacji o użytkowniku Modyfikowanie atrybutów dostępnych na zakładce Address (Adres) Modyfikowanie atrybutów dostępnych na zakładce Profile (Profil) Modyfikowanie atrybutów dostępnych na zakładce Telephone Modyfikowanie atrybutów dostępnych na zakładce Organization Modyfikowanie pojedynczych atrybutów użytkowników Tworzenie kont użytkowników na podstawie pliku w formacie.csv Ustawianie hasła Włączanie konta użytkownika Tworzenie grup domenowych Dodawanie użytkownika do grupy domenowej Dodawanie wielu użytkowników z wieloma atrybutami Podsumowanie
9 Spis treści ix 14 Konfigurowanie usługi klastrowania Analizowanie konfiguracji sklastrowanych serwerów Tworzenie raportu z informacjami o konfiguracji klastra Tworzenie raportu z informacjami o konfiguracji węzła Odpytywanie kilku klas związanych z usługą klastra Zarządzanie węzłami Dodawanie i wykluczanie węzłów Usuwanie klastra Podsumowanie Zarządzanie internetowymi usługami informacyjnymi Włączanie możliwości zarządzania internetowymi usługami informacyjnymi Tworzenie raportu z informacjami o konfiguracji usługi IIS Tworzenie raportów z informacjami o konfiguracji witryny Tworzenie raportów z informacjami o konfiguracji puli aplikacji Tworzenie raportów z informacjami o wartościach domyślnych puli aplikacji Tworzenie raportów z informacjami o limitach witryny Tworzenie listy katalogów wirtualnych Tworzenie nowej witryny webowej Tworzenie nowej puli aplikacji Uruchamianie i zatrzymywanie witryn webowych Podsumowanie Praca z magazynem certyfikatów Lokalizowanie certyfikatów w magazynie certyfikatów Wyświetlanie listy certyfikatów Lokalizowanie wygasłych certyfikatów Identyfikowanie certyfikatów, których ważność wygaśnie wkrótce Zarządzanie certyfikatami Inspekcja certyfikatu Importowanie certyfikatu Usuwanie certyfikatów Podsumowanie Zarządzanie usługami terminalowymi Konfigurowanie instalacji usług terminalowych Dokumentowanie konfiguracji usług terminalowych Wyłączanie możliwości logowania się Modyfikowanie właściwości klienta Zarządzanie użytkownikami Włączanie użytkownikom możliwości korzystania z serwera Konfigurowanie ustawień klienta Podsumowanie Konfigurowanie usług sieciowych Tworzenie raportów z informacjami o ustawieniach serwera DNS
10 x Spis treści Konfigurowanie ustawień rejestrowania dla serwera DNS Tworzenie raportów z informacjami o wskazówkach dotyczących serwerów głównych Odpytywanie rekordów typu A Konfigurowanie ustawień serwera DNS Tworzenie raportów z informacjami o strefach DNS Tworzenie stref DNS Zarządzanie serwerami WINS i DHCP Podsumowanie Praca z systemem Windows Server 2008 Server Core Konfiguracja początkowa Podłączanie serwera do domeny Konfigurowanie adresu IP Konfigurowanie ustawień DNS Zmiana nazwy serwera Zarządzanie systemem Windows Server 2008 Server Core Monitorowanie serwera Odpytywanie dziennika zdarzeń Podsumowanie A Konwencja nazw dla narzędzi typu cmdlet B Nazwy dostawców obiektów danych typu ActiveX C Często zadawane pytania D Wskazówki dotyczące tworzenia skryptów E Ogólne wskazówki dotyczące rozwiązywania problemów Indeks Informacja o autorze
11 Podziękowania Z każdą pisaną przeze mnie książką spotykam się z nowymi wyzwaniami do pokonania... i nowymi przyjaciółmi, którzy mi w tym pomagają! Oprócz pomocy otrzymywanej od nowych przyjaciół, nadal jednak otrzymuję mnóstwo wsparcia także od swoich starych przyjaciół. Najlepszym z nich jest Teresa, która przypadkiem jest również moją żoną. Teresa stale rozwija swoje umiejętności na polu wydawniczym. Powodzenie, jakie osiągnęły moje pozostałe książki, jest w znacznej mierze zasługą jej umiejętności jako redaktora technicznego. Bardzo cenię sobie jej sugestie, komentarze oraz dar wyłapywania błędów. Fakt, że moi wydawcy myśleli, iż jestem literatem, jest jej bezpośrednią zasługą. I rzecz najbardziej zdumiewająca: z wykształcenia Teresa jest księgową! W tym miejscu muszę również podziękować mojej agentce, Claudette Moore, z agencji wydawniczej Moore Literary Agency. Dała mi ona poczucie, jak bym był jedynym reprezentowanym przez nią autorem. Stopień jej osobistego zaangażowania jest po prostu wspaniały. Claudette doskonale spisała się również dbając o to, abym zawsze pracował nad właściwym projektem, we właściwym czasie. Dzięki niej mogłem się skoncentrować na pracy nad swoim bieżącym projektem, podczas gdy ona już zajmowała się przygotowywaniem dla mnie następnego zlecenia. To naprawdę nie byle co! Martin DelRe jest moim redaktorem inicjującym z ramienia wydawnictwa MSPress. WOW! Ten facet jest wyjątkowym zwolennikiem stosowania skryptów i wie, jak sprawić, by publikowane książki spełniały oczekiwania społeczności użytkowników i autorów skryptów. Jednak Martin znacznie wykracza poza tę charakterystykę. Jest on jedną z najpogodniejszych i najbardziej entuzjastycznych osób, jaką znam, i wydaje się, że śledzi projekty poszczególnych książek od chwili ich powstania, przez cały proces ich publikacji. Miałem naprawdę wiele szczęścia, że Bob Hogan został ponownie moim recenzentem technicznym. Jest on bardzo optymistyczną i ofiarną osobą, o przenikliwym umyśle technicznym, która naprawdę zna się na tworzeniu skryptów. Dzięki niemu zaoszczędziłem wiele czasu podczas pracy nad tym projektem, podobnie jak to miało miejsce podczas pracy nad moimi wcześniejszymi książkami. Dobra robota, Bob! Dzięki tej książce poznałem także kilkoro nowych przyjaciół. Michelle Goodman wykonała doskonałą pracę jako redaktor dbając o to, abym zawsze kończył swoją pracę w terminie. Pisanie książki zajęło mi ponad 10 miesięcy, w trakcie których przeleciałem samolotami prawie mil, pracowałem w kilkunastu krajach, kilkakrotnie nurkowałem, raz byłem chory i sześć razy przekraczałem międzynarodową linię zmiany daty. W tym czasie Michelle zawsze dotrzymywała mi kroku, a nawet udało jej się zakończyć projekt na dwa tygodnie przed terminem! Dobra robota. Maureen Zimmerman po raz kolejny była jednym z redaktorów zajmujących się moją książką. Zawdzięczam jej doskonały start i gładkie przejście pod skrzydła Michelle. Urocze! Dean Tsaltas jest człowiekiem zajmującym się na co dzień pisaniem skryptów, który dostarczył mi odpowiedzi na kilka pytań związanych z podsystemem WMI oraz zapewnił dostęp do najnowszych wersji dokumentacji WMI SDK, a poza tym jest po prostu fajnym facetem. Denise Bankaitis przejęła stery po Michelle, która w pewnym momencie musiała opuścić projekt, wpierała mnie i dbała o to, abym na czas naniósł wszystkie poprawki i można było przekazać książkę do druku. A skoro już mowa o druku, to należy wspomnieć o Lindzie xi
12 xii Podziękowania Allen z wydawnictwa Custom Editorial Productions, Inc., która pełniła funkcję kierownika projektu i w znacznej mierze przyczyniła się do ukazania się tej książki drukiem. Kathy Eastman była również jednym z moich redaktorów i dzięki jej pomocy ta książka wygląda nareszcie tak, jak gdyby jej autorem był ktoś, kto jest prawie literatem. Wszystkim tym trzem paniom należą się ogromne podziękowania Należy tu wymienić również nazwisko Jeffrea Snovera, architekta programu Windows PowerShell, ponieważ to właśnie on stworzył coś, co jeden z moich klientów nazwał ostatnio najlepszą rzeczą jaką od lat zdarzyło się wypuścić firmie Microsoft. Jest to bardzo wymowna opinia, ponieważ ostatnio mieliśmy do czynienia z kilkoma naprawdę dobrymi produktami, ale całkowicie się z nią zgadzam. Jeffrey udzielił mi także odpowiedzi na kilka pytań dotyczących programu Windows PowerShell, z którymi nie mogłem sobie poradzić od kilku dni. To bardzo błyskotliwa osoba. Chris BellŽe, Pete Christensen oraz Jit Banerjie zostali przeszkoleni pod kątem prowadzenia moich szkoleń z zakresu programu Windows PowerShell i często spotykali się z moimi komentarzami w rodzaju To nie działa. Czy możesz to poprawić?. Zwykle poprawiali. Czuję się, jak gdyby byli moimi dobrymi przyjaciółmi i cieszę się, że mieszkają w Australii, dzięki czemu mogę ich odwiedzać! Co więcej, Peter jest także instruktorem nurkowania (zazdroszczę mu). Jit oczywiście nie jest moim nowym przyjacielem mam to szczęście znać go już prawie od pięciu lat. Naprawdę mogę uważać się za szczęściarza, ponieważ jego żona szczyci się najlepszą kuchnią w całej Australii i jest po prostu uroczą osobą. Jest jeszcze Chris. No cóż, on jest po prostu najfajniejszą osobą, jaką znam!
13 Wstęp Najlepszy na świecie język skryptowy w połączeniu z najlepszym na świecie systemem operacyjnym! To jak połączenie masła orzechowego i czekolady jedno jest wprost stworzone dla drugiego. Systemy Windows Vista i Windows Server 2008 są nie tylko najważniejszymi wersjami systemu Windows w historii firmy Microsoft, ale także wersjami najbardziej konfigurowalnymi. Tak, właśnie konfigurowalnymi! Postęp, który sprawił, że graficzny interfejs użytkownika stał się tak atrakcyjny dla zwykłych użytkowników, jest jednocześnie główną przyczyną zmartwień administratorów sieci, konsultantów i zaawansowanych użytkowników. Na szczęście narzędzie służące do administrowania serwerem Exchange Server 2007, serwerem Virtual Server 2007 a nawet serwerem Windows Server 2008, jest dokładnie tym samym narzędziem, które umożliwia administrowanie systemem Windows Vista. Narzędziem tym jest program Windows PowerShell. Jako autor pięciu książek poświęconych pisaniu skryptów dla systemu Windows oraz konsultant zatrudniony w firmie Microsoft, przemierzyłem już cały świat obwieszczając pojawienie się kolejno języka Visual Basic Script (VBScript), usługi WMI (Windows Management Instrumentation Instrumentacja zarządzania systemem Windows), interfejsu ADSI (Active Directory Services Interfaces Interfejs usług katalogowych Active Diretory)... i oto mamy nowy element tej układanki program Windows PowerShell. Posługując się programem Windows PowerShell nawet początkujący administrator sieci może utworzyć skrypt wyświetlający listę procesów najintensywniej wykorzystujących zasoby komputera, i to za pomocą zaledwie kilku linii kodu. Wprawdzie to samo zadanie można wykonać za pomocą skryptu napisanego w języku VBScript, ale będzie to dużo bardziej czasochłonne i wymagać będzie znacznie więcej pisania. Za pomocą dokładnie tej samej linii kodu będzie można znajdować procesy najintensywniej korzystające z zasobów komputera zarówno w systemie Windows Server 2008, jak i w systemie Windows Vista. Nowe produkty firmy Microsoft będą dostarczać nowych poleceń typu cmldet dla programu Windows PowerShell (polecenia typu cmdlet są siłą napędową programu Windows PowerShell i zostaną omówione w rozdziale 1), interfejsów, a w niektórych przypadkach także gotowych narzędzi. Jest to naprawdę dobra wiadomość, ponieważ oznacza ona, że zbliżamy się do czasów, gdy administrowanie systemem operacyjnym i konfigurowanie aplikacji można będzie prowadzić w jednakowy sposób. Windows PowerShell jest nowym językiem skryptowym, który po raz pierwszy pojawił się przy okazji publikacji serwera Microsoft Exchange Produkt ten jest udostępniany na witrynach webowych firmy Microsoft i może być instalowany w systemach Windows XP, Windows Server 2003 i Windows Vista. Jest on także jedną z funkcji dostępnych podczas instalacji systemu Windows Server 2008 i w kolejnych wersjach klienckich systemów Windows będzie również stanowił część podstawowej instalacji. Ponieważ narzędzia służące do administrowania serwerem Microsoft Exchange 2007 zostały stworzone w oparciu o program Windows PowerShell, więc pierwszymi osobami poznającymi tajniki programu Windows PowerShell i używającymi go w codziennej pracy często będą administratorzy serwerów Exchange. Zarządzanie bezpieczeństwem, zasobami rejestru lub konfiguracją usług należy do codziennych zadań wykonywanych przez administratorów sieci i dzięki elastyczności programu Windows PowerShell zadania te można realizować w niezmiernie łatwy sposób. xiii
14 xiv Wstęp Czy ta książka jest dla mnie? Książka Windows PowerShell przewodnik po skryptach dostarczy Czytelnikowi narzędzi umożliwiających automatyzację procesu instalowania, wdrażania i zarządzania komputerami pracującymi pod kontrolą systemu Windows. Przy okazji książka ta umożliwia dokładne zrozumienie działania poleceń typu cmdlet, dostarczanych razem z produktem Windows PowerShell. Ponad 300 skryptów ilustruje główne zadania wykonywane przez administratorów sieci, związane z zabezpieczeniami, konfiguracją, wdrażaniem, bieżącym administrowaniem systemem, konfigurowaniem i eksploatacją sieci oraz rozwiązywaniem problemów. Książka Windows PowerShell przewodnik po skryptach doskonale nadaje się dla kilku różnych grup odbiorców, w tym między innymi dla: n Konsultantów sieciowych Windows Do standaryzacji i automatyzacji procesów instalowania i konfigurowania sieciowych składników środowiska.net. n Administratorów sieci opartej na systemie Windows Do automatyzacji codziennych zadań związanych z administrowaniem sieciami opartymi na systemie Windows. n Osób z tytułami MCSE (Microsoft Certified Systems Engineer) oraz MCT (Microsoft Certified Trainers) Do przygotowywania się do kilku nowych egzaminów certyfikacyjnych, które obecnie zawierają pytania dotyczące także znajomości programu Windows PowerShell. n Pracowników technicznych Do gromadzenia informacji i ustawień skonfigurowanych na komputerach pracujących z systemem Windows. n Zaawansowanych użytkowników o wysokich wymaganiach Do uzyskania maksymalnej funkcjonalności i możliwości konfigurowania komputerów pracujących pod kontrolą systemu Windows zarówno w warunkach domowych, jak i w niezarządzanych środowiskach pracy. Książka Windows PowerShell przewodnik po skryptach została koncepcyjnie podzielona na cztery części: omówienie programu Windows PowerShell, używanie programu Windows PowerShell w systemie Windows Vista, używanie programu Windows PowerShell w systemie Windows Server 2008 oraz bieżące administrowanie konkretnymi aplikacjami. W rzeczywistości książka ta nie została podzielona na takie części, ale każdy rozdział został napisany jako autonomiczna jednostka. Umożliwia to sięgnięcie po książkę w razie potrzeby i szybkie odszukanie w niej odpowiedzi na konkretne pytanie. Np. administrując usługą IIS 7 można szybko przejść do rozdziału 15, zatytułowanego Zarządzanie internetowymi usługami informacyjnymi. Korzystanie z obrazu dysku CD Obraz dysku CD towarzyszącego książce jest dostępny na stronie wydawcy przy opisie książki w zakładce Dodatkowe informacje, pod adresem:
15 Wstęp xv Na podstawie tego obrazu można wykonać fizyczny dysk CD lub zainstalować go jako napęd wirtualny. Dysk ten zawiera dodatkowe informacje, składniki oprogramowania oraz skrypty. Naprawdę mnóstwo skryptów. W rzeczywistości na płycie tej znajduje się dokładnie 317 skryptów (wiem to, ponieważ napisałem skrypt, który je wszystkie policzył!). Są tam skrypty i przykładowe rezultaty ich działania dla każdego z rozdziałów tej książki. Nazwy poszczególnych folderów odpowiadają nazwom rozdziałów, więc odszukanie odpowiedniego skryptu nie powinno nastręczać żadnych trudności. Większość z tych skryptów jest niezależna od konkretnego środowiska i nie zakłada istnienia żadnych specjalnych wartości. Skrypty te akceptują parametry wiersza poleceń, które umożliwiają modyfikowanie sposobu działania skryptu w chwili jego uruchamiania. Wśród zamieszczonych na płycie skryptów istnieje jednak kilka przykładów, w których użyto konkretnych, przykładowych wartości. Dostosowanie tych skryptów do własnego środowiska wymaga jedynie nieznacznych modyfikacji. We wszystkich takich przypadkach wymagane zmiany zostały odnotowane bądź to jako komentarz umieszczony w kodzie skryptu, bądź w tekście książki, bądź w obydwu tych miejscach jednocześnie. Na płycie CD znajduje się także kilka plików z bazą danych. Pliki te zostały utworzone za pomocą programu Microsoft Access Ponieważ jednak część z czytelników zapewne nadal korzysta ze starszych wersji programu Access, pliki te zostały przewidująco zapisane w trybie zgodności. Wszystkie zrzuty ekranowe zamieszczone w tej książce i odwołujące się do plików baz danych pochodzą jednak z programu Access Decydując się na skorzystanie ze znajdującego się na płycie programu instalacyjnego, przykładowe skrypty zostaną automatycznie skopiowane do katalogu [Moje dokumenty]\microsoft Press\PowerShell Scripting Guide\scripts. W trakcie procesu instalacji istnieje jednak możliwość zmiany tej lokalizacji. Nie należy pomijać folderu \extras! Pozwolę sobie wyjaśnić dlaczego. Jestem entuzjastą pisania skryptów a zwłaszcza skryptów programu Windows PowerShell. W rezultacie napisałem wiele skryptów nie związanych z żadnym z rozdziałów tej książki ani poruszanych w niej tematów (kiedy już zacząłem nie mogłem przestać!). Skrypty te nie są jednak bezwartościowe: mogą one stanowić doskonałą ilustrację zastosowania konkretnych, użytecznych technik. Cześć z tych skryptów, np. takich jak skrypt FlashingBunny.ps1 (migający króliczek), jest trochę głupia i przedstawia niewielką wartość. Mimo to w tym folderze znaleźć można kilka perełek umożliwiających rozwiązanie konkretnych problemów i zaoszczędzenie kilku godzin pracy (np. jeśli szef poprosi Cię Czy mógłbyś napisać dla mnie skrypt wyświetlający migającego króliczka? będziesz miał gotowe rozwiązanie!). Wymagania systemowe n Procesor taktowany zegarem o minimalnej częstotliwości 1.0 gigahertza (GHz) z rodziny procesorów Intel Pentium/Celeron lub z rodziny procesorów AMD k6/atholon/duron n 1.0 GB pamięci n 1.5 GB wolnego miejsca na dysku n Monitor o rozdzielczości lub większej n Napęd CD-ROM lub DVD n Mysz Microsoft Mouse lub inne kompatybilne urządzenie wskazujące
16 xvi Wstęp n System operacyjny Windows Server 2003 SP1, Windows XP SP2 lub Windows Vista n Microsoft.NET Framework 2.0 Ta książka została napisana z myślą zarówno o systemie operacyjnym Windows Vista, jak i o systemie Windows Server Zamieszczone w niej skrypty nie były testowane w systemie Windows XP ani w systemie Windows Server 2003, choć w większości przypadków powinny one działać bez żadnych modyfikacji. Pomoc techniczna Dołożono wszelkich starań, aby zapewnić dokładność treści prezentowanych w tej książce oraz zamieszczonych na towarzyszącej jej płycie CD-ROM. Wydawnictwo Microsoft Press publikuje erraty do swoich książek za pomocą witryny webowej learning/support. Aby połączyć się bezpośrednio z bazą wiedzy firmy Microsoft (Microsoft Knowledge Base), umożliwiającą wyszukanie informacji dotyczących pytania lub określonego problemu, należy odwiedzić stronę Wszelkie komentarze, pytania lub pomysły dotyczące tej publikacji bądź towarzyszącej jej płyty CD-ROM prosimy kierować do wydawnictwa Microsoft Press za pomocą jednej z następujących metod: Pocztą elektroniczną ( ) Pocztą tradycyjną mspinput@microsoft.com Microsoft Press Attn: Editor, Windows PowerShell Scripting Guide One Microsoft Way Redmond, WA Prosimy pamiętać, że pod żadnym z tych adresów nie jest udzielana pomoc techniczna dotycząca produktu. Wyszukiwanie dodatkowych materiałów w sieci W miarę pojawiania się nowych lub zaktualizowanych materiałów uzupełniających treść tej książki będą one publikowane na witrynie webowej Microsoft Press Online Windows Server and Client. W zależności od opublikowania finalnej wersji systemu Windows Server 2008, wśród publikowanych na tej stronie materiałów mogą znaleźć się aktualizacje treści książki, artykuły, łącza do materiałów uzupełniających, przykładowe rozdziały i wiele innych. Wymieniona witryna webowa będzie dostępna wkrótce pod adresem com/learning/books/online/serverclient, a jej zawartość będzie co jakiś czas aktualizowana.
17 Rozdział 1 Powłoka programu Windows PowerShell Po ukończeniu tego rozdziału Czytelnik będzie potrafił: n Instalować i konfigurować program Windows PowerShell. n Radzić sobie z problematyką bezpieczeństwa w programie Windows PowerShell. n Zrozumieć podstawy działania i korzystania z poleceń typu cmdlet. n Używać aliasów do przypisywania skróconych nazw poleceniom typu cmdlet. n Uzyskiwać pomoc dotyczącą korzystania z programu Windows PowerShell. Na dysku CD Wszystkie używane w tym rozdziale skrypty znajdują się na towarzyszącej tej książce płycie CD-ROM w folderze \scripts\chapter01. Instalowanie programu Windows PowerShell Ponieważ domyślnie program Windows PowerShell nie jest instalowany w żadnym systemie operacyjnym firmy Microsoft, dlatego bardzo ważne jest, aby przed przystąpieniem do wdrażania rzeczywistych skryptów lub poleceń sprawdzić, czy program Windows PowerShell został zainstalowany na danej platformie. Najprościej można to zrobić próbując wykonać jedno z poleceń programu Windows PowerShell i sprawdzając, czy polecenie to nie zwróci błędów. Zadanie to można z łatwością zrealizować z poziomu pliku wsadowego, sprawdzając wartość zmiennej %errorlevel%. Sprawdzanie instalacji za pomocą skryptu w języku VBScript Bardziej złożone podejście do zadania polegającego na sprawdzeniu, czy w systemie operacyjnym zainstalowany został program Windows PowerShell, polega na użyciu skryptu korzystającego z obiektu WMI (Windows Management Instrumentation Instrumentacja zarządzania systemu Windows), o nazwie Win32_QuickFixEngineering. Przykład wykorzystania obiektu Win32_QuickFixEngineering w języku Microsoft Visual Basic Scripting Edition (VBScript) do wykrycia instalacji programu Windows PowerShell znajduje się w skrypcie FindPowerSell.vbs. Skrypt FindPowerShell.vbs wykorzystuje alternatywną nazwę (ang. moniker) systemu WMI do utworzenia instancji obiektu klasy SwbemServices, a następnie wykonuje zapytanie, korzystając z metody execquery. Zapytanie w języku WQL (WMI Query Language Język zapytań systemu WMI) używa operatora like, do pobrania listy poprawek typu hotfix, z wartością identyfikatora , która w systemie Windows XP, Windows Vista, Windows Server 2003 oraz Windows Server 2008 oznacza identyfikator poprawki będącej 1
18 2 Windows PowerShell przewodnik po skryptach programem Windows PowerShell. Po zidentyfikowaniu poprawki skrypt ten po prostu wypisuje nazwę komputera, informując o zainstalowaniu na nim programu Windows PowerShell. Przykład takiego komunikatu został pokazany na rysunku 1-1. Rysunek 1-1 Wyskakujące okno dialogowe, wyświetlone przez skrypt FindPowerShell.vbs, z informacją o znalezieniu w systemie programu Windows PowerShell. Jeśli wskazana poprawka nie zostanie odnaleziona, wówczas skrypt wyświetli informację, że program PowerShell nie został zainstalowany. Skrypt FindPowerShell.vbs można bardzo łatwo zmodyfikować dodając do niego nową funkcjonalność, która może być potrzebna w danej sieci. Przykładowo może pojawić się potrzeba uruchamiania tego skryptu dla wielu różnych nazw komputerów. W tym celu można przekształcić obiekt strcomputer w tablicę i wpisać od razu kilka nazw komputerów. Nazwy komputerów można również odczytać z pliku tekstowego lub pobrać je za pomocą zapytania skierowanego do usługi katalogowej Active Directory. Wynik działania skryptu można również skierować do pliku, zamiast tworzyć wyskakujące okno dialogowe. FindPowerShell.vbs Const RtnImmedFwdOnly = &h30 strcomputer = "." wmins = "\root\cimv2" wmiquery = "Select * from win32_quickfixengineering where hotfixid like '928439'" Set objwmiservice = GetObject("winmgmts:\\" & strcomputer & wmins) Set colitems = objwmiservice.execquery(wmiquery,,rtnimmedfwdonly) For Each objitem in colitems Wscript.Echo "Program PowerShell jest zainstalowany na " & objitem.csname Wscript.quit Next Wscript.Echo Program PowerShell nie został zainstalowany Wdrażanie programu Windows PowerShell Po pobraniu programu Windows PowerShell z witryny można go wdrożyć w posiadanym środowisku przy użyciu dowolnej, aktualnie używanej, standardowej metody wdrażania oprogramowania. Do metod używanych przez klientów do wdrażania programu Windows PowerShell należą między innymi: n Utworzenie pakietu Microsoft SMS (Systems Management Server Serwer zarządzania systemami) i anonsowanie go w odpowiedniej jednostce organizacyjnej (OU) lub kolekcji. n Utworzenie w kartotece Active Directoty obiektu zasad grupy (GPO Group Policy Object) i połączenie go z odpowiednią jednostką organizacyjną (OU).
19 Rozdział 1: Powłoka programu Windows PowerShell 3 n Uruchomienie programu wykonywalnego za pomocą skryptu logowania. Jeśli wdrożenie programu Windows PowerShell nie dotyczy całego przedsiębiorstwa, prawdopodobnie najprostszym sposobem instalacji będzie po prostu dwukrotne kliknięcie odpowiedniego pliku wykonywalnego i wykonanie kolejnych kroków, zgodnie z instrukcjami kreatora instalacji. Należy w tym miejscu podkreślić, że program Windows PowerShell jest instalowany za pomocą technologii poprawek typu hotfix. Oznacza to, że program Windows PowerShell ma postać aktualizacji systemu operacyjnego, a nie dodatkowego programu. Takie podejście ma kilka zalet, włącznie z możliwością oferowania aktualizacji i poprawek dla programu Windows PowerShell za pomocą pakietów serwisowych systemu operacyjnego oraz za pomocą witryny Windows Update. Niestety ma ono również kilka minusów wynikających z faktu, że deinstalacja poprawek typu hotfix musi przebiegać w odwrotnej kolejności do ich instalacji. Np. jeśli program Windows PowerShell zostanie zainstalowany w systemie Windows Vista, a później w systemie tym zainstalowana zostanie seria aktualizacji oraz pakiet Service Pack 1, to, jeśli zdecydujemy się nagle na usunięcie z systemu programu Windows PowerShell, konieczne będzie odinstalowanie w odpowiedniej kolejności najpierw pakietu Service Pack 1, a potem wszystkich zainstalowanych poprawek typu hotfix (osobiście w takiej sytuacji zdecydowałbym się raczej na wykonanie kopii zapasowej wszystkich swoich danych, sformatowanie dysku twardego i ponowne zainstalowanie systemu Windows Vista. Sądzę, że takie rozwiązanie byłoby szybsze. Ale i tak scenariusz taki jest mocno dyskusyjny, ponieważ zwykle nie spotkamy się z potrzebą odinstalowania programu Windows PowerShell). Czym jest program Windows PowerShell Jednym z problemów związanych z programem Windows PowerShell jest niewłaściwe zrozumienie, czym jest ten program. Gdy po raz pierwszy spotkałem się Jeffreyem Snoverem, głównym architektem programu Windows PowerShell, jedną z pierwszych usłyszanych od niego rzeczy było pytanie: W jaki sposób opisałbyś program Windows PowerShell swoim klientom?. A więc czym jest program Windows PowerShell? Mówiąc najprościej, Windows PowerShell to oferowana przez firmę Microsoft nowa powłoka wiersza poleceń i język skryptowy, który może zastąpić zarówno nieco już leciwy interpreter poleceń Cmd.exe, jak i język skryptowy VBScript. Ta dwoista natura stwarza pewne problemy dla wielu administratorów sieci, którzy przywykli do automatyzowania zadań administracyjnych za pomocą interpretera poleceń Cmd.exe, z jego słabo rozwiniętym językiem wsadowym oraz wszechstronnego (lecz zawiłego) języka skryptowego VBScript. Nie są to złe narzędzia, ale obecnie często są wykorzystywane w sposób niezgodny z ich przeznaczeniem określonym ponad dekadę temu, gdy oba te narzędzia dopiero powstawały. Interpreter poleceń Cmd.exe jest w zasadzie następcą okna wiersza poleceń systemu DOS, a język VBScript został zaprojektowany, w większym lub w mniejszym stopniu, z myślą o stronach webowych. Żadne z tych narzędzi nie zostało stworzone od podstaw z myślą o administratorach sieci.
20 4 Windows PowerShell przewodnik po skryptach Interakcja z powłoką Po uruchomieniu programu Windows PowerShell można z niego korzystać w taki sam sposób, jak z interpretera poleceń Cmd.exe. Np. posługując się poleceniem dir można uzyskać listę zawartości katalogu. Można również najpierw zmienić katalog bieżący za pomocą polecenia cd, a następnie sprawdzić jego zawartość za pomocą polecenia dir, zupełnie w taki sam sposób, jak podczas korzystania z powłoki CMD. Rezultaty użycia wymienionych poleceń ilustruje zamieszczony poniżej przykładowy plik UsingPowerShell.txt. UsingPowerShell.txt PS C:\Users\edwils> dir Directory: Microsoft.PowerShell.Core\FileSystem::C:\Users\edwils Mode LastWriteTime Length Name d-r-- 11/29/2006 1:32 PM Contacts d-r-- 4/2/ :51 AM Desktop d-r-- 4/1/2007 6:53 PM Documents d-r-- 11/29/2006 1:32 PM Downloads d-r-- 4/2/2007 1:10 AM Favorites d-r-- 4/1/2007 6:53 PM Links d-r-- 11/29/2006 1:32 PM Music d-r-- 11/29/2006 1:32 PM Pictures d-r-- 11/29/2006 1:32 PM Saved Games d-r-- 4/1/2007 6:53 PM Searches d-r-- 4/2/2007 5:53 PM Videos PS C:\Users\edwils> cd music PS C:\Users\edwils\Music> dir Oprócz możliwości korzystania z tradycyjnych poleceń interpretera poleceń możliwe jest także korzystanie z nowszych narzędzi wiersza poleceń, takich jak prezentowany poniżej program Fsutil.exe. Należy przy tym pamiętać, że korzystanie z programu Fsutil.exe wymaga posiadania uprawnień administracyjnych. Uruchomienie powłoki Windows PowerShell z poziomu grupy programów Windows PowerShell nie zapewnia posiadania uprawnień administracyjnych i próba skorzystania z programu Fsutil.exe zakończy się wygenerowaniem błędu pokazanego na rysunku 1-2. Rysunek 1-2 Program Windows PowerShell podlega mechanizmom kontroli konta użytkownika i domyślnie jest uruchamiany z uprawnieniami zwykłego użytkownika. Próby wykonywania poleceń wymagających wyższego poziomu uprawnień mogą wówczas kończyć się błędami.
21 Rozdział 1: Powłoka programu Windows PowerShell 5 Fsutil.txt PS C:\Users\edwils> sl c:\mytest PS C:\mytest> fsutil file createnew c:\mytest\mynewfile.txt 1000 File c:\mytest\mynewfile.txt is created PS C:\mytest> dir Directory: Microsoft.PowerShell.Core\FileSystem::C:\mytest Mode LastWriteTime Length Name a--- 5/8/2007 7:30 PM 1000 mynewfile.txt PS C:\mytest> PS C:\Users\edwils> sl c:\mytest PS C:\mytest> fsutil file createnew c:\mytest\mynewfile.txt 1000 Plik c:\mytest\mynewfile.txt został utworzony PS C:\mytest> dir Katalog: Microsoft.PowerShell.Core\FileSystem::C:\mytest Mode LastWriteTime Length Name a : mynewfile.txt PS C:\mytest> Wskazówka Zalecane jest utworzenie dwóch skrótów do programu Windows PowerShell i zapisanie ich na pasku Quick Launch (Szybkie uruchamianie). Jeden z tych skrótów powinien uruchamiać program z uprawnieniami zwykłego użytkownika a drugi z uprawnieniami administracyjnymi. Domyślnie należy korzystać ze skrótu uruchamiającego program z uprawnieniami zwykłego użytkownika, dokumentując te przypadki, które wymagają używania uprawnień administracyjnych. Po zakończeniu pracy z plikami i z folderem można bardzo łatwo usunąć plik za pomocą polecenia del. Aby uniknąć konieczności wpisywania całej nazwy pliku, można posłużyć się znakami uogólniającymi, np. *.txt. Jest to wystarczająco bezpieczne, ponieważ wcześniej sprawdziliśmy za pomocą polecenia dir, że w danym folderze znajduje się tylko jeden plik tekstowy. Po usunięciu pliku, używając polecenia rd, można również usunąć sam katalog. Jak pokazano w poniższym przykładzie DeleteFileAndFolder.txt, polecenia te działają dokładnie tak samo jak podczas korzystania z okna wiersza poleceń. DeleteFileAndFolder.txt PS C:\> sl c:\mytest PS C:\mytest> dir Directory: Microsoft.PowerShell.Core\FileSystem::C:\mytest Mode LastWriteTime Length Name a--- 5/8/2007 7:30 PM 1000 mynewfile.txt
22 6 Windows PowerShell przewodnik po skryptach PS C:\mytest> del *.txt PS C:\mytest> cd c:\ PS C:\> rd c:\mytest PS C:\> dir c:\mytest Get-ChildItem : Cannot find path 'C:\mytest' because it does not exist. At line:1 char:4 + dir <<<< c:\mytest PS C:\>... PS C:\> dir c:\mytest Get-ChildItem : Nie można odnaleźć ścieżki 'C:\mytest', ponieważ ona nie istnieje. Plik: wiersz; wiersz: 1; znak: 4 + dir <<<< c:\mytest PS C:\> W pokazanych powyżej przykładach program Windows PowerShell używany był w sposób interakcyjny. Jest to jedno z głównych zastosowań tego programu. Zespół tworzący program Windows PowerShell zakładał, że około 80% użytkowników będzie korzystać z tego programu w sposób interakcyjny, traktując go po prostu jako lepszą wersję okna wiersza poleceń. Użytkownicy będą otwierać wiersz poleceń programu Windows PowerShell i wpisywać tekst poleceń. Polecenia mogą być wpisywane pojedynczo lub grupowane, w podobny sposób jak w plikach wsadowych typu.bat. Możliwość ta zostanie opisana w dalszej części tej książki, ponieważ domyślnie jest ona wyłączona. Omówienie narzędzi wiersza poleceń typu Cmdlet Oprócz możliwości korzystania z tradycyjnych programów i poleceń znanych z interpretera poleceń Cmd.exe, możliwe jest także używanie specjalnych narzędzi wiersza poleceń (tzw. poleceń typu cmdlet), które są wbudowane w program Windows PowerShell. Cmdlet to nazwa utworzona przez zespół programistów tworzących program Windows PowerShell, oznaczająca tego rodzaju natywne polecenia. Polecenia te są podobne do programów wykonywalnych, ale ponieważ korzystają z funkcji wbudowanych w program Windows PowerShell, są łatwiejsze do napisania. Nie są to skrypty, które zawierają nieskompilowany kod, ponieważ do ich tworzenia używane są usługi specjalnej przestrzeni nazw platformy Microsoft.NET Framework. Z powodu swojej odmiennej natury programiści z zespołu tworzącego program Windows PowerShell utworzyli dla tych poleceń nowy termin cmdlet. Program Windows PowerShell oferuje ponad 120 narzędzi typu cmdlet, zaprojektowanych z myślą o umożliwieniu konsultantom i administratorom sieci łatwego korzystania z możliwości oferowanych przez program PowerShell, bez konieczności uczenia się języka skryptowego Windows PowerShell. Narzędzia te zostały wymienione w dodatku A, zatytułowanym Konwencja nazw dla narzędzi typu cmdlet. Generalnie nazwy narzędzi typu cmdlet tworzone są zgodne ze standardową konwencją nazw, np. Get-Help (Uzyskaj pomoc), Get-EventLog (Uzyskaj dziennik zdarzeń) lub Get-Process (Pobierz proces). Polecenia, których nazwy zaczynają się od członu "get" (pobierz/uzyskaj), wyświetlają informacje o elemencie wskazanym w drugim członie ich nazwy (z prawej strony znaku myślnika). Polecenia o nazwach zaczynających się od członu set (ustaw) służą do modyfikowania lub do konfigurowania elementów wskazanych w drugim członie nazwy. Przykładem polecenia typu set jest cmdlet Set-Service (Ustaw usługę), który umożliwia zmianę trybu
23 Rozdział 1: Powłoka programu Windows PowerShell 7 uruchamiania usług. Pełne objaśnienie konwencji nazw dla poleceń typu cmdlet znajduje się w dodatku A, zatytułowanym Konwencja nazw dla narzędzi typu cmdlet. Konfigurowanie programu Windows PowerShell Po zainstalowaniu programu Windows PowerShell na danej platformie, nadal pozostaje do rozwiązania jeszcze kilka kwestii związanych z konfiguracją. Częściowo wynika to ze sposobu, w jaki programiści firmy Microsoft z zespołu tworzącego program Windows PowerShell wyobrażają sobie sposób korzystania z tego narzędzia. Otóż zakładają oni, że 80% użytkowników programu Windows PowerShell nie będzie korzystać z funkcji skryptowych tego programu, a więc funkcjonalność obsługi skryptów jest domyślnie wyłączona. Więcej informacji na temat włączania obsługi skryptów przez program Windows PowerShell znajduje się w rozdziale 2, zatytułowanym Skrypty programu Windows PowerShell. Tworzenie profilu programu Windows PowerShell Istnieje wiele ustawień, które można przechowywać w profilu programu Windows PowerShell. Elementy te można zapisać w pliku psconsole. W celu eksportowania pliku z konfiguracją konsoli należy użyć polecenia cmdlet o nazwie Export-Console (Eksportuj konsolę), w pokazany poniżej sposób: PS C:\> Export-Console myconsole Plik psconsole domyślnie zapisywany jest w katalogu bieżącym i posiada rozszerzenie.psc1. Plik psconsole zapisywany jest w formacie XML. Poniżej pokazana została zawartość pliku z konfiguracją zwykłej konsoli: <?xml version="1.0" encoding="utf-8"?> <PSConsoleFile ConsoleSchemaVersion="1.0"> <PSVersion>1.0</PSVersion> <PSSnapIns /> </PSConsoleFile> Konfigurowanie opcji uruchamiania programu Windows PowerShell Istnieje kilka możliwych sposobów uruchamiania programu Windows PowerShell. Np. jeśli komuś przeszkadza logo wyświetlane po kliknięciu domyślnej ikony programu Windows PowerShell, to program ten można uruchomiać bez niego. Możliwe jest uruchamianie programu Windows PowerShell przy użyciu różnych profili, a nawet wykonywanie pojedynczego polecenia powłoki Windows PowerShell i kończenie jej działania. Jeśli istnieje potrzeba uruchomienia określonej wersji programu Windows PowerShell, można to zrobić podając odpowiednią wartość dla parametru version. Poniższa lista ilustruje każdą z tych możliwości. n Uruchomienie programu Windows PowerShell bez baneru startowego, przy użyciu argumentu -nologo:
24 8 Windows PowerShell przewodnik po skryptach PowerShell -nologo n Uruchomienie konkretnej wersji programu Windows PowerShell, przy użyciu argumentu -version: PowerShell -version 1.0 n Uruchomienie programu Windows PowerShell przy użyciu konkretnego pliku konfiguracyjnego, wskazanego za pomocą argumentu -psconsolefile: PowerShell -psconsolefile myconsole.psc1 n Uruchomienie programu Windows PowerShell, wykonanie określonego polecenia i zakończenie działania, używając argumentu -command. Polecenie do wykonania musi być poprzedzone znakiem ampersand (&) i ujęte w nawiasy klamrowe: powershell -command "& {get-process}" Kwestie bezpieczeństwa w programie Windows PowerShell Podobnie jak w przypadku każdego narzędzia, które jest równie wszechstronne jak program Windows PowerShell, pojawiają się pewne obawy dotyczące bezpieczeństwa. Bezpieczeństwo było jednak jednym z celów od początku uwzględnianym podczas tworzenia programu Windows PowerShell. Po uruchomieniu programu Windows PowerShell otwiera on folder użytkownika Użytkownicy\NazwaUżytkownika. Gwarantuje to, że katalog bieżący będzie katalogiem wobec którego użytkownik posiada uprawnienia potrzebne do wykonywania pewnych akcji oraz działań. Taka technika jest znacznie bezpieczniejsza niż uruchamianie programu w głównym katalogu dysku lub otwieranie głównego katalogu systemowego. Nie można automatycznie zmienić katalogu i przejść o jeden poziom wyżej katalog docelowy dla operacji zmiany katalogu musi zostać wskazany w sposób jawny (ale możliwe jest używanie notacji kropkowej w połączeniu z poleceniem cmdlet o nazwie Set-Location (Ustaw lokalizację), jak np. Set-Location..). Możliwość uruchamiania skryptów jest domyślnie wyłączona, ale można to łatwo zmienić za pomocą zasad grupy lub skryptów logowania. Kontrolowanie działania poleceń typu Cmdlet Czy kiedykolwiek Czytelniku zdarzyło Ci się otworzyć okno interpretera poleceń CMD, wpisać tekst polecenia i nacisnąć klawisz Enter, aby po prostu zobaczyć co się stanie? Gdyby tym poleceniem było akurat polecenie Format C:\, to czy na pewno zamierzałeś sformatować swój dysk C? Istnieje kilka argumentów, które można przekazywać do poleceń typu cmdlet celem kontrolowania sposobu ich działania. Argumenty te zostaną szerzej omówione poniżej. Wprawdzie nie wszystkie polecenia typu cmdlet obsługują omawiane tutaj argumenty, ale są one obsługiwane przez większość poleceń typu cmdlet, stanowiących część programu Windows PowerShell. Trzy sposoby kontrolowania działania polecenia typu cmdlet to argumenty -whatif (co jeśli) i -confirm (potwierdzenie) oraz akcja suspend (wstrzymanie). Akcja
25 Rozdział 1: Powłoka programu Windows PowerShell 9 Suspend nie jest argumentem przekazywanym do polecenia typu cmdlet, lecz akcją, którą można podjąć w odpowiedzi na monit z żądaniem potwierdzenia, a więc można ją uznać za jeszcze jeden sposób kontrolowania sposobu działania poleceń typu cmdlet. Wskazówka Większość poleceń typu cmdlet programu Windows PowerShell obsługuje tryb prototypowy, który można aktywować za pomocą parametru -whatif (co jeśli). O implementacji przełącznika whatif może decydować osoba tworząca dane cmdlet. Zespół twórców programu Windows PowerShell zaleca jednak programistom implementowanie przełącznika -whatif, jeśli tworzony przez nich cmdlet dokonuje jakichkolwiek zmian w systemie. Chcąc skorzystać z opcji -whatif, należy najpierw wpisać w oknie wiersza poleceń programu Windows PowerShell nazwę i parametry polecenia typu cmdlet, a następnie dopisać na końcu parametr -whatif. Zastosowanie argumentu -whatif ilustruje zamieszczony poniżej przykład z pliku Whatif.txt. Pierwsza linia zawiera polecenie uruchomienia programu Notatnik. W tym celu wystarczy pisać słowo notepad, tak jak to pokazano na przykładzie. Następnie użyty został cmdlet o nazwie Get-Process (Pobierz proces), za pomocą którego wyszukano wszystkie procesy o nazwach rozpoczynających się od note. Kolejne polecenie to użycie polecenia typu cmdlet o nazwie Stop-Process (Zatrzymaj proces), do zatrzymania procesu o nazwie notepad, ale, ponieważ nie znamy jeszcze rezultatów działania tego polecenia, użyty został parametr -whatif. Dzięki użyciu tego parametru dowiedzieliśmy się, że wykonanie polecenia spowodowałoby zabicie dwóch procesów, z których każdy ma nazwę notepad, a także uzyskaliśmy wartości identyfikatorów tych procesów pozwalające na zweryfikowanie, czy zabite zostałyby właściwe procesy. Już tylko dla zabawy, następne polecenie to ponowne użycie polecenia o nazwie Stop-Process (Zatrzymaj proces) do zatrzymania wszystkich procesów o nazwach zaczynających się na literę n. Tym razem również roztropnie użyty został parametr whatif, dzięki czemu mogliśmy się przekonać, co by się stało, gdyby to polecenie zostało wykonane. WhatIf.txt PS C:\Users\edwils> notepad PS C:\Users\edwils> Get-Process note* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName notepad notepad PS C:\Users\edwils> Stop-Process -processname notepad -WhatIf What if: Performing operation "Stop-Process" on Target "notepad (3052)". What if: Performing operation "Stop-Process" on Target "notepad (3140)". PS C:\Users\edwils> Stop-Process -processname n* -WhatIf What if: Performing operation "Stop-Process" on Target "notepad (3052)". What if: Performing operation "Stop-Process" on Target "notepad (3140)".... PS C:\users\edwils> Stop-Process -processname notepad -WhatIf WhatIf Wykonywanie operacji "Stop-Process" na elemencie docelowym "notepad (2368)". WhatIf Wykonywanie operacji "Stop-Process" na elemencie docelowym "notepad (2636)".
26 10 Windows PowerShell przewodnik po skryptach PS C:\users\edwils> Stop-Process -processname n* -WhatIf WhatIf Wykonywanie operacji "Stop-Process" na elemencie docelowym "notepad (2368)". WhatIf Wykonywanie operacji "Stop-Process" na elemencie docelowym "notepad (2636)". WhatIf Wykonywanie operacji "Stop-Process" na elemencie docelowym "ntfrs (404)". A co się stanie, jeśli przełącznik whatif nie został zaimplementowany? Przypadek ten został zilustrowany w zamieszczonym poniżej przykładzie Whatif2.txt. W przypadku użycia polecenia typu cmdlet o nazwie New-Item (Nowy element), do utworzenia w katalogu głównym nowego katalogu o nazwie mynewtest, przełącznik whatif został zaimplementowany i pokazuje, że to polecenie faktycznie spowoduje utworzenie katalogu C:\myNewtest. Zwróćmy jednak uwagę, co się stanie, jeśli spróbujemy użyć przełącznika whatif w połączeniu z poleceniem typu cmdlet o nazwie Get-Help (Uzyskaj pomoc). Można by oczekiwać, że użycie tego parametru spowoduje wyświetlenie komunikatu w rodzaju "What if: Retrieving help information for Get-Process cmdlet" (Co jeśli: pobieranie informacji pomocy dla polecenia typu cmdlet Get-Process (Pobierz proces)). Tylko jaka byłaby zasadność takiego działania? Ponieważ użycie polecenia Get-Help (Uzyskaj pomoc) nie stwarza żadnego zagrożenia dla systemu, więc w jego przypadku nie ma potrzeby implementowania przełącznika whatif. WhatIf2.txt PS C:\Users\edwils> New-Item -Name mynewtest -Path c:\ -ItemType directory -WhatIf What if: Performing operation "Create Directory" on Target "Destination: C:\myNewTest". PS C:\Users\edwils> get-help Get-Process -whatif Get-Help : A parameter cannot be found that matches parameter name 'whatif'. At line:1 char:28 + get-help Get-Process -whatif <<<< PS C:\users\edwils> New-Item -Name mynewtest -Path c:\ -ItemType directory -WhatIf WhatIf Wykonywanie operacji "Utwórz katalog" na elemencie docelowym "Miejsce docelowe: C:\myNewTest". PS C:\users\edwils> Get-Help Get-Process -WhatIf Get-Help : Nie można odnaleźć parametru pasującego do nazwy parametru 'WhatIf'. Plik: wiersz; wiersz: 1; znak: 28 + Get-Help Get-Process -WhatIf <<<< Najlepsze rozwiązanie Stosowanie parametru -whatif należy traktować jako jedno z podstawowych narzędzi w arsenale administratora sieci. Używanie tego parametru do pozorowania działania poleceń przed ich faktycznym wykonaniem może zaoszczędzić każdego roku wiele godzin pracy. Potwierdzanie poleceń Jak pokazaliśmy w poprzedniej części, użycie przełącznika -whatif pozwala na utworzenie w programie Windows PowerShell prototypu polecenia typu cmdlet. Jest to bardzo użyteczna możliwość pozwalająca na sprawdzenie, co zrobi dane polecenie. Jeśli jednak przed wykonaniem polecenia powinien zostać wyświetlony odpowiedni monit, to należy użyć
27 Rozdział 1: Powłoka programu Windows PowerShell 11 przełącznika -confirm. W praktyce przełącznik -whatif można generalnie zastąpić przełącznikiem -confirm, ponieważ powoduje on wyświetlenie odpowiedniego monitu przed wykonaniem właściwej akcji. Zostało to pokazane w zamieszczonym poniżej przykładzie ConfirmIt.txt. Pierwszym poleceniem w pliku ConfirmIt.txt jest uruchomienie programu Kalkulator (Calc.exe). Ponieważ plik z tym programem znajduje się na ścieżce systemowej, nie ma potrzeby podawania pełnej ścieżki do tego pliku ani jego rozszerzenia. Następnym poleceniem jest użycie narzędzia typu cmdlet o nazwie Get-Process (Pobierz proces) oraz wzorca uogólniającego c* do odszukania wszystkich procesów, których nazwa zaczyna się na literę c. Należy zwrócić uwagę, że na wynikowej liście znajdują się nazwy kilku takich procesów. Kolejny krok to pobranie informacji dotyczących tylko procesu Calc.exe. To polecenie zwraca bardziej odpowiedni zbiór wynikowy. Następnie użyty został cmdlet Stop-Process (Zatrzymaj proces) z przełącznikiem -confirm. Jego uruchomienie powoduje zwrócenie następujących informacji: Confirm Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "calc (2924)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Potwierdź Czy na pewno chcesz wykonać tę akcję? Wykonywanie operacji "Stop-Process" na elemencie docelowym "calc (1016)". [T] Tak [W] Tak na wszystko [N] Nie [S] Nie na wszystkie [M] Wstrzymaj Pomoc [?](wartość domyślna to "T"): Jak można zauważyć, informacje te są w zasadzie takie same, jak w przypadku użycia przełącznika whatif, z tą jednak różnicą, że w tym przypadku oferowana jest również możliwość wykonania żądanej akcji. Podczas wykonywania bardzo dużej liczby poleceń pozwala to na znaczną oszczędność czasu. ConfirmIt.txt PS C:\Users\edwils> calc PS C:\Users\edwils> Get-Process c* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName calc casha CcmExec csrss csrss PS C:\Users\edwils> Get-Process calc Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName calc PS C:\Users\edwils> Stop-Process -Name calc -Confirm Confirm
28 12 Windows PowerShell przewodnik po skryptach Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "calc (2924)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y PS C:\Users\edwils> Get-Process c* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName casha CcmExec csrss csrss... PS C:\users\edwils> Stop-Process -name calc -confirm Potwierdź Czy na pewno chcesz wykonać tę akcję? Wykonywanie operacji "Stop-Process" na elemencie docelowym "calc (1016)". [T] Tak [W] Tak na wszystko [N] Nie [S] Nie na wszystkie [M] Wstrzymaj Pomoc [?](wartość domyślna to "T"): t PS C:\users\edwils> Get-Process c*... Zawieszanie potwierdzeń wykonywania poleceń typu Cmdlet Możliwość wyświetlania monitów z prośbą o potwierdzenie zamiaru wykonania danego polecenia typu cmdlet jest wyjątkowo użyteczna i czasami może mieć zasadnicze znaczenie dla zachowania wysokiego poziomu dostępności systemu. Może się np. zdarzyć, że po wpisaniu długiego polecenia przypomnimy sobie o konieczności uprzedniego wykonania innej procedury. W takim przypadku można po prostu zawiesić wykonywanie tego polecenia. Polecenia użyte podczas zawieszonego wykonywania programu narzędziowego typu cmdlet oraz generowany przez te polecenia strumień wyjściowy pokazane zostały w zamieszczonym poniżej przykładzie SuspendConfirmation.txt. W przykładowym pliku SuspendConfirmation.txt najpierw uruchomiony zostaje program Microsoft Paint (Mspaint.exe). Ponieważ program Mspaint.exe znajduje się na ścieżce systemowej, nie ma potrzeby umieszczania w tym pliku żadnych dodatkowych informacji dotyczących ścieżki. Następnie przy pomocy polecenia typu cmdlet o nazwie Get-Process (Pobierz proces) oraz wzorca uogólniającego ms* pobrana zostaje lista wszystkich procesów, których nazwy zaczynają się na litery ms. Po zidentyfikowaniu właściwego procesu, użyty został cmdlet Stop-Process (Zatrzymaj proces) z przełącznikiem confirm. Zamiast odpowiadać yes (tak) na monit z prośbą o potwierdzenie, można po prostu zawiesić wykonywanie danego polecenia, co pozwoli na wykonanie innego polecenia (np. jeśli zapomnieliśmy, jaka jest wartość identyfikatora procesu). Po zakończeniu wykonywania tego dodatkowego polecenia należy wpisać polecenie exit, co spowoduje powrót z zagnieżdżonego monitu z powrotem do zawieszonego polecenia. Po zabiciu procesu programu mspaint można to potwierdzić używając ponownie polecenia cmdlet Get-Process (Pobierz proces).
29 Rozdział 1: Powłoka programu Windows PowerShell 13 SuspendConfirmation.txt PS C:\Users\edwils> mspaint PS C:\Users\edwils> Get-Process ms* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName mspaint PS C:\Users\edwils> Stop-Process -id Confirm Confirm Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "mspaint (3064)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): s PS C:\Users\edwils>>> Get-Process ms* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName mspaint PS C:\Users\edwils>>> exit Confirm Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "mspaint (3064)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): y PS C:\Users\edwils> Get-Process ms*... PS C:\users\edwils> Stop-Process -id confirm Potwierdź Czy na pewno chcesz wykonać tę akcję? Wykonywanie operacji "Stop-Process" na elemencie docelowym "mspaint (1028)". [T] Tak [W] Tak na wszystko [N] Nie [S] Nie na wszystkie [M] Wstrzymaj Pomoc [?](wartość domyślna to "T"): m PS C:\users\edwils>>> Get-Process ms* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName , msdtc , mspaint PS C:\users\edwils>>> exit Potwierdź Czy na pewno chcesz wykonać tę akcję? Wykonywanie operacji "Stop-Process" na elemencie docelowym "mspaint (1028)". [T] Tak [W] Tak na wszystko [N] Nie [S] Nie na wszystkie [M] Wstrzymaj Pomoc [?](wartość domyślna to "T"): t PS C:\users\edwils> Get-Process ms* PS C:\users\edwils>
30 14 Windows PowerShell przewodnik po skryptach Przekazywanie opcji dla poleceń typu cmdlet Jak już pokazano w poprzednich częściach tego rozdziału, do kontrowania działania programów poleceń typu cmdlet można używać parametrów -whatif oraz -confirm. Jednym z pytań często zadawanych mi przez studentów jest pytanie Skąd wiadomo, jakie opcje są w ogóle dostępne?. Odpowiedź na to pytanie jest taka, że zespół tworzący program Windows PowerShell utworzył zbiór pewnych standardowych opcji. Te standardowe opcje nazywane są parametrami wspólnymi (common parameters). Przeglądając opisy składni różnych poleceń typu cmdlet często można zauważyć informację, że dany cmdlet obsługuje tzw. wspólne parametry. Poniżej pokazany został przykład takiego opisu dla polecenia cmdlet Get-Process (Pobierz proces): SYNTAX Get-Process [[-name] <string[]>] [<CommonParameters>] Get-Process -id <Int32[]> [<CommonParameters>] Get-Process -inputobject <Process[]> [<CommonParameters>] Jedną z użytecznych cech programu Windows PowerShell jest standaryzacja składni używanej przez programy polecenia typu cmdlet. Pozwala to na poważne uproszczenie procesu poznawania nowej powłoki i nowego języka. Wspólne parametry zostały zebrane w tabeli 1-1. Należy jednak pamiętać, że nie wszystkie z tych parametrów są obsługiwane przez wszystkie programy narzędziowe typu cmdlet. Jeśli jednak dany parametr jest używany, to będzie on interpretowany w taki sam sposób przez wszystkie polecenia typu cmdlet, ponieważ ich interpretacją zajmuje się motor programu Windows PowerShell. Tabela 1-1 Parametr -whatif -confirm -verbose -debug -erroraction -errorvariable -outvariable Parametry wspólne Znaczenie Instruuje cmdlet, aby nie wykonywać danej akcji. Zamiast tego cmdlet informuje, co by się stało, gdyby faktycznie został on uruchomiony. Instruuje cmdlet, aby przed wykonaniem polecenia wyświetlić monit z prośbą o potwierdzenie. Instruuje cmdlet, aby wyświetlał więcej szczegółowych informacji o swoim działaniu, niż bez tego parametru. Instruuje cmdlet, aby wyświetlił informacje pomocne przy debugowaniu. Instruuje cmdlet, aby w razie wystąpienia błędu wykonał określoną akcję. Dopuszczalne akcje to: continue (kontynuuj), stop (zatrzymaj), SilentlyContinue (Kontynuuj po cichu) oraz inquire (zapytaj). Instruuje cmdlet, aby do przechowywania informacji o błędach używać wskazanej zmiennej. Zmienna ta stanowić będzie uzupełnienie dla standardowej zmiennej $error. Instruuje cmdlet, aby informacje ze strumienia wyjściowego umieszczane były we wskazanej zmiennej.
31 Rozdział 1: Powłoka programu Windows PowerShell 15 Tabela 1-1 Parametr -outbuffer Parametry wspólne Znaczenie Instruuje cmdlet, aby przed wywołaniem następnego polecenia typu cmdlet w potoku zgromadzić określoną ilość obiektów. Korzystanie z polecenia Get-Help (Pobierz pomoc) Korzystanie z programu Windows PowerShell jest łatwe i intuicyjne nauka może odbywać się po prostu poprzez korzystanie z tego programu. Bezpośredni dostęp do systemu pomocy jeszcze bardziej ułatwia korzystanie z programu. Z systemu pomocy programu Windows PowerShell można korzystać na kilka różnych sposobów. Chcąc uzyskać informacje na temat korzystania z programu Windows PowerShell należy użyć programu narzędziowego typu cmdlet o nazwie Get-Help (Uzyskaj pomoc), tak jak to zostało pokazane poniżej: get-help get-help Powyższe polecenie powoduje wypisanie tekstu pomocy dotyczącego polecenia cmdlet Get-Help (Uzyskaj pomoc). Informacje zwrócone przez ten cmdlet zostały pokazane poniżej: NAME Get-Help SYNOPSIS Displays information about Windows PowerShell cmdlets and concepts. SYNTAX Get-Help [[-name] <string>] [-component <string[]>] [-functionality <string []>] [-role <string[]>] [-category <string[]>] [-full] [<CommonParameters>] Get-Help [[-name] <string>] [-component <string[]>] [-functionality <string []>] [-role <string[]>] [-category <string[]>] [-detailed] [<CommonParamete rs>] Get-Help [[-name] <string>] [-component <string[]>] [-functionality <string []>] [-role <string[]>] [-category <string[]>] [-examples] [<CommonParamete rs>] Get-Help [[-name] <string>] [-component <string[]>] [-functionality <string []>] [-role <string[]>] [-category <string[]>] [-parameter <string>] [<Comm onparameters>] DETAILED DESCRIPTION The Get-Help cmdlet displays information about Windows PowerShell cmdlets and concepts. You can also use "Help {<cmdlet name> <topic-name>" or "<cmd let-name> /?". "Help" displays the help topics one page at a time. The "/?" displays help for cmdlets on a single page. RELATED LINKS Get-Command
32 16 Windows PowerShell przewodnik po skryptach Get-PSDrive Get-Member REMARKS For more information, type: "get-help Get-Help -detailed". For technical information, type: "get-help Get-Help -full". PS C:\users\edwils> get-help get-help NAZWA Get-Help STRESZCZENIE Wyświetla informacje o cmdletach i koncepcjach powłoki Windows PowerShell. SKŁADNIA Get-Help [[-name] <string>] [-component <string[]>] [-functionality <string[]>] [-role <string[]>] [-category <string[]>] [-full] [<CommonParameters>] Get-Help [[-name] <string>] [-component <string[]>] [-functionality <string[]>] [-role <string[]>] [-category <string[]>] [-detailed] [<CommonParameters>] Get-Help [[-name] <string>] [-component <string[]>] [-functionality <string[]>] [-role <string[]>] [-category <string[]>] [-examples] [<CommonParameters>] Get-Help [[-name] <string>] [-component <string[]>] [-functionality <string[]>] [-role <string[]>] [-category <string[]>] [-parameter <string>] [<CommonParameters>] SZCZEGÓŁOWY OPIS Cmdlet Get-Help wyświetla informacje o cmdletach i koncepcjach powłoki Windows PowerShell. Można również użyć polecenia "Help {<nazwa cmdletu> <nazwa-tematu>" lub "<nazwa-cmdletu /?". Polecenie "Help" wyświetla tematy pomocy po jednej stronie na raz. Symbol "/?" wyświetla pomoc dla cmdletów na jednej stronie. ŁĄCZA POKREWNE Get-Command Get-PSDrive Get-Member UWAGI Aby uzyskać więcej informacji, wpisz polecenie: "get-help Get-Help -detailed". Aby uzyskać informacje techniczne, wpisz polecenie: "get-help Get-Help -full". Wyjątkową właściwością systemu bezpośredniej pomocy programu Windows PowerShell jest fakt, że system ten nie tylko potrafi wyświetlać informacje pomocy dotyczące różnych poleceń, ale także to, że oferuje trzy różne poziomy wyświetlania tych informacji: normal (normalny), detailed (szczegółowy) oraz full (pełen). Ponadto możliwe jest uzyskanie pomocy na temat koncepcji i pojęć stosowanych przez program Windows PowerShell. Ta ostatnia możliwość jest równoważna posiadaniu instrukcji obsługi dostępnej w trybie online. W celu uzyskania listy wszystkich artykułów pomocy dotyczących różnych pojęć należy użyć polecenia Get-Help about*, tak jak to pokazano poniżej: get-help about*
33 Rozdział 1: Powłoka programu Windows PowerShell 17 Przypuśćmy, że nie pamiętamy dokładnej nazwy polecenia typu cmdlet, z którego zamierzaliśmy skorzystać, ale pamiętamy, że był to cmdlet o nazwie zaczynającej się na get. Pełną nazwę tego polecenia można uzyskać posługując się znakami uogólniającymi (takim jak *). Np.: get-help get* Tę technikę wykorzystywania operatów uogólniających można rozszerzyć jeszcze dalej. Jeśli pamiętamy, że potrzebny cmdlet był narzędziem z grupy get, którego nazwa rozpoczynała się na literę p, to nazwę tego narzędzia można uzyskać przy pomocy następującego polecenia: get-help get-p* Przypuśćmy jednak, że znamy dokładną nazwę polecenia typu cmdlet, ale nie pamiętamy szczegółów jego składni. W takiej sytuacji można skorzystać z argumentu -examples (przykłady). W celu uzyskania kliku przykładów użycia polecenia cmdlet Get-PSDrive można skorzystać z polecenia Get-Help (Pobierz pomoc) z argumentem -examples, tak jak to zostało pokazane poniżej: get-help get-psdrive -examples Jeśli chcemy, aby tekst pomocy wyświetlany był kolejno, po jednej stronie, to można użyć funkcji pomocy wyświetlającej tekst pomocy poprzez funkcję more. Jest to bardzo przydatna możliwość, jeśli chce się uniknąć ciągłego przewijania tekstu pomocy w górę i w dół. Przykład takiego polecenia pokazany został poniżej: get-help get-help more Strumień wyjściowy tego polecenia, sformatowany za po mocą funkcji more, pokazany został na rysunku 1-3. W celu uzyskania szczegółowej pomocy na temat plecenia cmdlet Get-Help (Pobierz pomoc) należy użyć argumentu -detailed, tak jak to pokazano poniżej: get-help get-help -detailed Jeśli potrzebować będziemy technicznych informacji na temat polecenia cmdlet Get-Help (Pobierz pomoc), to należy użyć argumentu -full. Odpowiedni przykład znajduje się poniżej: get-help get-help -full Ciągłe wpisywanie nazwy Get-Help może być męczące. W końcu jest to aż 8 znaków, w tym jeden myślnik. Rozwiązaniem może być utworzenie dla polecenia Get-Help tzw. aliasu. Alias to skrócona kombinacja znaków, której wpisanie spowoduje uruchomienie żądanego programu lub polecenia typu cmdlet. Tworząc alias dla polecenia Get-Help można np. przypisać ten cmdlet do kombinacji liter gh.
34 18 Windows PowerShell przewodnik po skryptach Rysunek 1-3 Stosowanie funkcji more umożliwia wyświetlanie długich tematów kolejno, po jednej stronie. Wskazówka Przed utworzeniem nowego aliasu dla polecenia typu cmdlet należy sprawdzić za pomocą polecenia Get-Alias (Pobierz alias), czy nie istnieje już inny alias o takiej samej nazwie. Następnie korzystając z polecenia cmdlet Set-Alias (Ustaw alias) można przypisać wybrany cmdlet do unikalnej kombinacji znaków. Praca z aliasami i przypisywanie skróconych nazw poleceniom typu cmdlet Aliasy umożliwiają przypisywanie skróconych nazw do programów narzędziowych typu cmdlet. Pozwala to na poważne uproszczenie korzystania z wiersza poleceń programu Windows PowerShell i umożliwia dostosowanie składni poleceń do własnych preferencji. Jako przykład załóżmy, że chcemy utworzyć alias dla polecenia cmdlet Get-Help (Pobierz pomoc). Prawdopodobnie większość osób wolałaby wpisywać litery gh, zamiast całego słowa Get-Help. Aby uniknąć nieporozumień, najpierw należy sprawdzić, czy żądanej kombinacji znaków nie został już przypisany inny alias. Kolejna rzecz, którą warto zrobić, to zapoznanie się z tekstem pomocy dla polecenia Set-Alias (Ustaw alias). Po wykonaniu tych czynności należy wywołać cmdlet Set-Allias przekazując mu nową nazwę dla tworzonego aliasu oraz nazwę polecenia typu cmdlet, którego dotyczyć ma ten alias. Po utworzeniu aliasu można sprawdzić jego poprawność, korzystając z polecenia Get-Alias (Pobierz alias). Pełny kod przykładów z tej części znajduje się na towarzyszącej tej książce płycie CD-ROM, w pliku GhAlias.txt z katalogu chapter01.
35 Rozdział 1: Powłoka programu Windows PowerShell Pobierz alfabetyczną listę wszystkich aktualnie zdefiniowanych aliasów i sprawdź, czy widnieje na niej alias przypisany do polecenia cmdlet Get-Help lub do kombinacji znaków gh. Polecenie pozwalające na wykonanie tego zadania zostało pokazanie poniżej: get-alias sort 2. Po sprawdzeniu, że nie istnieje żaden alias dla polecenia cmdlet Get-Help oraz że żaden alias nie został przypisany do kombinacji liter gh, zapoznaj się ze składnią polecenia Set-Alias (Ustaw alias). Użyj do tego celu polecenia Get-Help z argumentem -full. Odpowiednie polecenie zostało pokazane poniżej: get-help set-alias -full 3. Używając polecenia cmdlet Set-Alias (Ustaw alias) przypisz kombinację liter gh do polecenia Get-Help. W tym celu należy wykonać następujące polecenie: set-alias gh get-help 4. Używając polecenia cmdlet Get-Alias (Pobierz alias) sprawdź poprawność utworzenia aliasu. W celu celu należy wykonać następujące polecenie: Get-Alias gh Wskazówka Jeśli składnia polecenia cmdlet Set-Alias jest dla kogoś nieco dezorientująca, to zamiast stosowanego domyślnie pozycyjnego wiązania parametrów można posługiwać się parametrami nazwanymi. Ponadto zalecane jest użycie przełącznika whatif albo confirm. Możliwe jest także podanie opisu dla tworzonego aliasu. Zmodyfikowana składnia dla tego polecenia wyglądać będzie w następujący sposób: Set-Alias -Name gh -Value Get-Help -Description "mred help alias" -WhatIf Jak zatem widać, program Windows PowerShell może być używany jako zamiennik interpretera poleceń CMD. Zawiera on także dużą liczbę wbudowanych programów narzędziowych typu cmdlet, które umożliwiają wykonywanie mnóstwa różnych działań. Te polecenia typu cmdlet mogą być używane albo jako narzędzia autonomiczne, albo można je uruchamiać razem jako jedną grupę. Dodatkowe zastosowania poleceń typu cmdlet Po zaznajomieniu się ze sposobem korzystania z polecenia cmdlet oferującego dostęp do systemu pomocy oraz sposobu korzystania z aliasów, nadeszła pora na zapoznanie się z innymi sposobami wykorzystywania narzędzi typu cmdlet, oferowanych przez program Windows PowerShell. Wskazówka Aby przyspieszyć wpisywanie nazw poleceń typu cmdlet, wystarczy wpisać tylko tyle znaków, ile potrzeba do jednoznacznego rozróżnienia danego polecenia, a następnie wcisnąć klawisz Tab. Jaki będzie tego rezultat? Wciśnięcie klawisza Tab spowoduje uzupełnienie nazwy polecenia typu cmdlet. Taka technika działa również w przypadku nazw argumentów oraz innych procedur. Warto nieco poeksperymentować z tą doskonałą oszczędzającą czas techniką. Dzięki niej już nigdy nie trzeba będzie wpisywać np. get-command!
36 20 Windows PowerShell przewodnik po skryptach Uruchamianie programu Windows PowerShell Po zainstalowaniu programu Windows PowerShell jest on natychmiast gotowy do użytku. Jednak konieczność jednoczesnego naciskania klawisza R oraz klawisza z logo systemu Windows lub posługiwania się myszą w celu otwarcia za pomocą menu Start okna dialogowego Uruchom i wpisywania w tym oknie za każdym razem PowerShell z pewnością jest dość uciążliwe. Z tego względu utworzyłem skrót do programu Windows PowerShell i umieściłem go na pulpicie. Biorąc pod uwagę sposób, w jaki pracuję, jest to dla mnie idealne rozwiązanie. W rzeczywistości jest to na tyle użyteczne, że napisałem skrypt wykonujący tę operację. W celu automatycznego utworzenia odpowiedniego skrótu na pulpicie skrypt ten można uruchomić za pośrednictwem skryptu logowania. Skrypt ten nosi nazwę CreateShortCutToPowerShell.vbs: CreateShortCutToPowerShell.vbs Option Explicit Dim objshell Dim strdesktop Dim objshortcut Dim strprog strprog = "powershell.exe" Set objshell=createobject("wscript.shell") strdesktop = objshell.specialfolders("desktop") set objshortcut = objshell.createshortcut(strdesktop & "\powershell.lnk") objshortcut.targetpath = strprog objshortcut.windowstyle = 1 objshortcut.description = funfix(strprog) objshortcut.workingdirectory = "C:\" objshortcut.iconlocation= strprog objshortcut.hotkey = "CTRL+SHIFT+P" objshortcut.save Function funfix(strin) funfix = InStrRev(strin,".") funfix = Mid(strin,1,funfix) End function Ponieważ polecenia typu cmdlet zwracają obiekty, a nie wartości tekstowe, możliwe jest uzyskanie dodatkowych informacji o zwróconych obiektach. Te dodatkowe informacje nie byłyby dostępne w przypadku korzystania wyłącznie z danych tekstowych. W celu uzyskania dodatkowych informacji należy użyć symbol potoku ( ), a następnie pobrać informacje z jednego polecenia typu cmdlet i przekazać je do drugiego. Może wydawać się, że jest to skomplikowane, ale w rzeczywistości jest bardzo proste. Pod koniec tego rozdziału taka procedura powinna wydawać się już całkiem naturalna. Rozpatrzmy najbardziej podstawowy przykład: uzyskiwanie i formatowanie listy zawartości katalogu. Po uzyskaniu listy zawartości katalogu może pojawić się potrzeba sformatowania sposobu wyświetlania tej listy, np. jako tabeli abo jako zwykłej listy. Jak zatem widać, mamy tu do czynienia z dwiema osobnymi operacjami: pobieraniem listy zawartości
37 Rozdział 1: Powłoka programu Windows PowerShell 21 katalogu oraz formatowaniem tej listy. Zadanie formatowania realizowane jest po prawej stronie symbolu potoku, po zgromadzeniu listy zawartości katalogu. Jest to zwykły sposób działania potoków. Przyjrzymy się im teraz w działaniu, na przykładzie polecenia cmdlet Get-ChildItem (Pobierz element potomny). Korzystanie z polecenia Get-ChildItem We wcześniej części tego rozdziału, do pobrania listy wszystkich plików z katalogu bieżącego używane było polecenie dir. Było to możliwe, ponieważ program Windows PowerShell posiada wbudowany alias przypisujący cmdlet Get-Childltem (Pobierz element potomny) do kombinacji liter dir. Można to sprawdzić posługując się poleceniem cmdlet Get-Alias (Pobierz alias), co zostało pokazne w przykładzie z pliku GetDirAlias.txt. GetDirAlias.txt PS C:\> Get-Alias dir CommandType Name Definition Alias dir Get-ChildItem W rzeczywistości program Windows PowerShell nie zawiera polecenia typu cmdlet o nazwie dir ani nie korzysta z polecenia dir. Alias dir został po prostu skojarzony z poleceniem cmdlet Get-Childltem (Pobierz element potomny). To dlatego wynik polecenia dir jest inny w oknie programu Windows PowerShell niż w oknie interpretera poleceń Cmd.exe. O tym, że polecenie dir jest w istocie aliasem, można się przekonać po rozszyfrowaniu skojarzenia za pomocą polecenia Get-Alias. Wskazówka Jeśli korzystając z polecenia Get-Childltem chcemy, aby lista zawartości katalogu zawierała również ukryte oraz systemowe pliki i foldery, to należy użyć przełącznika force (Wymuś). Całe polecenie będzie wówczas wyglądać następująco: Get-ChildItem -Force. Formatowanie wyjścia Program Windows PowerShell zawiera cztery polecenia formatujące typu cmdlet. Trzy spośród nich, Format-List (Format listy), Format-Wide (Forma szeroki) oraz Format-Table (Format tabeli), są używane rutynowo. Czwarty cmdlet, Format-Custom (Format niestandardowy), może wyświetlać dane wyjściowe w sposób niebędący ani listą, ani tabelą, ani formatem szerokim. Cmdlet ten realizuje to wykorzystując plik *.format.ps1xml. Możliwe jest wykorzystywanie domyślnych widoków zawartych w plikach *.format.ps1xml albo zdefiniowanie własnych plików typu format.ps1xml. Przyjrzyjmy się zatem formatowaniu strumienia wyjściowego przy użyciu pozostałych trzech poleceń formatujących, zaczynając od najbardziej użytecznego z tej trójki: Format-List.
38 22 Windows PowerShell przewodnik po skryptach Format-List Cmdlet Format-List jest jednym z podstawowych poleceń typu cmdlet, które będzie bardzo często używane przez każdego administratora. Np. używając polecenia Get-WmiObject (Pobierz obiekt WMI) do odczytania właściwości klasy Win32_LogicalDisk otrzymamy jedynie minimalną listę domyślnych właściwości tej klasy. Odpowiedni przykład przedstawiony został poniżej: PS C:\> Get-WmiObject Win32_LogicalDisk DeviceID : C: DriveType : 3 ProviderName : FreeSpace : Size : VolumeName : Sea Drive Wprawdzie w wielu przypadkach takie działanie jest odpowiednie, ale czasami możemy być zainteresowani również innymi właściwościami tej klasy. Pierwszą rzeczą, którą należy wykonać podczas sprawdzania dostępności innych właściwości, jest użycie znaku uogólniającego *. Spowoduje to wyświetlenie listy wszystkich właściwości, tak jak to zostało pokazane poniżej: PS C:\> Get-WmiObject Win32_LogicalDisk Format-List * Status : Availability : DeviceID : C: StatusInfo : GENUS : 2 CLASS : Win32_LogicalDisk SUPERCLASS : CIM_LogicalDisk DYNASTY : CIM_ManagedSystemElement RELPATH : Win32_LogicalDisk.DeviceID="C:" PROPERTY_COUNT : 40 DERIVATION : {CIM_LogicalDisk, CIM_StorageExtent, CIM_LogicalDevice, CIM_LogicalElement...} SERVER : M NAMESPACE : root\cimv2 PATH : \\M \root\cimv2:Win32_LogicalDisk. DeviceID="C:" Access : 0 BlockSize : Caption : C: Compressed : False ConfigManagerErrorCode : ConfigManagerUserConfig : CreationClassName : Win32_LogicalDisk Description : Local Fixed Disk DriveType : 3 ErrorCleared : ErrorDescription : ErrorMethodology : FileSystem : NTFS FreeSpace :
39 Rozdział 1: Powłoka programu Windows PowerShell 23 InstallDate : LastErrorCode : MaximumComponentLength : 255 MediaType : 12 Name : C: NumberOfBlocks : PNPDeviceID : PowerManagementCapabilities : PowerManagementSupported : ProviderName : Purpose : QuotasDisabled : QuotasIncomplete : QuotasRebuilding : Size : SupportsDiskQuotas : False SupportsFileBasedCompression : True SystemCreationClassName : Win32_ComputerSystem SystemName : M VolumeDirty : VolumeName : Sea Drive VolumeSerialNumber : F0FE15F7 Po zapoznaniu się z listą wszystkich właściwości dostępnych dla danej klasy można następnie wybrać tylko te z nich, które są dla nas interesujące. Znak uogólniający * należy zastąpić nazwami właściwości wybranych z poprzedniej listy. Ta technika została zilustrowana poniżej: PS C:\> Get-WmiObject Win32_LogicalDisk Format-List Name, FileSystem, FreeSpace Name : C: FileSystem : NTFS FreeSpace : Zamiast wpisywać długą listę nazw właściwości, korzystając ze znaków uogólniających można określić żądany przedział właściwości. Np. aby wyświetlić tylko te właściwości, których nazwy zaczynają się na literę f, można posłużyć się pokazaną poniżej techniką: PS C:\> Get-WmiObject Win32_LogicalDisk Format-List f* FileSystem : NTFS FreeSpace : Jeśli interesują nas właściwości o nazwach zaczynających się na literę n lub na literę f, to należy posłużyć się nawiasami kwadratowymi, tak jak to pokazano poniżej: PS C:\> Get-WmiObject Win32_LogicalDisk Format-List [nf]* FileSystem : NTFS FreeSpace : Name : C: NumberOfBlocks :
40 24 Windows PowerShell przewodnik po skryptach Wszystkie te polecenia wraz z kompletnymi wynikami ich działania można znaleźć w pliku Format-List.txt, znajdującym się na towarzyszącej tej książce płycie CD-ROM, w katalogu chapter01. Format-Table Cmdlet Format-Table oferuje kilka funkcji sprawiających, że narzędzie to szczególnie dobrze nadaje się do realizacji zadań związanych z zarządzaniem siecią. W szczególności potrafi ono tworzyć kolumny danych, w sposób umożliwiający ich szybkie przeglądanie. Podobnie jak w przypadku poleceń Format-List i Format-Wide, istnieje możliwość wyboru właściwości, które mają być wyświetlane, i eliminowania w ten sposób rozpraszających uwagę danych pochodzących ze zbyt rozwlekłych strumieni wyjściowych niektórych poleceń typu cmdlet. W pokazanym poniżej przykładzie najpierw przeszukiwany jest cały dysk twardy w poszukiwaniu wszystkich plików dzienników (tj. plików z rozszerzeniem.log). Pełen strumień wyjściowy tego polecenia jest dość znacznych rozmiarów i poniżej pokazany został tylko jego przykładowy wycinek. W pokazanym poniżej przykładzie cmdlet Format-Table został użyty do uformowania danych wyjściowych polecenia Get-Childltem: PS C:\> Get-ChildItem c:\ -Recurse -Include *.log Format-Table Directory: Microsoft.PowerShell.Core\FileSystem::C:\Backup_Extras_92705 Mode LastWriteTime Length Name a--- 8/3/2004 6:34 PM setupapi.log -a--- 8/2/2004 9:32 PM Windows Update.log -a--- 6/8/ :41 AM wmsetup.log Oprócz polegania na domyślnym sposobie działania tego polecenia typu cmdlet, możliwe jest wybieranie konkretnych właściwości. Jednym z problemów ujawniających się przy takim podejściu jest fakt, że do formatowania danych wyjściowych używana jest dostępna rozdzielczość ekranu, co często może prowadzić do pokazanej poniżej sytuacji, w której część kolumn wypada po przeciwnej stronie okna. Taki format może być akceptowalny dla szybkiego wyświetlania mocno zróżnicowanych kolumn, ale nie nadaje się do zapisywania danych. PS C:\> Get-ChildItem c:\ -Recurse -Include *.log Format-Table -Property name, length, lastwritetime Name Length LastWriteTime setupapi.log /3/2004 6:34:53 PM Windows Update.log /2/2004 9:32:06 PM wmsetup.log /8/ :41:32 AM Debug.log 0 8/23/2006 8:10:38 PM
41 Rozdział 1: Powłoka programu Windows PowerShell 25 AVCheck.Log /8/2007 9:28:05 AM AVCheckServer.Log /8/2007 9:28:05 AM W celu utworzenia listy, wykorzystującej dostępny rozmiar okna w bardziej efektywny sposób, można zastosować przełącznik autosize. Korzystając z przełącznika autosize należy tylko pamiętać o jednej rzeczy: użycie tego przełącznika wymaga, aby znana była długość najdłuższego elementu w każdej kolumnie. Oznacza to, że cmdlet musi zaczekać na zakończenie enumeracji wszystkich elementów, a następnie wyznaczyć maksymalną długość każdej kolumny oraz rozmiar całej listy. Może to powodować zablokowanie wykonywania polecenia do czasu dostarczenia wszystkich elementów, co może zająć nieco czasu. Administrator może jednak nie mieć czasu, aby po użyciu przełącznika autosize czekać na zakończenie enumeracji dużej kolekcji obiektów, np. gdy pracuje nad problemem powodującym przestój serwera. Dla małych zbiorów obiektów negatywny wpływ na wydajność jest pomijalny, jednak w przypadku poleceń, których wykonanie zajmuje dużo czasu, takich jak pokazane w tym przykładzie, różnica może być istotna. Jednak uzyskiwana tym kosztem różnica w strumieniu wyjściowym jest również istotna (i większość administratorów prawdopodobnie zgodzi się, że warto dłużej zaczekać na bardziej czytelne wyniki). PS C:\> Get-ChildItem c:\ -Recurse -Include *.log Format-Table -Property name, length, lastwritetime -AutoSize Name Length LastWriteTime setupapi.log /3/2004 6:34:53 PM Windows Update.log /2/2004 9:32:06 PM wmsetup.log /8/ :41:32 AM Debug.log 0 8/23/2006 8:10:38 PM AVCheck.Log /8/2007 9:28:05 AM Ostatnią rzeczą, na którą warto zwrócić uwagę w przypadku polecenia Format-Table, jest połączenie go z poleceniem Sort-Object (Sortowanie obiektów). Cmdlet Sort-Object umożliwia porządkowanie danych według ich właściwości i ich wyświetlanie w posortowany sposób. W pokazanym poniżej przykładzie użyty został alias polecenia Sort-Object (sort), co pozwala na zredukowanie ilości potrzebnych do wpisania znaków. Pomimo tego, całe polecenie jest nadal dość długie i dla poprawy jego czytelności zostało umieszczone w dwóch liniach (nawiasem mówiąc, jeśli polecenie staje się na tyle długie, to zwykle przekształcam je w skrypt). Analizując przedstawione poniżej polecenie należy zwrócić uwagę, że dane są sortowane przed przekazaniem ich do polecenia Format-Table. Należy również pamiętać, że domyślnym porządkiem sortowania dla polecenia Sort-Object jest porządek rosnący (od najmniejszego do największego). Jeśli istnieje taka potrzeba, można użyć przełącznika -descending, aby uzyskać dane wyjściowe uporządkowane w kolejności od największego do najmniejszego. PS C:\>Get-ChildItem c:\ -Recurse -Include *.log Sort -Property length Format-Table name, lastwritetime, length -AutoSize Name LastWriteTime Length PASSWD.LOG 5/10/2007 2:44:58 AM 0 sam.log 11/29/2006 1:14:33 PM 0
42 26 Windows PowerShell przewodnik po skryptach poqexec.log 2/1/2007 6:50:49 PM 0 ChkAcc.log 5/10/2007 2:45:00 AM 0 Debug.log 8/23/2006 8:10:38 PM 0 setuperr.log 3/16/2007 7:18:17 AM 0 setuperr.log 4/4/2007 6:34:54 PM 0 netlogon.log 2/1/2007 7:04:44 PM 3 Istnieją również inne sposoby sortowania danych. Listę plików dzienników można np. posortować w kolejności mającej, według daty ich modyfikacji. W ten sposób na początku listy znajdą się ostatnio zmodyfikowane pliki dzienników. Wykonanie takiej procedury wymaga zmodyfikowania obiektu sortującego. Pozostała część polecenia pozostaje bez zmian. Część wyników tego polecenia została pokazana poniżej. Warto w tym miejscu zwrócić uwagę na fakt, że większość ze znalezionych plików dzienników została zmodyfikowana podczas procesu logowania się w systemie. PS C:\> Get-ChildItem c:\ -Recurse -Include *.log Sort -Property lastwritetime -descending Format-Table name, lastwritetime, length -AutoSize Name LastWriteTime Length mtrmgr.log 5/10/2007 4:56:52 AM LocationServices.log 5/10/2007 4:56:26 AM StateMessage.log 5/10/2007 4:55:00 AM Scheduler.log 5/10/2007 4:55:00 AM StatusAgent.log 5/10/2007 4:53:24 AM edb.log 5/10/2007 4:51:49 AM PolicyEvaluator.log 5/10/2007 4:51:25 AM ClientLocation.log 5/10/2007 4:51:24 AM FSPStateMessage.log 5/10/2007 4:51:18 AM CBS.log 5/10/2007 4:46:55 AM CertificateMaintenance.log 5/10/2007 4:42:17 AM CcmExec.log 5/10/2007 4:00:51 AM wmiprov.log 5/10/2007 3:03:11 AM PolicyAgentProvider.log 5/10/2007 2:54:02 AM UpdatesHandler.log 5/10/2007 2:53:19 AM CIAgent.log 5/10/2007 2:53:19 AM ScanAgent.log 5/10/2007 2:53:18 AM UpdatesDeployment.log 5/10/2007 2:53:18 AM SrcUpdateMgr.log 5/10/2007 2:53:02 AM smssha.log 5/10/2007 2:52:02 AM execmgr.log 5/10/2007 2:52:02 AM InventoryAgent.log 5/10/2007 2:52:02 AM ServiceWindowManager.log 5/10/2007 2:52:02 AM SdmAgent.log 5/10/2007 2:49:46 AM UpdatesStore.log 5/10/2007 2:49:43 AM WUAHandler.log 5/10/2007 2:49:39 AM CAS.log 5/10/2007 2:49:35 AM PeerDPAgent.log 5/10/2007 2:49:35 AM 7900 PolicyAgent.log 5/10/2007 2:49:35 AM RebootCoordinator.log 5/10/2007 2:49:35 AM InternetProxy.log 5/10/2007 2:49:34 AM ClientIDManagerStartup.log 5/10/2007 2:49:34 AM WindowsUpdate.log 5/10/2007 2:46:46 AM edb.log 5/10/2007 2:46:43 AM setupapi.dev.log 5/10/2007 2:46:38 AM
43 Rozdział 1: Powłoka programu Windows PowerShell 27 setupapi.app.log 5/10/2007 2:46:38 AM WMITracing.log 5/10/2007 2:45:57 AM ChkAcc.log 5/10/2007 2:45:00 AM 0 PASSWD.LOG 5/10/2007 2:44:58 AM 0 Przeglądając plik Format-Table.txt z katalogu chapter01 można zauważyć, że plik ten zawiera wiele błędów. Wynika to z faktu, że przeszukując dysk cmdlet Get-ChildItem próbował otwierać również chronione pliki i katalogi powodując generowanie komunikatów o odmowie dostępu. W fazie tworzenia skryptu błędy te mogą być bardzo pomocne, ponieważ dzięki nim wiadomo, że pewne pliki i foldery są niedostępne, jednak po przeanalizowaniu danych ich użyteczność staje się problematyczna. Poniżej pokazany został przykład jednego z takich błędów: Get-ChildItem : Access to the path 'C:\Windows\CSC' is denied. At line:1 char:14 Get-ChildItem : Odmowa dostępu do ścieżki 'C:\Windows\CSC'. Plik: wiersz; wiersz: 1; znak: 14 Przydatność komunikatu błędu polega na wskazaniu w nim nazwy polecenia typu cmdlet, które spowodowało wystąpienie błędu oraz akcji, która doprowadziła do tego błędu. Tego typu błędy można wyeliminować dodając do polecenia Get-ChildItem wspólny parametr -ErrorAction ze słowem kluczowym SilentlyContinue. Zmodyfikowana linia z tym poleceniem została pokazana poniżej: PS C:\> Get-ChildItem c:\ -Recurse -Include *.log -erroraction SilentlyContinue Sort -Property lastwritetime -descending Format-Table name, lastwritetime, length -AutoSize Format-Wide Cmdlet Format-Wide nie jest już tak użyteczny jak polecenia Format-Table lub Format-List. Wynika to z ograniczenia pozwalającego na wyświetlanie tylko jednej właściwości każdego obiektu. Możliwość tworzenia tego typu list może być jednak przydatna. Przypuśćmy np., że chcemy uzyskać tylko listę działających na komputerze procesów. Można do tego celu wykorzystać cmdlet Get-Process (Pobierz proces) i skierować potokiem otrzymane obiekty wynikowe do polecenia cmdlet Format-Wide, tak jak to zostało pokazane poniżej: PS C:\> Get-Process Format-Wide ApMsgFwd Apoint casha csrss dwm FwcAgent InoRpc InoTask lsm MSASCui powershell rundll32 SearchIndexer ApntEx audiodg CcmExec csrss explorer Idle InoRT lsass mobsync powershell PowerShellIDE SearchFilterHost SearchProtocolHost
44 28 Windows PowerShell przewodnik po skryptach services smss SRUserService svchost svchost svchost svchost svchost svchost svchost System taskeng ThpSrv wininit WINWORD WmiPrvSE SLsvc spoolsv svchost svchost svchost svchost svchost svchost svchost svchost taskeng ThpSrv TODDSrv winlogon wmdc WmiPrvSE Wyniki wypisane przez to polecenie, choć użyteczne, zajmują jednak mnóstwo linii na konsoli, marnując przy tym sporą część ekranu. Lepszy rezultat można otrzymać używając parametru -column. Przykład ilustrujący użycie tego parametru został pokazany poniżej: PS C:\> Get-Process Format-Wide -Column 4 Wprawdzie zastosowanie 4 kolumn wyjściowych skraca długość całej listy o połowę, ale nadal nie prowadzi do maksymalnego wykorzystania całej dostępnej powierzchni ekranu. Choć możliwe jest napisanie skryptu wyznaczającego optymalną wartość parametru -column, takiego jak zamieszczony poniżej skrypt DemoFormatWide.ps1, to jednak takie przedsięwzięcie nie jest warte czasu oraz wysiłku niezbędnego do jego realizacji. DemoFormatWide.ps1 function fungetprocess() { if ($args) { Get-Process Format-Wide -autosize } else { Get-Process Format-Wide -column $i } } cls $i = 1 for ($i ; $i -le 10 ; $i++) { Write-Host -ForegroundColor red "`$i jest równe $i" fungetprocess } Write-Host -ForeGroundColor red "Teraz użyte zostało polecenie format-wide z parametrem -autosize" fungetprocess("auto")
45 Rozdział 1: Powłoka programu Windows PowerShell 29 Lepszym sposobem znalezienia optymalnej konfiguracji ekranu dla polecenia cmdlet Format-Wide będzie użycie przełącznika -autosize, tak jak to pokazano poniżej: PS C:\> Get-Process Format-Wide -AutoSize Stosowanie polecenia cmdlet Get-Command Istnieją trzy polecenia typu cmdlet, które można porównać do trzech podstawowych przypraw używanych w kuchni Cajun. Potrawy kuchni Cajun można przygotowywać w dowolny sposób, o ile tylko pamięta się o soli, pieprzu i papryce. Chcesz przygotować zieloną fasolkę a la Cajun? Dodaj trochę soli, pieprzu i papryki. Chcesz pracować z programem Windows PowerShell? A więc pamiętaj o trzech poleceniach cmdlet typu Cajun : Get-Help (Pobierz pomoc), Get-Command (Pobierz polecenie) oraz Get-Member (Pobierz element członkowski). Opierając się na tych trzech poleceniach można w pełni opanować posługiwanie się programem Windows PowerShell. Ponieważ cmdlet Get-Help został już omówiony wcześniej, zajmiemy się teraz omówieniem polecenia Get-Command. Najprostszym zastosowaniem polecenia Get-Command jest utworzenie listy poleceń dostępnych z poziomu programu Windows PowerShell. Jest to przydatna możliwość, jeśli chcemy szybko sprawdzić, jakie polecenia cmdlet są aktualnie dostępne. To elementarne zastosowanie polecenia Get-Command zostało pokazane poniżej. Warto w tym miejscu zwrócić uwagę na fakt, że definicja poleceń ma formę skróconą. PS C:\> Get-Command CommandType Name Definition Cmdlet Add-Content Add-Content [-Path] <String[]> [-Value] <Object[... Cmdlet Add-History Add-History [[-InputObject] <PSObject[]>] [-Pass... Cmdlet Add-Member Add-Member [-MemberType] <PSMemberTypes> [-Name]... Cmdlet Add-PSSnapin Add-PSSnapin [-Name] <String[]> [-PassThru] [-Ve... Cmdlet Clear-Content Clear-Content [-Path] <String[]> [-Filter <Strin... Cmdlet Clear-Item Clear-Item [-Path] <String[]> [-Force] [-Filter... Domyślnie polecenie Get-Command zwraca listę tylko poleceń typu cmdlet i dlatego pole CommandType (Typ polecenia) nie wnosi żadnej nowej informacji. Ładniejszy format tej listy można uzyskać tworząc potok kierujący wyniki do polecenia Format-List i pozostawiając jedynie pola z nazwą oraz z definicją. Działanie takie zostało pokazane poniżej. Jak widać na tym przykładzie, taka forma prezentacji wyników jest znacznie łatwiejsza do odczytania i dostarcza definicji składni każdego polecenia: PS C:\> Get-Command Format-List name, definition Name : Add-Content Definition : Add-Content [-Path] <String[]> [-Value] <Object[]> [-PassThru] [-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-Force] [-Credential<PSCredential>] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>]
46 30 Windows PowerShell przewodnik po skryptach [-ErrorVariable<String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm][-Encoding <FileSystemCmdletProviderEncoding>] Add-Content [-LiteralPath] <String[]> [-Value] <Object[]> [-PassThru][-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-Force] [-Credential<PSCredential>] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm] [-Encoding <FileSystemCmdletProviderEncoding>] Name : Add-History Definition : Add-History [[-InputObject] <PSObject[]>] [-Passthru] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable String>] [-OutBuffer <Int32>] Dotychczas pokazane zostało zwykle zastosowanie polecenia cmdlet Get-Command. Bardziej interesująca metoda korzystania z tego polecenia opiera się na znajomości czasowników i rzeczowników, składających się na nazwy poleceń typu cmdlet. Posiadając taką wiedzę można np. wyszukać wszystkie polecenia typu cmdlet zawierające w nazwie rzeczownik process (proces). Odpowiednie polecenie mogłoby wyglądać w następujący sposób: PS C:\> Get-Command -Noun process CommandType Name Definition Cmdlet Get-Process Get-Process [[-Name] <String[]>] [-Verbose] [-De... Cmdlet Stop-Process Stop-Process [-Id] <Int32[]> [-PassThru] [-Verbo... Jeśli zechcemy uzyskać listę poleceń, których rzeczownikowa część nazwy zaczyna się na literę p, to możemy skorzystać z tej procedury posługując się znakami uogólniającymi. Pozwala to zredukować liczbę koniecznych do wpisania znaków i jednocześnie pomaga zapoznać się z dostępnymi poleceniami typu cmdlet. Przykład takiego polecenia został pokazany poniżej: PS C:\> get-command -Noun p* CommandType Name Definition Cmdlet Add-PSSnapin Add-PSSnapin [-Name] <String[]> [-PassThru] [-Ve... Cmdlet Convert-Path Convert-Path [-Path] <String[]> [-Verbose] [-Deb... Cmdlet Get-PfxCertificate Get-PfxCertificate [-FilePath] <String[]> [-Verb... Cmdlet Get-Process Get-Process [[-Name] <String[]>] [-Verbose] [-De... Cmdlet Get-PSDrive Get-PSDrive [[-Name] <String[]>] [-Scope <String... Cmdlet Get-PSProvider Get-PSProvider [[-PSProvider] <String[]>] [-Verb... Cmdlet Get-PSSnapin Get-PSSnapin [[-Name] <String[]>] [-Registered]... Cmdlet Join-Path Join-Path
47 Rozdział 1: Powłoka programu Windows PowerShell 31 [-Path] <String[]> [-ChildPath] <Strin... Cmdlet New-PSDrive New-PSDrive [-Name] <String> [-PSProvider] <Stri... Cmdlet Out-Printer Out-Printer [[-Name] <String>] [-InputObject <PS... Cmdlet Remove-PSDrive Remove-PSDrive [-Name] <String[]> [-PSProvider <... Cmdlet Remove-PSSnapin Remove-PSSnapin [-Name] <String[]> [-PassThru] [... Cmdlet Resolve-Path Resolve-Path [-Path] <String[]> [-Credential <PS... Cmdlet Set-PSDebug Set-PSDebug [-Trace <Int32>] [-Step] [-Strict] [... Cmdlet Split-Path Split-Path [-Path] <String[]> [-LiteralPath <Str... Cmdlet Stop-Process Stop-Process [-Id] <Int32[]> [-PassThru] [-Verbo... Cmdlet Test-Path Test-Path [-Path] <String[]> [-Filter <String>]... Cmdlet Write-Progress Write-Progress [-Activity] <String> [-Status] <S... Domyślnie polecenie Get-Command wyświetla tylko polecenia typu cmdlet, ale może ono zwracać również nazwy innych elementów, nawet plików.exe lub.dll. Polecenie Get-Command może wyświetlać informacje o każdym elemencie, który można uruchomić z poziomu programu Windows PowerShell. Poniżej pokazany został przykład polecenia zwracającego listę wszystkich poleceń zawierających w nazwie słowo file (plik). Należy przy tym pamiętać, że wyświetlane są tylko te elementy, które dostępne są dla programu Windows PowerShell. PS C:\> get-command -Name *file* CommandType Name Definition Application avifile.dll C:\Windows\system32\avifile.dll Application filemgmt.dll C:\Windows\system32\filemgmt.dll Application FileSystem.format.ps1xml C:\Windows\System32\WindowsPowerShell\v1.0\FileS... Application filetrace.mof C:\Windows\System32\Wbem\filetrace.mof Application forfiles.exe C:\Windows\system32\forfiles.exe Działanie pokazanego powyżej przykładu można łatwo skorygować używając parametru -commandtype i ograniczając za jego pomocą listę wyników wyłącznie do poleceń typu cmdlet. Zmodyfikowana wersja tego polecenia została pokazana poniżej: PS C:\> get-command -Name *file* -CommandType cmdlet CommandType Name Definition Cmdlet Out-File Out-File
48 32 Windows PowerShell przewodnik po skryptach [-FilePath] <String> [[-Encoding] <Stri Powyższe przykłady ilustrują możliwe sposoby wyszukiwania poleceń typu cmdlet za pomocą polecenia Get-Command. Wszystkie pokazane powyżej polecenia wraz z wygenerowanymi przez nie informacjami wyjściowymi znajdują się na towarzyszącej tej książce płycie CD-ROM w pliku Get-Command.txt z katalogu chapter01. Eksploracja obiektów przy użyciu polecenia Get-Member Trzecim ważnym poleceniem typu cmdlet, oferowanym przez program Windows PowerShell, jest polecenie Get-Member (Pobierz element członkowski). Gdy przedstawiam swoim studentom cmdlet Get-Member jako jedno z trzech poleceń Cajun, część z nich podchodzi do tego z nieufnością. Jeden ze studentów podniósł nawet rękę i zapytał, do czego nadaje się to polecenie. Jest to bardzo słuszne pytanie. Użyteczność polecenia Get-Member polega na tym, że może ono dostarczać informacji o tym, jakie właściwości i metody są obsługiwane przez dany obiekt. Jeśli przypomnimy sobie, że w programie Windows PowerShell wszystko jest obiektem, to będziemy mogli sami dojść, dlaczego polecenie to jest tak użyteczne. Prawdopodobnie wartość tego polecenia najlepiej będzie zilustrować na prostym przykładzie. Jeśli posiadamy folder o nazwie mytest i użyjemy polecenia Get-Item do pobrania obiektu reprezentującego ten folder, to wskaźnik do tego obiektu będzie można zapisać w zmiennej o nazwie $a. Zostało to pokazane poniżej: PS C:\> $a = Get-Item c:\mytest Gdy zmienna $a zawiera już wskaźnik do egzemplarza obiektu reprezentującego folder, można zapoznać się z metodami oraz właściwościami tego obiektu kierując go poprzez potok na wejście polecenie Get-Member. Odpowiednie polecenie wraz z wygenerowanym przez nie strumieniem wyjściowym zostało pokazane poniżej: PS C:\> $a Get-Member TypeName: System.IO.DirectoryInfo Name MemberType Definition Create Method System.Void Create(), System.Void Create(DirectorySecurity directorysecurity) CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedtype) CreateSubdirectory Method System.IO.DirectoryInfo CreateSubdirectory(String path), System.IO.Director... Delete Method System.Void Delete(), System.Void Delete(Boolean recursive) Equals Method System.Boolean Equals(Object obj) GetAccessControl Method System.Security.AccessControl.DirectorySecurity GetAccessControl(), System GetDirectories Method System.IO.DirectoryInfo[] GetDirectories(), System.IO.DirectoryInfo[GetFiles Method System.IO.FileInfo[] GetFiles(String searchpattern), System.IO.FileInfo[] G...
49 Rozdział 1: Powłoka programu Windows PowerShell 33 GetFileSystemInfos Method System.IO.FileSystemInfo[] GetFileSystemInfos(String searchpattern), System... GetHashCode Method System.Int32 GetHashCode() GetLifetimeService Method System.Object GetLifetimeService() GetObjectData Method System.Void GetObjectData *(SerializationInfo info, StreamingContext context) GetType Method System.Type GetType() get_attributes Method System.IO.FileAttributes get_attributes() get_creationtime Method System.DateTime get_creationtime() get_creationtimeutc Method System.DateTime get_creationtimeutc() get_exists Method System.Boolean get_exists() get_extension Method System.String get_extension() get_fullname Method System.String get_fullname() get_lastaccesstime Method System.DateTime get_lastaccesstime() get_lastaccesstimeutc Method System.DateTime get_lastaccesstimeutc() get_lastwritetime Method System.DateTime get_lastwritetime() get_lastwritetimeutc Method System.DateTime get_lastwritetimeutc() get_name Method System.String get_name() get_parent Method System.IO.DirectoryInfo get_parent() get_root Method System.IO.DirectoryInfo get_root() InitializeLifetimeService Method System.Object InitializeLifetimeService() MoveTo Method System.Void MoveTo(String destdirname) Refresh Method System.Void Refresh() SetAccessControl Method System.Void SetAccessControl(DirectorySecurity directorysecurity) set_attributes Method System.Void set_attributes(fileattributes value) set_creationtime Method System.Void set_creationtime(datetime value) set_creationtimeutc Method System.Void set_creationtimeutc(datetime value) set_lastaccesstime Method System.Void set_lastaccesstime(datetime value) set_lastaccesstimeutc Method System.Void set_lastaccesstimeutc(datetime value) set_lastwritetime Method System.Void set_lastwritetime(datetime value) set_lastwritetimeutc Method System.Void set_lastwritetimeutc(datetime value) ToString Method System.String ToString() PSChildName NoteProperty System.String PSChildName=mytest PSDrive NoteProperty System.Management.Automation.PSDriveInfo PSDrive=C PSIsContainer NoteProperty System.Boolean PSIsContainer=True PSParentPath NoteProperty System.String PSParentPath=Microsoft.PowerShell.Core\FileSystem::C:\ PSPath NoteProperty System.String PSPath=Microsoft.PowerShell.Core\FileSystem::C:\mytest PSProvider NoteProperty System.Management.Automation.ProviderInfo PSProvider=Microsoft.PowerShell.C... Attributes Property System.IO.FileAttributes Attributes {get;set;} CreationTime Property System.DateTime CreationTime {get;set;} CreationTimeUtc Property System.DateTime CreationTimeUtc {get;set;} Exists Property System.Boolean Exists {get;}
50 34 Windows PowerShell przewodnik po skryptach Extension Property System.String Extension {get;} FullName Property System.String FullName {get;} LastAccessTime Property System.DateTime LastAccessTime {get;set;} LastAccessTimeUtc Property System.DateTime LastAccessTimeUtc {get;set;} LastWriteTime Property System.DateTime LastWriteTime {get;set;} LastWriteTimeUtc Property System.DateTime LastWriteTimeUtc {get;set;} Name Property System.String Name {get;} Parent Property System.IO.DirectoryInfo Parent {get;} Root Property System.IO.DirectoryInfo Root {get;} Mode ScriptProperty System.Object Mode {get=$catr = "";... Na liście elementów składowych obiektu typu folder znajduje się między innymi właściwość parent (element nadrzędny). Właściwość tę można wykorzystać do odszukania folderu nadrzędnego dla folderu mytest. Odpowiedni przykład został pokazany poniżej: PS C:\> $a.parent Mode LastWriteTime Length Name d--hs 5/11/2007 2:39 PM C:\ Być może interesować nas będzie, kiedy po raz ostatni korzystano z danego folderu. Możemy wówczas skorzystać z właściwości LastAccessTime, tak jak to zostało pokazane poniżej: PS C:\> $a.lastaccesstime Friday, May 11, :39:12 PM PS C:\users\edwils> $a.lastaccesstime 10 czerwca :35:41 Jeśli natomiast zechcemy sprawdzić, czy obiekt zapisany w zmiennej w $a faktycznie jest folderem, to możemy skorzystać z właściwości PsIsContainer. Z poprzednich wyników polecenia Get-Member wiemy, że właściwość PsIsContainer jest właściwością logiczną (typu Boolean), a więc mogą przyjmować wartości True (prawda) lub False (fałsz). Odpowiednie polecenie zostało pokazane poniżej: PS C:\> $a.psiscontainer True Możemy również skorzystać z jednej ze zwróconych na liście metod. Np. metoda moveto (Przenieś do) pozwala na przeniesie folderu do innej lokalizacji. Z wyników zwróconych poprzednio przez polecenie Get-Member wiemy, że metoda moveto wymaga podania argumentu wejściowego typu łańcuch tekstowy, zawierającego wskazanie katalogu docelowego. Przenieśmy więc folder mytest do folderu c:\movedfolder, a następnie sprawdźmy za pomocą polecenia Test-Path, czy folder mytest faktycznie został przeniesiony do nowej lokalizacji. Odpowiednie polecenia zostały pokazane poniżej: PS C:\> $a.moveto("c:\movedfolder") PS C:\> Test-Path c:\movedfolder True PS C:\> Test-Path c:\mytest False PS C:\>
51 Rozdział 1: Powłoka programu Windows PowerShell 35 Korzystając z właściwości Name możemy teraz sprawdzić nazwę folderu reprezentowanego przez obiekt przechowywany w zmiennej $a. Odpowiednie polecenie wraz z wygenerowanym przez nie wynikiem zostało pokazane poniżej: PS C:\> $a.name movedfolder Jeśli zechcemy usunąć ten folder, możemy skorzystać z metody delete, tak jak to pokazano poniżej. Aby przekonać się, że folder ten został faktycznie usunięty, można skorzystać z polecenia dir m*. Polecenia te zostały pokazane poniżej. Należy zauważyć, że po ich wykonaniu folder faktycznie został usunięty. PS C:\> $a.delete() PS C:\> dir m* Directory: Microsoft.PowerShell.Core\FileSystem::C:\ Mode LastWriteTime Length Name d---- 4/21/2007 4:56 PM Maps d---- 5/5/2007 3:51 PM music -a--- 2/1/2007 6:17 PM 54 MASK.txt Wszystkie te polecenia wraz z wygenerowanymi przez nie informacjami wyjściowymi znajdują się na towarzyszącej tej książce płycie CD-ROM, w pliku Get-Member.txt w katalogu chapter01. Praca ze środowiskiem.net Framework Warto w tym miejscu zauważyć, że polecenia te faktycznie pochodzą ze środowiska.net Framework. Właściwie nie są to wcale polecenia programu Windows PowerShell. Oczywiście polecenia Get-Item, Get-Member i Test-Path są poleceniami typu cmdlet programu Windows PowerShell, ale obiekt System.IO.DirectoryInfo nie jest obiektem wywodzącym się z programu Windows PowerShell. Oznacza to, że korzystając z programu Windows PowerShell używamy tych samych metod i właściwości, z których korzystają profesjonalni programiści używający języka Visual Basic.NET lub C#. Oznacza to także, że wiele dodatkowych informacji można znaleźć w biuletynach MSDN (Microsoft Developer Network) oraz w pakietach typu Windows SDK (Software Development Kit). Dobra wiadomość dla wszystkich administratorów: jeśli potrzebnych informacji nie można znaleźć przy użyciu systemu pomocy online (za pomocą polecenia Get-Help), zawsze można skorzystać z internetowej witryny MSDN lub z dokumentacji towarzyszących pakietom typu Windows SDK.
52 36 Windows PowerShell przewodnik po skryptach Podsumowanie W rozdziale tym omówione zostały różne sposoby sprawdzania, czy program Windows PowerShell został zainstalowany na komputerze oraz kroki związane z konfigurowaniem tego programu do zastosowań w środowiskach korporacyjnych. Omówiono proces tworzenia profili programu Windows PowerShell oraz różne metody uruchamiania programu Windows PowerShell i wykonywania poleceń tego programu. Omówione zostały również metody rozszerzania funkcjonalności programu Windows PowerShell poprzez tworzenie niestandardowych aliasów i funkcji. Na zakończenie omówione zostały dokładniej trzy polecenia typu cmdlet programu Windows PowerShell: Get-Help, Get-Command oraz Get-Member.
53 Rozdział 2 Skrypty programu Windows PowerShell Po ukończeniu tego rozdziału Czytelnik będzie potrafił: n Konfigurować zasadę wykonywania skryptów dla programu Windows PowerShell. n Uruchamiać skrypty programu Windows PowerShell. n Używać instrukcji sterujących programu Windows PowerShell. n Używać instrukcji decyzyjnych i rozgałęziających. n Rozpoznawać i używać różne typy danych. n Używać wyrażeń regularnych do zapewniania zaawansowanych możliwości porównywania wzorców. n Używać argumentów podawanych w wierszu poleceń. Na dysku CD Wszystkie używane w tym rozdziale skrypty znajdują się na towarzyszącej tej książce płycie CD-ROM, w folderze \scripts\chapter02. Dlaczego warto korzystać ze skryptów? Dla wielu administratorów sieci pisanie skryptów, jakichkolwiek skryptów, to prawdziwa czarna magia, bardziej zbliżona do wróżenia z fusów niż do administrowania serwerem. Faktycznie, o ile w większości dużych korporacji zwykle znajduje się jakaś osoba od skryptów, to rzadko jest to więcej niż jedna osoba. Dzieje się tak pomimo wysiłków firmy Microsoft na rzecz promowania języka Visual Basic Scripting Edition (VBScript) jako skryptowego języka administratorów. O ile większość profesjonalistów przyznaje, że możliwość szybkiego przygotowania skryptu pozwalającego wykonać ad-hoc potrzebne zmiany na kilkudziesięciu podłączonych do sieci serwerach jest bardzo cenną umiejętnością to w rzeczywistości sztukę tę opanowała ledwie garstka z nich. W rzeczywistości jednak umiejętności większości pracowników mających w swoich firmach status osoby od skryptów bliższe są wiedzy, gdzie można znaleźć odpowiedni skrypt, który można łatwo zmodyfikować, niż rzeczywistej wiedzy, jak napisać poprawny skrypt od zera. Na szczęście sytuacja ta powinna ulec zmianie w świecie programu Windows PowerShell. Składnia programu Windows PowerShell została celowo dobrana tak, aby umożliwić łatwość korzystania z tego programu oraz łatwość jego nauki. Docelową grupą odbiorców tego programu są zatrudniani w przedsiębiorstwach i korporacjach administratorzy systemu Windows. A więc, dlaczego warto korzystać ze skryptów? Istnieje kilka powodów. Po pierwsze utworzenie skryptu ułatwia udokumentowanie konkretnej sekwencji poleceń. Jeśli np. zajdzie potrzeba utworzenia listy wszystkich udostępnionych na komputerze folderów 37
54 38 Windows PowerShell przewodnik po skryptach sieciowych, to można to zrobić przy pomocy klasy WMI Win32_share oraz polecenia cmdlet Get-WmiObject (Pobierz obiekt WMI), tak jak to zostało pokazanie poniżej: PS C:\> Get-wmiObject win32_share Name Path Description ADMIN$ C:\Windows Remote Admin C$ C:\ Default share CCMLogs$ C:\Windows\system32\ccm\logs CCMSetup$ C:\Windows\system32\ccmsetup IPC$ Remote IPC music C:\music none VPCache$ C:\Windows\system32\VPCache WMILogs$ C:\Windows\system32\wbem\logs Przypuśćmy jednak, że potrzebna jest tylko lista udostępnionych plików. Administrator może nie wiedzieć, że udziały plikowe są udziałami typu 0. Tak więc być może konieczne będzie odszukanie tej informacji w sieci Internet. Po uzyskaniu tej informacji administrator może skorzystać ze zmodyfikowanego polecenia, pokazanego poniżej: PS C:\> Get-WmiObject win32_share -Filter "type = '0'" Name Path Description CCMLogs$ C:\Windows\system32\ccm\logs CCMSetup$ C:\Windows\system32\ccmsetup music C:\music none VPCache$ C:\Windows\system32\VPCache WMILogs$ C:\Windows\system32\wbem\logs Jak widać, w tym przypadku administrator musi nie tylko zapamiętać, że typ udziału powinien mieć wartość 0, ale także składnia polecenia jest nieco bardziej złożona. A więc gdzie administrator mógłby zanotować te informacje? Oto jedna z sugestii: Gdy jako administrator zajmowałem się systemem Digital VAX, do przechowywania tego rodzaju tajemniczych poleceń używałem małego, kieszonkowego notebooka. Oczywiście, gdybym w jakiś sposób utracił tego małego notebooka lub zapomniał o zabraniu go ze sobą, znalazłbym się w poważnych tarapatach! Załóżmy teraz, że administratora interesują tylko te udziały plikowe, którym nie przypisano żadnego opisu. Odpowiednie polecenie zostało pokazane poniżej: PS C:\> Get-WmiObject win32_share -Filter "type = '0' AND description = ''" Name Path Description CCMLogs$ C:\Windows\system32\ccm\logs CCMSetup$ C:\Windows\system32\ccmsetup VPCache$ C:\Windows\system32\VPCache WMILogs$ C:\Windows\system32\wbem\logs W tym miejscu można już odnieść wrażenie, że stopień złożoności tego polecenia oraz jego składni uzasadnia już napisanie skryptu. Utworzenie skryptu jest bardzo łatwe. Wystarczy po prostu skopiować to polecenie z okna konsoli programu Windows PowerShell, wkleić
55 Rozdział 2: Skrypty programu Windows PowerShell 39 je do pliku tekstowego, nadać mu odpowiednią nazwę i zmienić rozszerzenia na.ps1. Tak przygotowany skrypt będzie można później uruchamiać z poziomu programu Windows PowerShell. Pokazane powyżej polecenia zostały zapisane w pliku Share.txt, znajdującym się na towarzyszącej tej książce płycie CD-ROM, w katalogu chapter02. Skrypt nosi nazwę GetFileShares.ps1. Dodatkową zaletą konfigurowana poleceń jako skryptów jest możliwość łatwego dokonywania ich modyfikacji. O ile pokazane poprzednio polecenia ograniczały się do raportowania informacji tylko o udziałach plikowych, poprzez odpowiednią zmianę skryptu można uzyskać informacje o udostępnionych drukarkach, zdalnych udziałach administracyjnych, udziałach typu IPC lub innych udziałach dowolnego, zdefiniowanego typu. Możliwa jest nawet taka modyfikacja skryptu, aby wybór rodzaju udziału odbywał się podczas jego uruchamiania. W tym celu należy sprawdzić za pomocą instrukcji if... else, czy dla skryptu określony został argument wiersza poleceń. Wskazówka Do sprawdzania argumentów podawanych w wierszu poleceń służy zmienna $args, która jest zmienną typu automatycznego, tworzoną do przechowywania argumentów z wiersza poleceń. Jeśli istnieje argument podany w wierszu poleceń, to należy użyć wartość określoną za pomocą tego argumentu. Jeśli podczas wywołania skryptu nie zostanie podany żaden argument, konieczne jest określenie wewnątrz skryptu wartości domyślnej. W przypadku omawianego skryptu utworzona zostanie lista udziałów plikowych, a użytkownik zostanie poinformowany o użyciu wartości domyślnych. Składnia polecenia Get-WmiObject (Pobierz obiekt WMI) jest taka sama, jaką posługiwano się w języku VBScript. Tworząc nowy skrypt warto również zadbać o wyświetlanie tekstu z opisem sposobu korzystania z danego skryptu (tzw. usage string). Pokazany poniżej skrypt GetSharesWithArgs.ps1 zawiera tekst przykładowej instrukcji, pomagający w zastosowaniu poprawnej składni skryptu. GetSharesWithArgs.ps1 if($args) { $type = $args Get-WmiObject win32_share -Filter "type = $type" } ELSE { Write-Host " Użyta zostanie domyślna wartość (0) oznaczająca udział typu plikowego. Inne poprawne wartości oznaczające typ udziału to: dla dyskowych udziałów administracyjnych dla administracyjnie udostępnionych kolejek wydruku dla administracyjnych udziałów urządzeń dla administracyjnego udziału ipc$ Przykład: C:\GetSharesWithArgs.ps1 ' ' " $type = '0' Get-WmiObject win32_share -Filter "type = $type" }
56 40 Windows PowerShell przewodnik po skryptach Innym powodem uzasadniającym tworzenie przez administratorów sieci skryptów programu Windows PowerShell jest uruchamianie tych skryptów jako zaplanowanych zadań. W świecie systemu Windows istnieje kilka różnych motorów harmonogramu zadań. Zaplanowane zadania można tworzyć, monitorować i usuwać za pomocą klasy WMI Win32_ScheduledJob. Ta klasa WMI jest dostępna od czasu systemu Windows NT 4.0. Systemy Windows XP oraz Windows Server 2003 zawierają program narzędziowy Schtasks.exe, który oferuje większą elastyczność niż klasa WMI Win32_ScheduledJob. Oprócz programu Schtasks.exe systemy Windows Vista oraz Windows Server 2008 zawierają także obiekt Schedule.Service, upraszczający konfigurowanie zaplanowanych zadań. Zamieszczony poniżej skrypt ListProcessesSortResults.ps1 stanowi przykład skryptu, który może być uruchamiany kilka razy dziennie, według zaplanowanego harmonogramu. Skrypt ten tworzy listę aktualnie działających procesów i zapisuje ją w pliku tekstowym jako sformatowaną i posortowaną tabelę. ListProcessesSortResults.ps1 $args = "localhost","loopback"," " foreach ($i in $args) {$strfile = "c:\mytest\"+ $i +"Processes.txt" Write-Host "Testowanie" $i "proszę czekać..."; Get-WmiObject -computername $i -class win32_process Select-Object name, processid, Priority, ThreadCount, PageFaults, PageFileUsage Where-Object {!$_.processid -eq 0} Sort-Object -property name Format-Table Out-File $strfile} Konfigurowanie zasady obsługi skryptów Ponieważ obsługa skryptów przez program Windows PowerShell jest domyślnie wyłączona, więc bardzo ważne jest, aby przed przystąpieniem do wdrożenia skryptów lub poleceń sprawdzić poziom obsługi skryptów na danej platformie. Próba uruchomienia skryptu programu Windows PowerShell w sytuacji, gdy obsługa skryptów nie została włączona, spowoduje wypisanie odpowiedniego komunikatu o błędzie, a skrypt nie zostanie uruchomiony. Komunikat z tym błędem pokazany został na rysunku 2-1. Błąd ten odnosi się do tzw. zasady ograniczonego wykonywania (ang. restricted execution policy). Istnieją cztery poziomy zasady wykonywania, które można skonfigurować w programie Windows PowerShell za pomocą polecenia Set-ExecutionPolicy (Ustaw zasadę wykonywania). Wszystkie te cztery poziomy zostały wymienione w tabeli 2-1. Zasadę ograniczonego wykonywania można skonfigurować za pomocą zasad grupy, przy użyciu ustawienia Turn On Script Execution (Włącz wykonywanie skryptów) usługi katalogowej Active Directory. Ustawienie to można zastosować wobec obiektu komputera albo wobec obiektu użytkownika. Ustawienia dotyczące obiektu komputera mają pierwszeństwo przed innymi ustawieniami. Wskazówka W celu uzyskania informacji o bieżących zasadach wykonywania skryptów, należy skorzystać z polecenia Get-ExecutionPolicy.
57 Rozdział 2: Skrypty programu Windows PowerShell 41 Rysunek 2-1 Próba uruchomienia skryptu przed włączeniem obsługi skryptów powoduje wygenerowanie błędu. Preferencje użytkownika w zakresie zasad ograniczonego wykonywania skryptów można skonfigurować za pomocą polecenia Set-ExecutionPolicy, ale należy pamiętać, że preferencje te nie zastępują ustawień skonfigurowanych za pomocą zasad grupy. Wynikowy zestaw ustawień zasady ograniczonego wykonywania można uzyskać za pomocą polecenia Get-ExecutionPolicy. Tabela 2-1 Poziomy zasady wykonywania skryptów Poziom Restricted (Ograniczony) AllSigned (Wszystkie podpisane) RemoteSigned (Zdalne podpisane) Unrestricted (Bez ograniczeń) Znaczenie Skrypty i pliki konfiguracyjne nie będą uruchamiane. Wszystkie skrypty i pliki konfiguracyjne muszą być podpisane przez zaufanego wydawcę. Wszystkie skrypty i pliki konfiguracyjne pobrane z sieci Internet muszą być podpisane przez zaufanego wydawcę. Uruchamiane będą wszystkie skrypty i pliki konfiguracyjne. Przed uruchomieniem skryptów poprawnych z sieci Internet wyświetlany będzie monit z prośbą o zgodę na uruchomienie.
58 42 Windows PowerShell przewodnik po skryptach Należy zdawać sobie sprawę, że w systemie Windows Vista dostęp do kluczy rejestru zawierających ustawienia zasady wykonywania skryptów jest ograniczony. Zwykły użytkownik nie może modyfikować tego klucza i nawet administrator pracujący z włączonym mechanizmem kontroli konta użytkownika (UAC User Account Control) nie będzie mógł modyfikować tych ustawień. Próba wykonania takiej modyfikacji spowoduje wygenerowanie błędu pokazanego na rysunku 2-2. Rysunek 2-2 Próba uruchomienia polecenia Set-ExecutlonPollcy przez użytkownika nieposiadającego uprawnień administracyjnych zakończy się niepowodzeniem. Oczywiście istnieje kilka sposobów na ominięcie problemów wynikających z istnienia mechanizmu UAC. Jednym z nich jest po prostu wyłączenie mechanizmu UAC, ale w większości przypadków jest to nieodpowiednie rozwiązanie. Lepszym rozwiązaniem jest kliknięcie prawym przyciskiem myszy ikony programu Windows PowerShell i wybranie z menu kontekstowego polecenia Run As Administrator (Uruchom jako administrator), tak jak to zostało pokazane na rysunku 2-3. Jeśli administrator (tak jak ja!) uzna metodę z klikaniem prawym klawiszem myszy za zbyt czasochłonną, to może zdecydować się na utworzenie drugiego skrótu do programu Windows PowerShell. Ten drugi skrót można nazwać np. admin_ps i skonfigurować jego właściwości w taki sposób, aby program uruchamiany był z uprawnieniami administratora. Pierwszy z tych skrótów powinien być wystarczający dla około 90% wszystkich potrzeb administracyjnych. Jeśli jednak potrzebny będzie wyższy poziom uprawnień, można będzie skorzystać ze skrótu administracyjnego. Właściwości skrótu admin_ps dla administracyjnej wersji programu PowerShell zostały pokazane na rysunku 2-4.
59 Rozdział 2: Skrypty programu Windows PowerShell 43 Rysunek 2-3 W celu uruchomienia programu Windows PowerShell z uprawnieniami administracyjnymi można kliknąć jego ikonę prawym klawiszem myszy i wybrać z menu polecenie Run As Administrator) Rysunek 2-4 Aby skonfigurować uruchamianie programu Windows PowerShell z uprawnieniami administracyjnymi, należy zaznaczyć pole wyboru opcji Run As Administrator w oknie dialogowym Advanced Properties. Uruchamianie skryptów programu Windows PowerShell Skryptów programu Windows PowerShell nie można uruchamiać poprzez zwykłe, dwukrotne kliknięcie myszą. Skryptów tych nie można również uruchamiać poprzez wpisanie ich nazwy w oknie dialogowym Start Run (Start Uruchom). Jeśli obsługa skryptów została włączona, to skrypty można uruchamiać z poziomu okna konsoli programu Windows PowerShell, ale wymaga to wpisania całej ścieżki do pliku ze skryptem, razem z rozszerzeniem.ps1. Jeśli istnieje potrzeba uruchomienia skryptu spoza programu Windows PowerShell, również koniecznie jest wpisanie pełnej ścieżki do skryptu, lecz tym razem jako argumentu dla programu PowerShell.exe. Ponadto, prawdopodobnie wskazane będzie użycie przełącznika -noexit, co umożliwi odczytanie wyników działania skryptu w oknie konsoli
60 44 Windows PowerShell przewodnik po skryptach programu Windows PowerShell. Używana w tym przypadku składnia została pokazana na rysunku 2-5. Rysunek 2-5 Uruchamiając skrypt programu Windows PowerShell spoza konsoli należy używać argumentu -noexit, aby umożliwić odczytanie rezultatów działania skryptu. Stosowanie zmiennych Podczas korzystania z programu Windows PowerShell domyślnie nie ma potrzeby deklarowania zmiennych przed ich użyciem. Deklaracja zmiennej następuje z chwilą użycia jej do przechowywania danych. Nazwy wszystkich zmiennych muszą być poprzedzane symbolem dolara. W programie Windows PowerShell istnieje klika zmiennych specjalnych. Zmienne te są tworzone automatycznie i każda z nich ma specjalne znaczenie. Tabela 2-2 zawiera listę tych specjalnych zmiennych wraz z opisem ich znaczenia. Tabela 2-2 Znaczenie zmiennych specjalnych Nazwa Znaczenie $^ Zawiera pierwszy element z ostatniej linii wejściowych danych powłoki. $$ Zawiera ostatni element z ostatniej linii wejściowych danych powłoki. $_ Bieżący element potoku; zmienna ta jest używana w blokach skryptowych, filtrach i poleceniach Where-Object, ForEach-Object oraz switch. $? Zawiera status oznaczający powodzenie lub niepowodzenie ostatniej instrukcji. $args Zmienna używana w funkcjach wymagających pametrów. $error W przypadku wystąpienia błędu w zmiennej $error zostaje zapisany obiekt klasy error. $executioncontext Obiekty klasy execution, dostępne dla narzędzi typu cmdlet. $foreach Oznacza licznik pętli typu foreach. $home Katalog domowy użytkownika. Zmienna ta otrzymuje wartość %HOMEDRIVE%\%HOMEPATH%.
1 Powłoka programu Windows PowerShell... 1. 2 Skrypty programu Windows PowerShell... 37. 3 Zarządzanie dziennikami... 65
Spis treści Podziękowania... xi Wstęp... xiii 1 Powłoka programu Windows PowerShell... 1 Instalowanie programu Windows PowerShell... 1 Sprawdzanie instalacji za pomocą skryptu w języku VBScript... 1 WdraŜanie
Samsung Universal Print Driver Podręcznik użytkownika
Samsung Universal Print Driver Podręcznik użytkownika wyobraź sobie możliwości Copyright 2009 Samsung Electronics Co., Ltd. Wszelkie prawa zastrzeżone. Ten podręcznik administratora dostarczono tylko w
Kancelaria Prawna.WEB - POMOC
Kancelaria Prawna.WEB - POMOC I Kancelaria Prawna.WEB Spis treści Część I Wprowadzenie 1 Część II Wymagania systemowe 1 Część III Instalacja KP.WEB 9 1 Konfiguracja... dostępu do dokumentów 11 Część IV
Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP
Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP W tym opracowaniu opisano, jak korzystać z edytora zasad grupy do zmiany ustawień zasad lokalnych dla
Microsoft Exchange Server 2013
William R. Stanek Vademecum Administratora Microsoft Exchange Server 2013 Konfiguracja i klienci systemu Przekład: Leszek Biolik APN Promise 2013 Spis treści Wstęp..........................................
Praca w sieci z serwerem
11 Praca w sieci z serwerem Systemy Windows zostały zaprojektowane do pracy zarówno w sieci równoprawnej, jak i w sieci z serwerem. Sieć klient-serwer oznacza podłączenie pojedynczego użytkownika z pojedynczej
Konta uŝytkowników. Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane
Konta uŝytkowników Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane Lokalne konto uŝytkownika jest najczęściej wykorzystywane podczas
Ed Wilson. Windows PowerShell Krok po kroku 3.0. Przekład: Marek Włodarz
Ed Wilson Windows PowerShell Krok po kroku 3.0 Przekład: Marek Włodarz APN Promise, Warszawa 2013 Spis treści Przedmowa....xi Wprowadzenie....xiii 1 Przegląd cech Windows PowerShell 3.0.... 1 Istota Windows
Wstęp... ix. 1 Omówienie systemu Microsoft Windows Small Business Server 2008... 1
Spis treści Wstęp... ix 1 Omówienie systemu Microsoft Windows Small Business Server 2008... 1 Składniki systemu Windows SBS 2008... 1 Windows Server 2008 Standard... 2 Exchange Server 2007 Standard...
Aktualizacje oprogramowania Instrukcja obsługi
Aktualizacje oprogramowania Instrukcja obsługi Copyright 2009 Hewlett-Packard Development Company, L.P. Windows jest zastrzeżonym znakiem towarowym firmy Microsoft Corporation, zarejestrowanym w USA. Uwagi
Instalacja Active Directory w Windows Server 2003
Instalacja Active Directory w Windows Server 2003 Usługa Active Directory w serwerach z rodziny Microsoft odpowiedzialna jest za autentykacje użytkowników i komputerów w domenie, zarządzanie i wdrażanie
UNIFON podręcznik użytkownika
UNIFON podręcznik użytkownika Spis treści: Instrukcja obsługi programu Unifon...2 Instalacja aplikacji Unifon...3 Korzystanie z aplikacji Unifon...6 Test zakończony sukcesem...9 Test zakończony niepowodzeniem...14
William R. Stanek. Vademecum Administratora 2012 R2. Windows Server. Podstawy i konfiguracja. Przekład: Leszek Biolik
William R. Stanek Vademecum Administratora Windows Server 2012 R2 Podstawy i konfiguracja Przekład: Leszek Biolik APN Promise, Warszawa 2014 Spis treści Wprowadzenie....................................
Zarządzanie rolami jakie może pełnić serwer System prosi o wybór roli jaklą ma spełniać serwer.
Zarządzanie rolami jakie może pełnić serwer System prosi o wybór roli jaklą ma spełniać serwer. Możemy dodawać lub usuwać poszczególne role. Można to zrobić później uruchamiając START Zarządzanie tym serwerem
Pracownia internetowa w każdej szkole (edycja Jesień 2007)
Instrukcja numer D1/04_01/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Tworzenie kopii zapasowej ustawień systemowych serwera - Zadania do wykonania
1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1
Spis treści Wstęp... xi Wymagania sprzętowe (Virtual PC)... xi Wymagania sprzętowe (fizyczne)... xii Wymagania programowe... xiii Instrukcje instalowania ćwiczeń... xiii Faza 1: Tworzenie maszyn wirtualnych...
Instalowanie i konfigurowanie Windows Server 2012 R2
Mitch Tulloch Instalowanie i konfigurowanie Windows Server 2012 R2 Poradnik szkoleniowy Przekład: Leszek Biolik APN Promise, Warszawa 2014 Spis treści Wstęp.............................................................
Client Management Solutions i Mobile Printing Solutions
Client Management Solutions i Mobile Printing Solutions Instrukcja obsługi Copyright 2006 Hewlett-Packard Development Company, L.P. Microsoft i Windows są zastrzeżonymi w Stanach Zjednoczonych znakami
Lekcja 3: Organizacja plików i folderów 56
Spis treści Lekcja 1: Wprowadzenie 1 Umiejętności do zdobycia podczas lekcji 1 Terminy kluczowe 1 Wprowadzenie do systemu Windows Vista 2 Uruchamianie komputera 2 Logowanie 3 Posługiwanie się myszą do
Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?
Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym
Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows
Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Cel ćwiczenia: Zapoznanie się z: zarządzaniem systemami plików, zarządzaniem atrybutami plików, prawami do plików
Client Management Solutions i Mobile Printing Solutions
Client Management Solutions i Mobile Printing Solutions Instrukcja obsługi Copyright 2007 Hewlett-Packard Development Company, L.P. Windows jest zastrzeżonym znakiem towarowym firmy Microsoft Corporation,
Przewodnik Szybki start
Przewodnik Szybki start Program Microsoft Access 2013 wygląda inaczej niż wcześniejsze wersje, dlatego przygotowaliśmy ten przewodnik, aby skrócić czas nauki jego obsługi. Zmienianie rozmiaru ekranu lub
Asystent Hotline Instrukcja instalacji
SoftVig Asystent Hotline Instrukcja instalacji Dokumentacja do wersji: Asystent Hotline (ver. 2.8.4737) Data ostatnich zmian: 2013-05-13 SoftVig Systemy Informatyczne Sp. z o.o. pl. Rodła 8, 70-419 Szczecin,
Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa
Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Instalacja roli kontrolera domeny, Aby zainstalować rolę kontrolera domeny, należy uruchomić Zarządzenie tym serwerem, po czym wybrać przycisk
Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?
Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym
Instalacja aplikacji
1 Instalacja aplikacji SERTUM... 2 1.1 Pobranie programu z Internetu... 2 1.2 Instalacja programu... 2 1.3 Logowanie... 3 2 Instalacja aplikacji RaportNet... 4 2.1 Pobranie programu z Internetu... 4 2.2
Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows
Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows Spis treści Rozdział 1. Przegląd......... 1 Wstęp................. 1 Wdrażanie technologii Data Access........ 1 Źródła danych
Client Management Solutions i Universal Printing Solutions
Client Management Solutions i Universal Printing Solutions Instrukcja obsługi Copyright 2007 Hewlett-Packard Development Company, L.P. Windows jest zastrzeżonym znakiem towarowym firmy Microsoft Corporation,
G DATA TechPaper Aktualizacja rozwiązań G DATA Business do wersji 14.2
G DATA TechPaper Aktualizacja rozwiązań Spis treści Podsumowanie i zakres... 3 Konwencje typograficzne... 3 1. Przygotowanie... 3 2. Aktualizacja do wersji 14.2... 5 2.1. Aktualizacja przy użyciu metody
DHL CAS ORACLE Wymagania oraz instalacja
DHL CAS ORACLE Wymagania oraz instalacja Opis: Niniejszy dokument opisuje wymagania niezbędne do instalacji bazy danych DHL CAS ORACLE. Przedstawia również sam proces instalacji. Przeznaczony jest dla
Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie
Strona 1 z 6 Połączenia Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie Uwaga: Przy instalowaniu drukarki podłączonej lokalnie, jeśli dysk CD-ROM Oprogramowanie i dokumentacja
Instrukcja instalacji Control Expert 3.0
Instrukcja instalacji Control Expert 3.0 Program Control Expert 3.0 jest to program służący do zarządzania urządzeniami kontroli dostępu. Dedykowany jest dla kontrolerów GRx02 i GRx06 oraz rozwiązaniom
Połączenia. Instalowanie drukarki lokalnie (Windows) Co to jest drukowanie lokalne?
Strona 1 z 6 Połączenia Instalowanie drukarki lokalnie (Windows) Uwaga: Jeśli dysk CD Oprogramowanie i dokumentacja nie obejmuje obsługi danego systemu operacyjnego, należy skorzystać z Kreatora dodawania
Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.
Płace Optivum Jak przenieść dane programu Płace Optivum na nowy komputer? Aby kontynuować pracę z programem Płace Optivum na nowym komputerze, należy na starym komputerze wykonać kopię zapasową bazy danych
Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych
Windows Serwer 2008 R2 Moduł 8. Mechanizmy kopii zapasowych Co nowego w narzędziu Kopia zapasowa? 1. Większa elastyczność w zakresie możliwości wykonywania kopii zapasowych 2. Automatyczne zarządzanie
Instrukcja instalacji i obsługi programu Szpieg 3
COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.
Przewodnik instalacji i rozpoczynania pracy. dla DataPage+ 2012
Przewodnik instalacji i rozpoczynania pracy dla DataPage+ 2012 Pomoc aktualizowano ostatnio: 29 sierpnia 2012 Spis treści Instalowanie wymaganych wstępnie komponentów... 1 Przegląd... 1 Krok 1: Uruchamianie
Instrukcja instalacji
Instrukcja instalacji Nintex USA LLC 2012. Wszelkie prawa zastrzeżone. Zastrzegamy sobie prawo do błędów i pominięć. support@nintex.com 1 www.nintex.com Spis treści 1. Instalowanie programu Nintex Workflow
NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna
NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI asix Aktualizacja pakietu asix 4 do wersji 5 lub 6 Pomoc techniczna Dok. Nr PLP0016 Wersja:08-12-2010 ASKOM i asix to zastrzeżony znak firmy ASKOM Sp. z o. o.,
Rozdział 5. Administracja kontami użytkowników
Rozdział 5. Administracja kontami użytkowników Ćwiczenia zawarte w tym rozdziale pozwolą przygotować oddzielne środowisko pracy dla każdego użytkownika komputera. Windows XP, w porównaniu do systemów Windows
Aktualizacja do systemu Windows 8.1 przewodnik krok po kroku
Aktualizacja do systemu Windows 8.1 przewodnik krok po kroku Windows 8.1 instalacja i aktualizacja Zaktualizuj BIOS, aplikacje, sterowniki i uruchom usługę Windows Update Wybierz typ instalacji Zainstaluj
Small Business Server 2008 PL : instalacja, migracja i konfiguracja / David Overton. Gliwice, cop Spis treści
Small Business Server 2008 PL : instalacja, migracja i konfiguracja / David Overton. Gliwice, cop. 2011 Spis treści Zespół oryginalnego wydania 9 O autorze 11 O recenzentach 13 Wprowadzenie 15 Rozdział
MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1
MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1 NetCrunch 7 monitoruje systemy MS Windows bez instalowania dodatkowych agentów. Jednakże, ze względu na zaostrzone zasady bezpieczeństwa, zdalne monitorowanie
Instrukcja instalacji Asystenta Hotline
SoftVig Systemy Informatyczne Sp. z o.o. Instrukcja instalacji Asystenta Hotline Ver. 3.5 2012-06-19 2 Instrukcja obsługi programu Asystent Hotline Zawartość 1 INSTALACJA PROGRAMU 3 1.1 WARUNKI KONIECZNE
Połączenia. Obsługiwane systemy operacyjne. Instalowanie drukarki przy użyciu dysku CD Oprogramowanie i dokumentacja
Strona 1 z 6 Połączenia Obsługiwane systemy operacyjne Korzystając z dysku CD z oprogramowaniem, można zainstalować oprogramowanie drukarki w następujących systemach operacyjnych: Windows 8.1 Windows Server
Zespól Szkół Ponadgimnazjalnych Nr 17 im. Jana Nowaka - Jeziorańskiego Al. Politechniki 37 Windows Serwer 2003 Instalacja
7 Windows Serwer 2003 Instalacja Łódź, styczeń 2012r. SPIS TREŚCI Strona Wstęp... 3 INSTALOWANIE SYSTEMU WINDOWS SERWER 2003 Przygotowanie instalacji serwera..4 1.1. Minimalne wymagania sprzętowe......4
1. Przygotowanie konfiguracji wstępnej Windows Serwer 2008 R2
1. Przygotowanie konfiguracji wstępnej Windows Serwer 2008 R2 Po instalacji systemu operacyjnego Windows Serwer 2008R2 przystępujemy do konfiguracji wstępnej. Operacje, które należy wykonać: a) Zmienić
Wykonywanie kopii zapasowych i odtwarzanie danych Instrukcja obsługi
Wykonywanie kopii zapasowych i odtwarzanie danych Instrukcja obsługi Copyright 2007-2009 Hewlett-Packard Development Company, L.P. Windows jest zastrzeżonym znakiem towarowym firmy Microsoft Corporation,
Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe
Fiery Remote Scan Program Fiery Remote Scan umożliwia zarządzanie skanowaniem na serwerze Fiery server i drukarce ze zdalnego komputera. Programu Fiery Remote Scan można użyć do wykonania następujących
2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego
2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego produktu. 23 czerwca 2014 Spis treści 3 Spis treści...5
Szpieg 2.0 Instrukcja użytkownika
Szpieg 2.0 Instrukcja użytkownika Spis treści: Wstęp: 1. Informacje o programie 2. Wymagania techniczne Ustawienia: 3. Połączenie z bazą danych 4. Konfiguracja email 5. Administracja Funkcje programu:
Pracownia internetowa w szkole ZASTOSOWANIA
NR ART/SBS/07/01 Pracownia internetowa w szkole ZASTOSOWANIA Artykuły - serwery SBS i ich wykorzystanie Instalacja i Konfiguracja oprogramowania MOL Optiva na szkolnym serwerze (SBS2000) Artykuł opisuje
Windows Server 2012 Active Directory
POLITECHNIKA GDAŃSKA WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI Katedra Architektury Systemów Komputerowych Jarosław Kuchta Instrukcja do laboratorium z przedmiotu Administrowanie Systemami Komputerowymi
Kopia zapasowa i odzyskiwanie Podręcznik użytkownika
Kopia zapasowa i odzyskiwanie Podręcznik użytkownika Copyright 2008 Hewlett-Packard Development Company, L.P. Windows i Windows Vista są znakami towarowymi lub zastrzeżonymi znakami towarowymi firmy Microsoft
AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji. www.as.tylda.pl
AKTYWNY SAMORZĄD Instrukcja instalacji, aktualizacji i konfiguracji TYLDA Sp. z o.o. 65-001 Zielona Góra ul. Wazów 6a tel. 68 324-24-72 68 325-75-10 www.tylda.pl tylda@tylda.pl wersja 1.0 2013.04.12 2
Program Płatnik 10.01.001. Instrukcja instalacji
Program Płatnik 10.01.001 Instrukcja instalacji S P I S T R E Ś C I 1. Wymagania sprzętowe programu Płatnik... 3 2. Wymagania systemowe programu... 3 3. Instalacja programu - bez serwera SQL... 4 4. Instalacja
Przewodnik instalacji i rozpoczynania pracy. Dla DataPage+ 2013
Przewodnik instalacji i rozpoczynania pracy Dla DataPage+ 2013 Ostatnia aktualizacja: 25 lipca 2013 Spis treści Instalowanie wymaganych wstępnie komponentów... 1 Przegląd... 1 Krok 1: Uruchamianie Setup.exe
Instrukcja instalacji aplikacji i konfiguracji wersji sieciowej. KomKOD
Instrukcja instalacji aplikacji i konfiguracji wersji sieciowej KomKOD Firma KOMLOGO dochowała wszelakich starań, aby aplikacja działała poprawnie, jednak nie odpowiada za utratę zgromadzonych danych.
G DATA TechPaper. Aktualizacja rozwiązań G DATA Business do wersji 14.1
G DATA TechPaper Aktualizacja rozwiązań G DATA Business do wersji 14.1 G DATA Software AG International Presales Q3 2017 Spis treści PODSUMOWANIE I ZAKRES...3 KONWENCJE TYPOGRAFICZNE...3 1. PRZYGOTOWANIE...
PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl
PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl Do połączenia z serwerem A&B w celu załadowania lub pobrania materiałów można wykorzystać dowolny program typu "klient FTP". Jeżeli nie
Aktualizacje oprogramowania Podręcznik użytkownika
Aktualizacje oprogramowania Podręcznik użytkownika Copyright 2007 Hewlett-Packard Development Company, L.P. Windows jest zastrzeżonym znakiem towarowym firmy Microsoft Corporation, zarejestrowanym w USA.
Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:
Zasady grupy (GPO) Windows Server 2008 R2 Zasady grupy to potężne narzędzie udostępnione administratorom systemów Windows w celu łatwiejszego zarządzania ustawieniami stacji roboczych. Wyobraźmy sobie
Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP
Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP System Windows XP umożliwia udostępnianie plików i dokumentów innym użytkownikom komputera oraz innym użytkownikom
IBM SPSS Modeler Social Network Analysis 16 podręcznik instalowania i konfigurowania
IBM SPSS Modeler Social Network Analysis 16 podręcznik instalowania i konfigurowania Spis treści Rozdział 1. Wprowadzenie do programu IBM SPSS Modeler Social Network Analysis.............. 1 IBM SPSS
AM 331/TOPKATIT Wsparcie techniczne użytkowników i aplikacji w Windows 7
Szkolenie skierowane do: Techników wsparcia użytkowników oraz pracowników helpdesk, zajmujących się rozwiązywaniem problemów z systemem Windows 7 na pierwszym i drugim poziomie wsparcia oraz osób zainteresowanych
Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014
Leonard G. Lobel Eric D. Boyd Microsoft TM Azure SQL Database Krok po kroku Przekład: Marek Włodarz APN Promise, Warszawa 2014 Spis treści Wprowadzenie........................................................
Memeo Instant Backup Podręcznik Szybkiego Startu
Wprowadzenie Memeo Instant Backup pozwala w łatwy sposób chronić dane przed zagrożeniami cyfrowego świata. Aplikacja regularnie i automatycznie tworzy kopie zapasowe ważnych plików znajdujących się na
-Próba otworzenia pliku bezpośrednio z płyty CD także kończy się niepowodzeniem, pojawia się komunikat System Windows nie może otworzyć tego pliku.
1.Tytuł: Lokalizacja i usunięcie usterek na komputerze klienta. 2.Założenia: -Użytkownik komputera korzystając z własnego konta księgowa nie może skopiować do folderu Moje dokumenty pliku podatki.tar z
Tomasz Greszata - Koszalin
T: Profile użytkownika w systemie Windows. Profile użytkowników to zbiory ustawień środowiska pracy każdego użytkownika na komputerze lokalnym. Profile automatycznie tworzą i utrzymują następujące ustawienia:
Kopia zapasowa i odzyskiwanie
Kopia zapasowa i odzyskiwanie Podręcznik użytkownika Copyright 2007 Hewlett-Packard Development Company, L.P. Windows jest zastrzeżonym znakiem towarowym firmy Microsoft Corporation, zarejestrowanym w
Instalacja i konfiguracja serwera IIS z FTP
Instalacja i konfiguracja serwera IIS z FTP IIS (Internet Information Services) jest to usługa dostępna w systemach z rodziny Windows Server, pozwalająca na obsługę i utrzymanie własnych stron WWW oraz
Ćwiczenie 10.1. Zmiana sposobu uruchamiania usług
Rozdział 10. Zarządzanie komputerem Ćwiczenia zawarte w tym rozdziale prezentują najważniejsze narzędzia służące do konfigurowania i monitorowania pracy komputera. Ponieważ system Windows XP został opracowany
Program Rejestr zużytych materiałów. Instrukcja obsługi
Program Rejestr zużytych materiałów. Instrukcja obsługi Autor: Andrzej Woch Tel. 663 772 789 andrzej@awoch.com www.awoch.com Spis treści Wstęp... 1 Informacje dla administratora i ADO... 1 Uwagi techniczne...
11. Rozwiązywanie problemów
11. Rozwiązywanie problemów Ćwiczenia zawarte w tym rozdziale pokaŝą, jak rozwiązywać niektóre z problemów, jakie mogą pojawić się podczas pracy z komputerem. Windows XP został wyposaŝony w kilka mechanizmów
Spis treści. O autorze 9. O recenzentach 10. Przedmowa 13. Rozdział 1. Oto Linux Mint 17_
O autorze 9 O recenzentach 10 Przedmowa 13 Rozdział 1. Oto Linux Mint 17_ Dlaczego Linux? 18 Czym jest dystrybucja? 19 Czy Linux jest trudny do opanowania? 21 Cechy wyróżniające dystrybucję Mint 22 Wersje
Pracownia internetowa w każdej szkole (edycja jesień 2005)
Instrukcja numer SPD1/04_03/Z2 Pracownia internetowa w każdej szkole (edycja jesień 2005) Opiekun pracowni internetowej cz. 1 (PD1) Przygotowanie własnego obrazu systemu operacyjnego dla stacji roboczych
Podręcznik administratora systemu
Podręcznik administratora systemu Medtronic MiniMed Northridge, CA 91325 USA 800-646-4633 (800-MiniMed) 818.576.5555 www.minimed.com Przedstawiciel w Unii Europejskiej Medtronic B.V. Earl Bakkenstraat
CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM
CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM 1.1. PODSTAWOWE INFORMACJE PC to skrót od nazwy Komputer Osobisty (z ang. personal computer). Elementy komputera można podzielić na dwie ogólne kategorie: sprzęt - fizyczne
Program szkolenia KURS SPD i PD Administrator szkolnej pracowni internetowej Kurs MD1 Kurs MD2 Kurs MD3 (dla szkół ponadgimnazjalnych)
Miejsce prowadzenia szkolenia Program szkolenia KURS SPD i PD Administrator pracowni internetowej Kurs MD1 Kurs MD2 Kurs MD3 (dla szkół ponadgimnazjalnych) Pracownie komputerowe znajdujące się w wyznaczonych
Aktualizacje oprogramowania Podręcznik użytkownika
Aktualizacje oprogramowania Podręcznik użytkownika Copyright 2008 Hewlett-Packard Development Company, L.P. Windows jest zastrzeżonym znakiem towarowym firmy Microsoft Corporation, zarejestrowanym w USA.
Instrukcja użytkownika
Instrukcja użytkownika Menadżer Licencji Wersja 2013.0.1 Spis treści 1 WPROWADZENIE... 3 2 AKTUALIZACJA SERWISU KLUCZA HASP ORAZ ZDALNEGO SERWISU KLUCZA... 3 3 INSTALACJA... 3 4 MONITOR MENADŻERA LICENCJI...
Tomasz Greszata - Koszalin
T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołów HTTP oraz HTTPS i oprogramowania IIS (ang. Internet Information Services).
Instrukcja konfiguracji funkcji skanowania
Instrukcja konfiguracji funkcji skanowania WorkCentre M123/M128 WorkCentre Pro 123/128 701P42171_PL 2004. Wszystkie prawa zastrzeżone. Rozpowszechnianie bez zezwolenia przedstawionych materiałów i informacji
- w firmie AGD, w komputerze używanym przez sekretarkę oraz trzech akwizytorów stwierdzono usterkę systemu komputerowego,
1. Projekt realizacji prac prowadzących do zlokalizowania i usunięcia usterek systemu komputerowego, w zakresie diagnozowania wstępnego, ustalenia przyczyn usterek i usunięcia usterek. 2. Założenia do
Instrukcja Instalacji
Generator Wniosków Płatniczych dla Programu Operacyjnego Kapitał Ludzki Instrukcja Instalacji Aplikacja współfinansowana ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Spis treści
Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami
Windows Serwer 2008 R2 Moduł 5. Zarządzanie plikami Sprawdzamy konfigurację kart sieciowych 172.16.x.0 x nr w dzienniku Na serwerze musi działać Internet! Statyczny adres IP jest potrzebny komputerom,
Połączenie VPN Host-LAN SSL z wykorzystaniem przeglądarki. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Konto SSL 1.3. Grupa użytkowników
1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Konto SSL 1.3. Grupa użytkowników 2. Konfiguracja klienta VPN 3. Status połączenia 3.1. Klient VPN 3.2. Serwer VPN Procedura konfiguracji została
Synchronizator plików (SSC) - dokumentacja
SZARP http://www.szarp.org Synchronizator plików (SSC) - dokumentacja Wersja pliku: $Id: ssc.sgml 4420 2007-09-18 11:19:02Z schylek$ > 1. Witamy w programie SSC Synchronizator plików (SZARP Sync Client,
INSTRUKCJA INSTALACJI
INSTRUKCJA INSTALACJI TcpMDT ver. 7 Aplitop, 2014 C/ Sumatra, 9 E-29190 MÁLAGA (SPAIN) web: www.aplitop.com e-mail: support@aplitop.com Spis treści Instalacja MDT ver. 7... 3 Wymagania systemowe... 3 Menu
Pracownia internetowa w każdej szkole (edycja Jesień 2007)
Instrukcja numer D1/02_04/D5 Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Dostęp do grup dyskusyjnych na szkolnym serwerze Jak skonfigurować dostęp
Statistics dla systemu Windows. Instrukcje dotyczące instalacji (licencja sieciowa)
PASW Statistics dla systemu Windows Instrukcje dotyczące instalacji (licencja sieciowa) Przedstawione poniżej instrukcje dotyczą instalowania PASW Statistics 18 przy użyciu licencja sieciowa. Ten dokument
Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3
Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...
System kontroli dostępu ACCO NET Instrukcja instalacji
System kontroli dostępu ACCO NET Instrukcja instalacji acco_net_i_pl 12/14 SATEL sp. z o.o. ul. Budowlanych 66 80-298 Gdańsk POLSKA tel. 58 320 94 00 serwis 58 320 94 30 dz. techn. 58 320 94 20; 604 166
Państwowa Wyższa Szkoła Zawodowa w Gorzowie Wlkp. Laboratorium architektury komputerów
Państwowa Wyższa Szkoła Zawodowa w Gorzowie Wlkp. Laboratorium architektury komputerów Nr i temat ćwiczenia Nr albumu Grupa Rok S 3. Konfiguracja systemu Data wykonania ćwiczenia N Data oddania sprawozdania
Rejestracja użytkownika Bentley Często zadawane pytania techniczne
Jestem administratorem i zapomniałem swojego hasła do User Management (zarządzania użytkownikami). Co mogę zrobić? Jeśli nie pamiętasz swojego hasła, wykorzystaj swój adres e-mail jako login i wybierz
System zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW
System zdalnego dostępu (VPN) do sieci Wydziału Elektrycznego PW Dokument dostęny do pobrania Z początkiem bieżącego roku akademickiego 2011/2012 zotał uruchomiony nowy system zdalnego dostępu do sieci
Tomasz Greszata - Koszalin
T: Kontroler domeny. Zadanie1: Wykorzystując serwis internetowy Wikipedii odszukaj informacje na temat następujących haseł: kontroler domeny, domena Windows, Active Directory. Zadanie2: Odszukaj nazwę
DESKTOP Internal Drive. Przewodnik po instalacji
DESKTOP Internal Drive Przewodnik po instalacji Przewodnik po instalacji Seagate Desktop 2013 Seagate Technology LLC. Wszelkie prawa zastrzeżone. Seagate, Seagate Technology, logo Wave i FreeAgent to znaki
PODRĘCZNIK UŻYTKOWNIKA programu Pilot
TRX Krzysztof Kryński Cyfrowe rejestratory rozmów seria KSRC PODRĘCZNIK UŻYTKOWNIKA programu Pilot Wersja 2.1 Maj 2013 Dotyczy programu Pilot w wersji 1.6.3 TRX ul. Garibaldiego 4 04-078 Warszawa Tel.