Windows Powershell v roce 2013

Podobné dokumenty
Active Directory aktivně

ČÁST 1 ÚVOD. Instalace operačního systému 21 Aktualizace operačního systému 57 Příkazový řádek 77 Windows Script Host 103 ČÁST 2 ŘEŠENÍ

Dejte mi práva na...

POWERSHELL. Desired State Configuration (DSC) Lukáš Brázda MCT, MCSA, MCSE

Filtrování, seskupování a třídění

Serverové systémy Microsoft Windows

Diplomová práce Mobilní správa Windows serveru v prostředí KIV

SQL a XML jako alternativa ke klasickým unixovým nástrojům

Windows 2008 R2 - úvod. Lumír Návrat

Diplomová práce Využití PowerShellu pro správu Windows sítě

Obsah. Úvod...9 Komu je kniha určena... 9 Zpětná vazba od čtenářů...11 Skripty ke knize...11 Errata...11

Úvod Ovládáme základní nástroje 17

Migrace Windows Small Business 2011 do Windows Server 2012 Essentials

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Co mi to tu vlastně běží?

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Jak na úspěšnou migraci Windows Small Business Server 2011 Standard. Jan Pilař MVP KPCS CZ

Tipy technické podpory 2015

INSTALACE WINDOWS 2012

Služby, Registr Služby, Registr Procesy, BCD Pro, Událo cesy, BCD sti, Událo

Desktop systémy Microsoft Windows

Semestrální práce z DAS2 a WWW

OS řady Microsoft Windows

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

The Lightweight Directory Access Protocol version 3 (LDAPv3) is specified by this set of eleven RFCs:

Č á s t 1 Příprava instalace

Systém souborů vjj 1

Jazyk C# (seminář 3)

PowerShell 2.0 Dohledování serverů

INSTALACE DATABÁZE ORACLE A SYSTÉMU ABRA NA OS WINDOWS

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Vladimír

Zvýšení zabezpečení počítače

KIV/PIA 2013 Jan Tichava

BASH. Kouzla s příkazovou řádkou. Petr Koloros

Osnova dnešní přednášky

Úvod Informace o prostředí Práce se soubory Regulární výrazy Konec. Programování v C# Soubory a regulární výrazy. Petr Vaněček 1 / 27

SharePoint 2010 produktové portfolio a licencování

Group Policy od A do Z. Lukáš Brázda MCT, MCSA, MCSE lukas@brazda.org

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Práce se soubory opakování

KAPITOLA 1 Instalace Exchange Server

Obsah. Instalace PowerShellu...22 Úvod Instalace Shrnutí Důležité k zapamatování... 25

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

IBM Connections pro firmy s Lotus Notes/Domino. Petr Kunc

Jan Pilař MVP, MCP, MCTS KPCS CZ

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Úvod do Operačních Systémů

Administrace služby - GTS Network Storage

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Příprava k certifikaci , TS: Windows 7, Configuring

Tipy a triky nejenom v shellu nejenom pro programátory

Desktop systémy Microsoft Windows

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

Distribuované systémy a výpočty

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Windows Server 2012 Už ani klik...

Úvod do datového a procesního modelování pomocí CASE Erwin a BPwin

Nastavení DCOM. Uživatelský manuál

Obsah. Poděkování 11 Úvod 13 Zpětná vazba od čtenářů 15 Errata 15 Konvence použité v knize 15. Spolupráce v malé firemní síti 17

Použití databází na Webu

Vazba ESO9 na MS Outlook a MS Exchange

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Skriptovací jazyky. Obsah

Jako skript se nabízí BAT soubory, VBScript či PowerShell. Zpracovány jsou druhé dva.

Databázové systémy. Cvičení 6: SQL

SQL injection princip a ochrana

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

SIMATIC WinCC Novinky

Instalace a konfigurace OpenAdmin tool na M$ a Linuxu

SIMATIC WinCC Data Monitor. Siemens s.r.o.

Poznámky k verzi aktualizace Windows Server Update Services 3.0 SP2

Úvod do Operačních Systémů

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Čipové karty Lekařská informatika

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

Group Policy od A do Z. Lukáš Brázda MCT, MCSA, MCSE

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Identity and Access Management

ANALYSIS SERVICES PROJEKT VYTVOŘENÍ PROJEKTU A DATOVÉ KOSTKY

Návod k aplikaci JanDat v.2.3

Tvorba informačních systémů

Administrace služby IP komplet premium

Administrace služby IP komplet premium

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Business Edition, ESET Remote Administrator

Tabulka fotbalové ligy

Stručný obsah. K2118.indd :15:27

PG 9.5 novinky ve vývoji aplikací

Vývoj multiplatformní aplikace v Qt

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

Pokročilé Webové služby a Caché security. Š. Havlíček

Transkript:

Windows Powershell v roce 2013 Powershell v současné praxi Windows I. Patrik Malina patrikmalina.eu O čem bude řeč Powershell: kde jej najdeme Hranice ovládání Powershellem Po staru... a v Powershellu Data v Powershellu Powershell... a co za to? Patrik Malina 2

Kde najdeme Powershell Verze Powershellu Prehistorie v1 Praxe v2 Nástup v3 Patrik Malina 3 Kde najdeme Powershell Přirozený výskyt Powershellu V3 Windows 8/2012 V2 Windows 7/2008R2 V1 Windows 2008 Patrik Malina 4

Kde najdeme Powershell Instalace WMF 3.0 Windows 7 Service Pack 1 Windows Server 2008 R2 SP1 Windows Server 2008 Service Pack 2 http://www.microsoft.com/enus/download/details.aspx?id=34595 Čtěte System Requirements Kompatibilita Patrik Malina 5 Kde najdeme Powershell Zavedení Powershellu Patrik Malina 6

Kde najdeme Powershell Kompatibilita skriptů Jazykové nuance Novější cmdlety Prevence Aplikovaný Powershell Patrik Malina 7 Kde najdeme Powershell Kompatibilita skriptů jazyk Get-Process where {$_.processname -like "*powers*"} Get-Process where processname -like "*powers*" (Get-Process foreach name).toupper() Patrik Malina 8

Kde najdeme Powershell Kompatibilita skriptů nové cmdlety Get-CimInstance Connect-PSSession Disconnect-PSSession Update-Help Invoke-WebRequest Patrik Malina 9 Kde najdeme Powershell Kompatibilita skriptů vylepšené cmdlety Add-Member -NotePropertyMembers $hashtable Get-Credential -Message Patrik Malina 10

Kde najdeme Powershell Kompatibilita skriptů ošetření #requires -version 2 Help about_requires Powershell.exe -version 2.0 Patrik Malina 11 Kde najdeme Powershell Aplikovaný Powershell Kompatibilita služby WSMan a klíčových knihoven http://blogs.msdn.com/b/powershell/archive/2012/12/2 0/windows-management-framework-3-0-compatibilityupdate.aspx MS Exchange MS SharePoint SCOM... Patrik Malina 12

Kde najdeme Powershell Konfigurace Powershellu Patrik Malina 13 Kam dosáhne Powershell Vzdálený přístup I. WMI tradičně RPC WMI/CIM nově WinRM: HTTP/S Patrik Malina 14

Kam dosáhne Powershell Vzdálený přístup II. Co nahradí PSExec? winrm get wmi/root/cimv2/win32_service? Name=WinRM Remoting v Powershellu Patrik Malina 15 Kam dosáhne Powershell Vzdálený přístup II. Patrik Malina 16

Kam dosáhne Powershell Vzdálený přístup III. Přímá relace Enter-PSSession Nepřímé spouštění Invoke-Command Patrik Malina 17 Kam dosáhne Powershell Vzdálený přístup IV. Osvobození klientu Powershell Web Access Patrik Malina 18

Kam dosáhne Powershell Vzdálený přístup IV. Patrik Malina 19 Po staru a v Powershellu Powershell není Náhrada všech myslitelných programů pro konzoli Powershell je Interpretovaný.NET Framework Spouštěč tradičních konzolových programů Patrik Malina 20

Po staru a v Powershellu Proč postaru Rychlost kompilovaných nástrojů Robocopy Ldifde Logparser Proč v Powershellu Objektový výstup Nezávislost na dodatečných nástrojích Patrik Malina 21 Po staru a v Powershellu Co používají správci ve Windows Systeminfo Ipconfig Tasklist/Taskkill Netstat Type Net start/stop Net Use Net User Net Group NsLookup Ping/Tracert GPResult NetSh Patrik Malina 22

Po staru a v Powershellu Co používají správci jinde (a ve Windows) I. Tr => -replace Sort => Sort-Object Uniq => Sort-Object -Unique (Compare-Object) find. -iname "*.png" -ls awk '{s += $7} END {print s}' => Dir * -include *.png measure-object length hexdump new.zip head -5 => Get-content new-zip -encoding byte select -first 5 Patrik Malina 23 Po staru a v Powershellu Co používají správci jinde (a ve Windows) II. history awk '{print $2}' awk 'BEGIN {FS=" "} {print $1}' sort uniq -c sort -r => History select -expand commandline group sort count -Desc Patrik Malina 24

Po staru a v Powershellu Prohledáváme texty ls grep ".aspx" => ls where {$_ -match ".aspx"} ls * -Fi *.ps1 Patrik Malina 25 Po staru a v Powershellu Prohledáváme texty cat filename.txt grep term > outputfile.txt FINDSTR /A:2F /C:Open *.ps1 > outputfile.txt => Select-String -Pattern "Open" -Path *.ps1 Patrik Malina 26

Po staru a v Powershellu Sítě: konfigurace IPConfig => [System.Net.NetworkInformation.NetworkInterface]:: GetAllNetworkInterfaces() [System.Net.NetworkInformation.NetworkInterface]:: GetAllNetworkInterfaces() foreach {$_.GetIPProperties()} select -exp DNSAddresses Patrik Malina 27 Po staru a v Powershellu Sítě: konfigurace IPConfig => Get-WmiObject win32_networkadapterconfiguration Patrik Malina 28

Po staru a v Powershellu Sítě: konfigurace NsLookup => [system.net.dns] Get-Member -Static [system.net.dns]::resolve("localhost") Patrik Malina 29 Po staru a v Powershellu Sítě: konfigurace NsLookup => Add-Type -Path.\JHSoftware.DnsClient.dll [JHSoftware.DnsClient] Get-Member -Static [JHSoftware.DnsClient]::Lookup("gopas.cz","A") Patrik Malina 30

Po staru a v Powershellu Sítě: sledování NetStat => [System.Net.NetworkInformation.IPGlobalProperties]:: GetIPGlobalProperties() Get-Member [System.Net.NetworkInformation.IPGlobalProperties]:: GetIPGlobalProperties().GetActiveTcpConnections() [System.Net.NetworkInformation.IPGlobalProperties]:: GetIPGlobalProperties().GetActiveTcpListeners() Patrik Malina 31 Po staru a v Powershellu Uživatelé a relace WhoAmI => [System.Security.Principal.WindowsIdentity]:: GetCurrent() Patrik Malina 32

Po staru a v Powershellu Uživatelé a relace PsLoggedOn => $erroractionpreference = "silentlycontinue" New-PSDrive HKU Registry HKEY_USERS dir hku: foreach {($_.name -split "\\")[1]} foreach {$objsid = New-Object System.Security.Principal.SecurityIdentifier($_) $objuser = $objsid.translate( [System.Security.Principal.NTAccount ]) $objuser.value } sort -unique Patrik Malina 33 Po staru a v Powershellu Uživatelé a relace PsLoggedOn => Get-WmiObject Win32_Process -filter "Name = 'explorer.exe'" foreach -process {$_.GetOwner().User} Get-WmiObject Win32_ComputerSystem Select -property UserName Patrik Malina 34

Po staru a v Powershellu Uživatelé a relace PsLoggedOn => $server = "localhost" $adsi = [adsi]"winnt://$server/lanmanserver" $users = $adsi.psbase.invoke("resources") foreach {$_.gettype().invokemember("user","getproperty",$null, $_,$null)} $paths = $adsi.psbase.invoke("resources") foreach {$_.gettype().invokemember("path","getproperty",$null, $_,$null)} for($i = 0;$i -lt $users.length; $i++) { "{0}: {1}" -f $users[$i],$paths[$i] } Patrik Malina 35 Po staru a v Powershellu Uživatelé a relace PsLoggedOn => Get-WmiObject win32_serverconnection -computername "localhost" Format-Table connectionid,username,computername,sharename,activetime,number* -auto Patrik Malina 36

Po staru a v Powershellu Chybí vám sudo? function elevate-process { $file, [string]$arguments = $args; $psi = new-object System.Diagnostics.ProcessStartInfo $file; $psi.arguments = $arguments; $psi.verb = "runas"; $psi.workingdirectory = get-location; [System.Diagnostics.Process]::Start($psi); } set-alias sudo elevate-process sudo notepad.exe Patrik Malina 37 Po staru a v Powershellu Chybí vám sudo? Invoke-ElevatedCommand http://poshcode.org/2179 Get-Process Invoke-ElevatedCommand.ps1 { $input Where-Object { $_.Handles -gt 500 } } Sort Handles Invoke-ElevatedCommand http://poshcode.org/3158 Patrik Malina 38

Po staru a v Powershellu Využíváme WMI $query = "SELECT * FROM Win32_Service WHERE Name='AudioSrv'" Get-WMIObject -Query $query $query = "SELECT * FROM Win32_Service WHERE (State='Running' AND StartMode='Manual') AND (Name LIKE '[af]%')" Get-WMIObject -Query $query Patrik Malina 39 Po staru a v Powershellu Využíváme WMI $query = "ASSOCIATORS OF {Win32_Service.Name='LanmanWorkstation'} WHERE ResultRole=Dependent" Get-WMIObject -Query $query Patrik Malina 40

Po staru a v Powershellu Využíváme WMI Get-WmiObject win32_logicaldisk foreach { $devid = $_.deviceid Get-WmiObject -Query "associators of {win32_logicaldisk.deviceid='$($_.deviceid)'} where AssocClass=Win32_LogicalDiskToPartition" foreach {add-member -inputobject $_ -name origdeviceid -membertype noteproperty -value $devid -passthru} } select Name,BootPartition,PrimaryPartition,Index,origDeviceID Patrik Malina 41 Po staru a v Powershellu Využíváme WMI foreach ($instance in (get-ciminstance win32_diskdrive)) { $devid = $instance.deviceid $devid Get-CimAssociatedInstance -CimInstance $instance -resultclassname win32_diskpartition foreach {add-member -inputobject $_ -name origdeviceid -membertype noteproperty -value $devid -passthru} select Name,BootPartition,PrimaryPartition,Index,origDeviceID} Patrik Malina 42

Po staru a v Powershellu Active Directory CSVDE LDIFDE Dsadd Dsmod Dsrm Dsmove Dsget Dsquery Adfind Admod Patrik Malina 43 Po staru a v Powershellu Active Directory Get- Set- New- ADUser (QADUser) Rename- Move- Remove- QADObject Patrik Malina 44

Po staru a v Powershellu Lesk a bída kopírování Xcopy Robocopy Copy-Item Xcacls, SetACL Get-Acl Set-Acl Patrik Malina 45 Data v Powershellu Život v rouře Objektové proměnné Objektové konzervy Patrik Malina 46

Data v Powershellu Živor v rouře Vše v paměti Využijte výhodu filtrování dir * -Recurse -Include *.txt dir * -Recurse where {$_.extension -eq ".txt"} cat.\spanish.dic cat.\spanish.dic -ReadCount 1000000 Patrik Malina 47 Data v Powershellu Objektové proměnné Vše v paměti Pozor na velikost objektů $textfile = cat.\spanish.dic $textfile = cat.\spanish.dic -ReadCount 1000000 Patrik Malina 48

Data v Powershellu Objektové proměnné Vše v paměti Pozor na velikost objektů (dir.\jhsoftware.dnsclient.zip).length 275271 $binfile = cat JHSoftware.DnsClient.zip -Encoding byte $binfile1 = cat JHSoftware.DnsClient.zip -Encoding byte Get-Process powersh* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 479 96 1269556 1287224 1783 140,96 5240 powershell Patrik Malina 49 Data v Powershellu Objektové proměnné Vše v paměti Pozor na velikost objektů Patrik Malina 50

Data v Powershellu Objektové konzervy Export-Csv Import-Csv -Encoding -Append -Delimiter Import- Export-Clixml -Depth -Encoding Patrik Malina 51 Data v Powershellu Objektové konzervy Select-String -Pattern -CaseSensitive -List -Encoding -Context Select-Xml Select-Xml -Xml -XPath Patrik Malina 52

Powershellu... a co za to Powershell je: Všestranný Přenositelný Ohebný Powershell nemůže být: Nejlepší ve všem Desetibojař nikdy nezaběhne stovku jako Bolt! Patrik Malina 53 Powershellu... a co za to Interpretované prostředí Patrik Malina 54

Powershellu... a co za to Co je jednoduché, nemusí být nejlepší Pole Řetězec Patrik Malina 55 Powershellu... a co za to Co je jednoduché, nemusí být nejlepší =>(cat.\spanish.txt measure).count 10000 =>$pole = @() =>measure-command {cat.\spanish.txt foreach { $pole += $_}} Seconds : 32 Patrik Malina 56

Powershellu... a co za to Co je jednoduché, nemusí být nejlepší $pole1 = New-Object system.collections.arraylist measure-command {cat.\spanish.txt foreach { $pole1.add($_)} } Seconds : 3 Milliseconds : 957 Patrik Malina 57 Powershellu... a co za to Co je jednoduché, nemusí být nejlepší =>$CelyText = "" =>measure-command {cat.\spanish.txt foreach { $CelyText += $_}} Seconds : 29 =>$text1 = New-Object System.Text.StringBuilder =>measure-command {cat.\spanish.txt foreach {[void] $text1.append($_) }} Seconds : 3 Milliseconds : 945 Patrik Malina 58

Powershellu... a co za to Objekty vždy a všude... a za co? Tvorba objektů něco stojí Mějte na paměti jejich počet Patrik Malina 59 Powershellu... a co za to Objekty vždy a všude... a za co? =>(dir.\spanish.dic).length / 1MB 4,07346725463867 =>cat.\spanish.dic Measure-Object Count : 370470 =>measure-command {cat.\spanish.dic} Seconds : 34 =>measure-command {cat.\spanish.dic -ReadCount 1000000} Seconds : 0 Milliseconds : 845 Patrik Malina 60

Powershellu... a co za to Objekty vždy a všude... a za co? =>measure-command { cat.\spanish.dic foreach {$_ -replace "a","aa"}} Minutes : 2 Seconds : 52 =>measure-command {cat.\spanish.dic -ReadCount 1000000 foreach {$_ -replace "a","aa"}} Minutes : 0 Seconds : 4 Patrik Malina 61 Powershellu... a co za to Je objektová roura zadarmo? =>$cisla = 1..20000 =>Measure-Command {$cisla ForEach-Object {$_ * 2264} } Seconds : 6 Milliseconds : 344 =>Measure-Command {ForEach ($cislo in $cisla) {$cislo * 2264} } Seconds : 0 Milliseconds : 116 Patrik Malina 62

Zdroje informací Internet MS PowerShell blog http://blogs.msdn.com/b/powershell/ Script Center http://technet.microsoft.com/en-us/scriptcenter/bb410849.aspx Windows PowerShell Support for Windows Server 2012 http://technet.microsoft.com/en-us/library/hh801904.aspx Patrik Malina 63 Dotazy a diskuse Patrik Malina 64

Další informace Autor www.patrikmalina.eu Kontat it@patrikmalina.eu Patrik Malina 65