Игорь Любин - PowerShell - ConfeT&QA 2011
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Игорь Любин - PowerShell - ConfeT&QA 2011

on

  • 923 views

 

Statistics

Views

Total Views
923
Views on SlideShare
892
Embed Views
31

Actions

Likes
0
Downloads
3
Comments
0

2 Embeds 31

http://www.makeid.ru 25
http://www.linkedin.com 6

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Игорь Любин - PowerShell - ConfeT&QA 2011 Presentation Transcript

  • 1. PowerShell – швейцарский нож для тестировщика Игорь Любин
  • 2. О себе$speaker = “Игорь Любин”$degree = “К. ф.-м. н.”$education = “КГУ”$city = “Москва”$work = “Undev.ru”$SQAdays = 3, 5, 8, 9$testingExperience = 4 # года$powershellExperience = 2 # года 2
  • 3. Синее окошечкоGet-HostName : ConsoleHostVersion : 2.0InstanceId : 67c14f3c-2df0-46a0-aa8a-bed1a616a1efUI : InternalHostUserInterfaceCurrentCulture : ru-RUCurrentUICulture : en-USPrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxyIsRunspacePushed : FalseRunspace : System.Management.Automation.Runspaces.LocalRunspace 3
  • 4. Для чего нам PowerShell?Get-Task> Собирать логи, копировать файлы> Запускать/останавливать программы и службы> Выполнять скрипты на удаленной машине> Проверить почту и вытащить нужную информацию из письма> Управлять виртуальными машинами VmWare> Устанавливать дополнительные пакеты в VS2010 4
  • 5. Как приступить к работе? http://support.microsoft.com/kb/968929 5
  • 6. Пустое синее окошечко 6
  • 7. Как узнать команды?Get-Command 7
  • 8. Как узнать команды?Get-Command –Verb SetCommandType Name----------- ----Cmdlet Set-AclCmdlet Set-AliasCmdlet Set-AuthenticodeSignatureCmdlet Set-ContentCmdlet Set-DateCmdlet Set-ExecutionPolicyCmdlet Set-ItemCmdlet Set-ItemPropertyCmdlet Set-LocationCmdlet Set-PSBreakpointCmdlet Set-PSDebug... 8
  • 9. Командлеты<Verb>-<Noun> 9
  • 10. Примеры командлетовGet-Process # Получить список процессовRemove-Item # Удалить что-тоGet-Help # Получить справкуSet-Alias # Создать новый алиасNew-Item # Создать новый объект/файл 10
  • 11. Выполнение командGet-ChildItem 11
  • 12. Выполнение командGet-ChildItem Каталог: D:Mode LastWriteTime Length Name---- ------------- ------ ----d---- 06.09.2011 0:33 booksd---- 27.08.2011 1:09 distrd-r-- 11.10.2011 0:14 documentsd-r-- 10.10.2011 14:45 downloadsd-r-- 10.10.2011 19:42 Dropboxd---- 15.06.2011 20:49 gamesd-r-- 03.08.2011 20:00 musicd---- 15.06.2011 22:48 picturesd---- 29.09.2011 1:27 svnd-r-- 19.09.2011 5:11 video 12
  • 13. АлиасыGet-ChildItemdirls 13
  • 14. АлиасыGet-AliasCommandType Name Definition----------- ---- ----------Alias cat Get-ContentAlias cd Set-LocationAlias clear Clear-HostAlias cp Copy-ItemAlias diff Compare-ObjectAlias echo Write-OutputAlias mv Move-ItemAlias ps Get-ProcessAlias pwd Get-LocationAlias rm Remove-Item... 14
  • 15. СправкаGet-Helphelpman 15
  • 16. СправкаGet-Help New-ItemИМЯ New-ItemОПИСАНИЕ Создает новый элемент.СИНТАКСИС New-Item [-Path] <string[]> [-Credential <PSCredential>] [-Force] [-ItemType <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]ОПИСАНИЕ Командлет New-Item создает новый элемент и задает его значение. Типысоздаваемых элементов зависят от местоположения этих элементов.Например, в файловой системе командлет New-Item создает файлы и папки. Вреестре командлет New-Item создает разделы и записи реестра. 16
  • 17. СправкаGet-Help New-Item –Examples-------------------------- ПРИМЕР 1 --------------------------new-item -path . -name testfile1.txt -type "file" -value "This is a textstring."-------------------------- ПРИМЕР 2 --------------------------new-item -path c: -name logfiles -type directory-------------------------- ПРИМЕР 3 --------------------------new-item -path $profile -type file -force 17
  • 18. СправкаGet-Help varName Category---- --------Get-Variable CmdletNew-Variable CmdletSet-Variable CmdletRemove-Variable CmdletClear-Variable CmdletVariable Providerabout_Automatic_Variables HelpFileabout_environment_variables HelpFileabout_preference_variables HelpFileabout_Variables HelpFile 18
  • 19. КонвейерGet-ChildItem "*.txt" | Get-Content<Содержимое текстового файла 1><Содержимое текстового файла 2>... 19
  • 20. Примеры использования конвейраGet-Help Registry | Set-Content reg.txt<В файл reg.txt сохраняется справка по реестру> 20
  • 21. Примеры использования конвейраGet-Childitem | ` Measure-Object -Property Length –Sum<Выводится суммарный размер всех файлов в папке> 21
  • 22. Объекты“string” | Get-MemberTypeName: System.StringName MemberType---- ----------GetType MethodSplit MethodSubstring MethodToLower MethodToUpper MethodLength Property... 22
  • 23. Переменные# Нетипизированные$processList = Get-Process# Типизированные[DateTime]$date = "02/14/11" 23
  • 24. Объекты .Net$wget = New-Object System.Net.WebClient$wget.DownloadString("http://google.com")<Выводится HTML страница google.com> 24
  • 25. Объекты .Net[System.Net.DNS]::resolve("87.250.250.3")HostName AddressList-------- -----------www.yandex.ru {87.250.250.3}http://msdn.microsoft.com/en-us/ 25
  • 26. Домашнее задание# Самостоятельно Get-PSDriveWhere-ObjectForeach-Object 26
  • 27. Копирование файловCopy-Item $fromFile -Destination $toFile 27
  • 28. Копирование файлов$wget = New-Object System.Net.WebClient$wget.Credentials = ` [System.Net.CredentialCache]::DefaultNetworkCredentials$wget.DownloadFile($fromFile, $toFile) 28
  • 29. Работа со службамиGet-ServiceStart-Service $serviceStop-Service $service 29
  • 30. Отправка почтыSend-MailMessage ` -To "user01@example.com" ` -From "user02@example.com" ` -Subject "Mail from Powershell" ` -Body "Hello" 30
  • 31. Работа с почтой$outlook = New-Object -ComObject outlook.application$inboxFolder = ` $outlook.GetNamespace("MAPI").getdefaultfolder("olFolderInbox")$lastMessage = $inboxFolder.Items | Sort-Object ReceivedTime | ` Select-Object -Last 1Write-Host $lastMessage.Body 31
  • 32. Виртуальные машины VmWare# http://blogs.vmware.com/vipowershell/2008/04/manage-vmware-w.htmlAdd-PSSnapin VMware.VimAutomation.CoreConnect-VIServer $serverName -Protocol https -Port 8333$vm = Get-VM -Name $vmNameif ($vm.PowerState -eq "PoweredOn"){ Stop-VM $Server}$snapshot = Get-Snapshot -VM $vm -Name $snapshotNameSet-VM $Server -Snapshot $snapshotStart-VM $ServerDisconnect-VIServerRemove-PSSnapin VMware.VimAutomation.Core 32
  • 33. Отправка почтыInvoke-Command ` -filepath c:scriptstest.ps1 ` -computerName $remoteComputer 33
  • 34. Автоматизация с WASP# http://wasp.codeplex.com/Import-Module "D:downloadsWASPWASP.dll"D:downloadsWASPnpp.5.8.Installer.exe$w = "Installer*"Select-Window $w | Set-WindowActiveSelect-Window $w | Select-Control "OK" | Send-Click$w = "*Notepad*"Select-Window $w | Select-Control "&Далее >" | Send-ClickSelect-Window $w | Select-Control "Принима&ю" | Send-ClickSelect-Window $w | Select-Control "&Далее >" | Send-ClickSelect-Window $w | Select-Control "Установить" | Send-Click 34
  • 35. NuGet в VS2010Get-Package –ListAvailable SeleniumId Version-- -------Selenium.RC 2.8.0Selenium.Support 2.8.0Selenium.WebDriver 2.8.0Selenium.WebDriverBackedSel... 2.8.0... 35
  • 36. NuGet в VS2010Install-Package Selenium.WebDriverAttempting to resolve dependency Newtonsoft.Json (= 4.0.2).Attempting to resolve dependency DotNetZip (= 1.9.1.8).Successfully installed Newtonsoft.Json 4.0.2.Successfully installed DotNetZip 1.9.1.8.Successfully installed Selenium.WebDriver 2.8.0.Successfully added Newtonsoft.Json 4.0.2 to Workshop.Successfully added DotNetZip 1.9.1.8 to Workshop.Successfully added Selenium.WebDriver 2.8.0 to Workshop. 36
  • 37. Пример подсветки кода# http://powergui.org$date = Get-Date -Format "yyyy-MM-dd"$time = Get-Date -Format "HH:mm:ss"# Проверка: есть ли файл для скачивания?if ( Test-Path $fileForDownload ){ mkdir $sourceDir Copy-Item $fileForDownload -Destination $sourceDir} 37
  • 38. ИтогиGet-Results> Получили информацию о первичных понятиях PowerShell > Командлеты > Алиасы > Конвейер> Узнали важные команды > Get-Command > Get-Help > Get-Member> Разобрали решение практических задач > Собирать логи, копировать файлы > Запускать/останавливать программы и службы > Выполнять скрипты на удаленной машине > Проверить почту и вытащить нужную информацию из письма > Управлять виртуальными машинами VmWare > Устанавливать дополнительные пакеты в VS2010 38
  • 39. КонецStop-Process POWERPNTСпасибо за внимание! Вопросы?Ссылки: > http://habrahabr.ru/blogs/powershell/113913/ > http://www.techdays.ru/Category.aspx?Tag=PowerShell > http://support.microsoft.com/kb/968929 > http://msdn.microsoft.com/en-us/ > http://powergui.org > http://blogs.vmware.com/vipowershell/2008/04/manage-vmware-w.html > http://wasp.codeplex.com/ > http://nuget.org/ > E-mail: ilyubin@yandex.ru > Skype: igor.lyubin 39