PowerShell dla każdego

38
PowerShell dla każdego Paweł Zdziarski [email protected] www.cts.com.pl

description

PowerShell dla każdego. Paweł Zdziarski [email protected] 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 - PowerPoint PPT Presentation

Transcript of PowerShell dla każdego

Page 1: PowerShell dla każdego

PowerShell dla każdego

Paweł [email protected]

www.cts.com.pl

Page 2: PowerShell dla każdego

• 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?

AGENDA

Page 3: PowerShell dla każdego

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

Page 4: PowerShell dla każdego

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

Page 5: PowerShell dla każdego

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

Page 6: PowerShell dla każdego

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

Page 7: PowerShell dla każdego

Polecenia do zarządzania zasobamiPolecenia Cmdlets PowerShellDir Get-ChildItemMove Move-ItemRen Rename-ItemDel, RmDir Remove-ItemCopy Copy-ItemMkDir New-ItemCd Set-Location

Get-LocationGet-ItemPropertySet-ItemSet-ItemProperty

Page 8: PowerShell dla każdego

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

Page 9: PowerShell dla każdego

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

Page 10: PowerShell dla każdego

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

Page 11: PowerShell dla każdego

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

Page 12: PowerShell dla każdego

Zmienne

Zmienne posiadają własny PSDrive VARIABLE: Nazwa rozpoczyna się od symbolu $ $serv = get-services, $liczba = 5, $nazwa = „jakiś tekst” Zmienne mają swoje zakresy

Page 13: PowerShell dla każdego

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

Page 14: PowerShell dla każdego

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

Page 15: PowerShell dla każdego

Dostęp zdalny: Jeden do jednego

Rozpoczęcie Enable-PSSession –computername Praca w zdalnej sesji Wyjście z sesji Exit-PSSession

Page 16: PowerShell dla każdego

Zdalny dostęp: Jeden do wielu

Polecenie Invoke-Command wysyła polecenie, skrypt do wielu systemów Rezultat zawiera właściwość PSComputerName

Page 17: PowerShell dla każdego

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)

Page 18: PowerShell dla każdego

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

Page 19: PowerShell dla każdego

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

Page 20: PowerShell dla każdego

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ń

Page 21: PowerShell dla każdego

Co nowego w PowerShell 3.0

Paweł Zdziarski [email protected]

Page 22: PowerShell dla każdego

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

Page 23: PowerShell dla każdego

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

Page 24: PowerShell dla każdego

Zarządzanie Windows 2012 i Windows 8

Ok 2 500 poleceń Nowe moduły Możliwość zarządzania rolami, cechami, ustawieniami (no prawie

wszystkim )

Page 25: PowerShell dla każdego

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

Page 26: PowerShell dla każdego

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)

Page 27: PowerShell dla każdego

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

Page 28: PowerShell dla każdego

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

Page 29: PowerShell dla każdego

PowerShell Web Access - wdrożenie

1. Instalacja cechy PowerShell Web Access(GUI, PowerShell - Install-WindowsFeature –Name WindowsPowerShellWebAccess)

2. Konfiguracja bramki (Install-PswaWebApplication)3. Konfiguracja reguł autoryzacyjnych (m.in. Add-PswaAuthorizationRule)4. Dostęp PowerShell Web Access (https://nazwahosta/pswa

Page 30: PowerShell dla każdego

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)

Page 31: PowerShell dla każdego

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

Page 32: PowerShell dla każdego

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

Page 33: PowerShell dla każdego

Certyfikacja MTA - Microsoft Technology Associate

Page 34: PowerShell dla każdego

Certyfikacja MTA - Microsoft Technology Associate

Page 35: PowerShell dla każdego

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

Page 36: PowerShell dla każdego

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

Page 37: PowerShell dla każdego

wpisz tekst (wstaw obrazek)

Podsumowanie

Page 38: PowerShell dla każdego

Pytanie i odpowiedzi

[email protected]