PowerShell dla każdego Paweł Zdziarski pzdziarski@cts.com.pl www.cts.com.pl
AGENDA Wprowadzenie do PowerShell Podstawowe możliwości i sposoby rozwiazywania problemów PsProviders i PSDrives Przetwarzanie potokowe Filtrowanie Zdalny dostęp Skrypty i bezpieczeństwo Co nowego w PowerShell 3.0?
Wprowadzenie do PowerShell Pierwsza wersja 2006 rok Obecnie wersja 3.0 (dostępna od Visty w górę) Dostęp przez konsolę Komendy – Cmdlets Główny sposób dostępu Integrated Scripting Environement Edytor skryptów Coraz fajniejszy
Jak zacząć zabawę z PowerShell PowerShell szanuje przyzwyczajenia użytkowników (ale trzeba uważać) Polecenie Get-Help (-ShowWindow, -Example, -Online) Konwencja poleceń jest spójna, przewidywalna czasownik – rzeczownik Get-Process Znajdowanie poleceń Get-Command, help about* Interpretacja wyników polecenia Get-Help Aktualizacja pomocy Update-Help Save-Help
Uruchamia poleceń Polecenia mają swoje skrócone nazwy, aliasy Polecenia posiadają parametry Polecenie Show-Command Przełączniki –Confirm i –Whatif ratują życie Zestawy poleceń są łączone w moduły Moduły są dynamicznie ładowane (tylko w wersji 3.0) Get-Module, Import-Module
PSProviders i PSDrives Mechanizmy pozwalające na spójny, przewidywalny dostęp do zasobów systemu i aplikacji Dane składowane są na odpowiednio nazwanych dyskach (PSDrives) Get-PSProviders Get-PSDrive New-PSDrive
Polecenia do zarządzania zasobami Cmdlets PowerShell Dir Get-ChildItem Move Move-Item Ren Rename-Item Del, RmDir Remove-Item Copy Copy-Item MkDir New-Item Cd Set-Location Get-Location Get-ItemProperty Set-Item Set-ItemProperty
Przetwarzanie potokowe (pipeline) Przetwarzanie potokowe pozwala na przekazywanie wyników jednego polecenia jako parametrów do drugie polecenia Get-service | out-file services.txt Polecenia PowerShell generują obiekty Obiekty mają właściwości, metody, i zdarzenia Polecenie Get-Member i już jestem specjalistą od PowerShella
Konwertowanie, Eksportowanie i Importowanie obiektów Konwertowanie do formatów CSV, HTML, XML (ConvertTo, Export) Importowanie danych (Import-CSV, Import-CliXML) – próba rekonstrukcji obiektów Polecenie Get-Content tylko czyta zawartość bez rekonstrukcji obiektów ConvertFrom stara się zrekonstruować obiekty
Filtrowanie obiektów Polecenie Where-Object Get-Service | Where-Object Status –eq Running – proste filtrownie Get-SMBShare | Where Name –like '*$*' Get-PhysicalDisk | Where-Object –FilterScript { $PSItem.HealthStatus –eq 'Healthy' } Get-Volume | Where { $PSItem.DriveType –eq 'Fixed' –and $PSItem.FileSystem –eq 'NTFS' } Pamiętajmy o wydajności – filtrujmy jak najwcześniej
Formatowanie wyników Format-List, Format-Table, Format-Wide Domyślne zasady formatowania Grupowanie wynikow –GroupBy Przekierowanie wyników Out-Host (ekran), Out-File (plik tekstowy), Out- Printer (drukarka) Polecenie Out-GridView ułatwia filtrowanie i wysukiwanie
Zmienne Zmienne posiadają własny PSDrive VARIABLE: Nazwa rozpoczyna się od symbolu $ $serv = get-services, $liczba = 5, $nazwa = „jakiś tekst” Zmienne mają swoje zakresy
Zdalny dostęp Protokół WS-MAN, domyślnie HTTP (może być HTTPS) Zarządzany przez usługę WinRM Domyślnie włączony w Windows Server 2012 Dostępny na dowolnym systemie z PowerShell 2.0 lub 3.0 Musi być włączony na każdym komputerze którym chcemy zarządzać zdalnie
Włączenie zdalnego dostępu Ręcznie: polecenie Enable-PSRemoting z uprawnieniami administrator Centralnie: za pomocą Group Policy Problem z komputerami mającymi ustawiony profil „public” na interfejsie sieciowym Windows 2012 domyślnie włączony
Dostęp zdalny: Jeden do jednego Rozpoczęcie Enable-PSSession –computername Praca w zdalnej sesji Wyjście z sesji Exit-PSSession
Zdalny dostęp: Jeden do wielu Polecenie Invoke-Command wysyła polecenie, skrypt do wielu systemów Rezultat zawiera właściwość PSComputerName
Tworzenie stałych sesji PSSession – nawiązanie stałej sesji W sesji można wykonywać polecenia, skrypty, można się od niej odłączyć, podłączyć, zamknąć Tworzenie sesji New-PSSesion (można utworzyć zmienną) Wejście do sesji Enter-PSSession Uruchomienie polecenia w sesji przełącznik –Session w poleceniu Invoke- Command Disconnect-PSSession (odłączenie), Get-PSSession (wyświetlenie sesji) Connect-PSSesion (ponowne podłączenie się do sesji)
Skrypty i bezpieczeństwo Skrypt ma rozszerzenie .ps1 Domyślnie nie można skryptu uruchomić Skrypt może zrobić krzywdę Poziomy polityk wykonywania skryptów m.in.: Restricted, AllSigned, RemoteSigned, Unrestricted Polecenie Set-ExecutionPolicy Paramentr do PowerShell.exe –executionPolicy Można zarządzać przez GroupPolicy
Profile Profil to skrypt, który uruchamia się automatycznie przy otwarciu nowej konsoli PowerShell Fajne, ale trzeba uważać bo może boleć Zmienna $profile Konsola i ISE oraz użytkownicy mogą mieć różne profile
Zadania w tle Uruchomienie poleceń w tle (konsola dostępna w tym czasie) Lokalna zadania – Start-Job –ScriptBlock {Dir} Zdalne zadania Invoke-Command – ScriptBlock {Get-Service} – ComputerName LON-DC1 –AsJob Zadania WMI Get-WmiObject – Class Win32_BIOS –computername LON- DC1 –AsJob Wyświetlanie zadań Get-Job Stopowanie, usuwanie zawieszanie Receive-Job wyciąganie wyników zadań
Paweł Zdziarski pzdziarski@cts.com.pl Co nowego w PowerShell 3.0 Paweł Zdziarski pzdziarski@cts.com.pl
Agenda Historia Zarządzanie Windows 2012 i Windows 8 Ułatwienia w pracy z poleceniami Sesje zdalne PowerShell Web Access Zaplanowane zadania w tle Nowości w Integrated Scripting Environment (ISE) Workflow Podsumowanie
Historia Wersja 1.0 - 2006 rok Wersja 2.0 – 2009 rok wiele nowości (PowerShell Remoting, Background Jobs, Modules, Windows PowerShell Integrated Scripting Environment (ISE) Wersja 3.0 – 2012 rok
Zarządzanie Windows 2012 i Windows 8 Ok 2 500 poleceń Nowe moduły Możliwość zarządzania rolami, cechami, ustawieniami (no prawie wszystkim )
Ułatwienia w pracy z poleceniami Automatyczne ładowanie modułów Uproszczona składnia v2.0 – get-service | where {$_.status -eq 'running'} v3.0 - get-service | where status -eq 'running’ v2.0 - Get-Process Notepad |foreach {$_.Kill()} v3.0 - Get-process Notepad |foreach kill
Ułatwienia w pracy z poleceniami Nowe parametry Get-ChildItem (Directory, File, Hidden, ReadOnly, System Polecenie Show-Command Możliwość aktualizacji Pomocy (Update-Help, Save-Help)
Sesje zdalne Możliwość podłączenia się do wcześniej stworzonej sesji Zostają zachowane dane w sesji nawet jeśli mamy kłopoty z połączeniem sieciowym Możliwość połączenia się z innego komputera Disconnect-PSSession, Connect-PSSession, Receive-PSSession
PowerShell Web Access Dostęp do konsoli PowerShell za pomocą przeglądarki (nie tylko IE, nie tylko Windows) Windows PowerShell Web Access Gateway – cecha Windows 2012 Dostęp do poprzez bramkę do innych systemów z Powershell i dostępem zdalnym
PowerShell Web Access - wdrożenie Instalacja cechy PowerShell Web Access (GUI, PowerShell - Install-WindowsFeature –Name WindowsPowerShellWebAccess) Konfiguracja bramki (Install-PswaWebApplication) Konfiguracja reguł autoryzacyjnych (m.in. Add-PswaAuthorizationRule) Dostęp PowerShell Web Access (https://nazwahosta/pswa
Zaplanowane zadania w tle Możliwość wywołania operacji w tle w danym czasie lub po danej akcji (New-JobTrigger) Rejestracja zaplanowanych zadań (Register-ScheduledJob) Wyświetlanie zaplanowanych zadań (Get-ScheduledJob)
Nowości w Integrated Scripting Environment (ISE) InteliSense Snippets (wzorce poleceń, składni, możliwość tworzenia własnych – New- IseSnippet) Okno Show Command Możliwość pobrania i załadowania dodatków
Workflow Pozwala na automatyzację skomplikowanych operacji wymagających czasu Pozwala zarządzać wieloma komputerami Zaplonowane, uruchamiane w określonym czasie, po danych operacjach np. logowanie
Certyfikacja MTA - Microsoft Technology Associate
Certyfikacja MTA - Microsoft Technology Associate
Oferta dla uczestników Promocja na szkolenie 10961 - Automating Administration with Windows PowerShell. Termin 26 – 30 sierpnia 2013 Miejsce CTS Warszawa Filipinki 20 Cena z rabatem 1990 netto PLN
Warsztaty online Dostęp do na stronie http://cts.com.pl/Warsztaty.html – za darmo, wymagana tylko rejestracja. Nowości i archiwum Aktualne nowości
wpisz tekst (wstaw obrazek) 3/28/2017 Podsumowanie wpisz tekst (wstaw obrazek)
Pytanie i odpowiedzi Pzdziarski@cts.com.pl