powershell - Core IT Program

Report
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
• 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
Polecenia
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), OutPrinter (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 InvokeCommand
 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 LONDC1 –AsJob
 Wyświetlanie zadań Get-Job
 Stopowanie, usuwanie zawieszanie
 Receive-Job wyciąganie wyników zadań
Co nowego w
PowerShell 3.0
Paweł Zdziarski [email protected]
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
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
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 – NewIseSnippet)
 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)
Pytanie i odpowiedzi
 [email protected]

similar documents