PowerShell Remoting Jerzy Mikołajczak 1
Agenda PowerShell(słowem wstępu) Czym zatem jest Remoting? Wymagania Konfiguracja Remoting sposoby wykorzystania Demo! Bezpieczeństwo Demo! 2
PowerShell(słowem wstępu) PowerShell jest Rozbudowaną konsolą tekstową zawierającą cmdletów. Np.: ConvertTo-{Csv, Html, Xml}, Format-{List, Table}, Get-{Content, Process, Unique} Restart-{Computer, Service}, Start-{Job, Service, Sleep}, Set-{Service, Date, Alias, Acl}, New-{Item, Event, Module}, etc. Dwa moje ulubione: Get-Help cmdlet(alias man) Out-Null 3
PowerShell(słowem wstępu) Językiem skryptowym 4
PowerShell(słowem wstępu) Zbudowany na podstawie Możliwość wykorzystania platformy.net bezpośrednio w kodzie PowerShell 5
PowerShell(słowem wstępu) Narzędzie administracji i automatyzacji Automatyzacja ważniejszych zdarzeń w codziennej pracy IT Wielokrotne czynności (+XX powtórzeń) Przykład: mass deployment 6
PowerShell(słowem wstępu) Nieodłączna część serwerowych produktów Microsoft Active Directory SharePoint 2010 Exchange 2007/2010 SQL 2005/2008/2008R2/2011(codename codename: Denali) System Center (DPM, SCVMM ) Lync 2010 Wsparcie od firm zewnętrznych Citrix XenApp 6 VMware ESXi, vcenter, vsphere(apis APIs) NetAppData ONTAP PowerShell Toolkit 7
PowerShell(słowem wstępu) Zarządzanie Chmurą Outlook Live (Exchange Labs) Microsoft BPOS (Business Productivity Online Suite) Microsoft Azure Cloud 8
Czym zatem jest Remoting? Konsola Język WinRM 2.0.NET WinRM 2.0 Platforma Microsoft do zarządzania serwerami pod kątem oprogramowania i sprzętu 9
Czym zatem jest Remoting? PowerShell 2.0 PowerShell 2.0 WinRM 2.0 OS WinRM 2.0 OS 10
Wymagania Oprogramowanie: Windows PowerShell 2.0.NET framework 2.0 SP1 lub późniejszy Windows Remote Management (WinRM WinRM) 2.0 System operacyjny: Windows indowsserver 2008 R2 Windows Server 2008 zservice Pack 2 Windows Server 2003 zservice Pack 2 Windows 7 Windows Vista z Service Pack 1, 2 Windows XP zservice Pack 3 Windows Embedded POSReady 2009 Windows Embedded for Point of Service 1.1 11
Konfiguracja serwera Konfiguracja serwera jest prosta Enable-PSRemoting Ten cmdlet: Uruchamia Set-WSManQuickConfig WSManQuickConfig, który: Startuje usługę WinRM Ustawia jej tryb startowy na Automatyczny Tworzy Listener(odbiornik ) nasłuchujący na wszystkich interfejsach sieciowych Dodaje regułę otwierającą Firewall dla protokołu WS-Management Pozwala (nadaje uprawnienia) na odbieranie poleceń z zdalnej maszyny we wszystkich zarejestrowanych konfiguracjach sesji PSR Restartuje usługę WinRM Windows XP/2003 wymaga dodatkowej uwagi : Set-ItemProperty Path HKLM:\System\CurrentControlSet\Control\Lsa Name ForceGuest Value 0 12
Konfiguracja klienta W przypadku systemów Windows XP/Vista/7 Start-Service WinRM Set-Service WinRM -StartupType Automatic W przypadku środowiska Workgroupdodatkowo (KB951016: UAC Remote Restrictions): Oraz: Set-ItemProperty Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System Name LocalAccountTokenFilterPolicy Value 1 Type Dword Set-Item WSMan:\localhost\Client\TrustedHosts -Value *.mic.local Set-Item WSMan:\localhost\Client\TrustedHosts -Value hvm-1 Set-Item WSMan:\localhost\Client\TrustedHosts -Value * 13
Remoting-sposoby wykorzystania Istnieją 4 sposoby korzystania z PSR: cmdletyz parametrem ComputerName ComputerName: Get-Command -CommandType cmdlet where { $_.parameters.keys -contains "ComputerName"} Korzystając z cmdletu Invoke-Command Command(alias: icm): icm comp1,comp2 {Get-HotFix} Invoke-Command $session ScriptBlock {get-something; do-something} icm comp1,comp2 FilePath C:\psnc\script.ps1 icm (Get-Content c:\psnc\servers.txt) -FilePath C:\psnc\script.ps1 Interactive Remoting: Enter-PSSession ComputerName comp1 [comp1]: PS C:\ Implicit Remoting Import-PSSession $session Module ActiveDirectory 14
Demo PS C:\ 15
Bezpieczeństwo Uwierzytelnianie i szyfrowanie: Cały ruch via WinRM jest szyfrowany (można to wyłączyć) SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism)zwany także Negotiate-> Kerberos/NTLM Możliwość wykorzystania SSL (-UseSSL UseSSL) Wymaga konfiguracji WinRM pod kątem certyfikatu: winrm create winrm/config/listener?address=*+transport=https @{Hostname="";CertificateThumbprint=""} W przypadku certyfikatów Self-Signed Signedmusimy dodać SkipCACheck SkipCACheckprzy przy tworzeniu sesji (da się to ustawić globalnie) Standardowe porty: 5985 5986 (SSL) 16
Bezpieczeństwo cd. Zdalne sesje: out out-of of-the the-box box tylko dla administratorów możliwość stworzenia konfiguracji sesji dla zwykłego użytkownika Użytkownik nie może otworzyć zdalnej sesji w konfiguracji innej niż mu przypisana przez Administratora Lista dostępnych cmdletów Lista zabronionych cmdletów Blokada aplikacji oraz skryptów 17
Demo PS C:\ 18
PS C:\Write-Host Dziękuję za uwagę! PS C:\Read-Host Pytania? Kontakt: jerzym@man.poznan.pl 19