Top Banner
22

Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Dec 22, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.
Page 2: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

Разгоняем PowerShell

Дмитрий СотниковPowerShell MVPQuest Software

Page 3: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

Что будем разгонять

1. Запуск PowerShell’a2. Получение объектов3. ForEach против ForEach4. Работу с большими файлами5. Работу с массивами

Page 4: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

1. Запуск PowShell'a

На всех машинах с PowerShell v1: Запустить Update-GAC.ps1

Page 5: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

Как будем замерять?

Page 6: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

2. Получение объектов

Не доставайте ненужные объектыПараметры – хорошоWhere – плохо

Page 7: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

Where – фильтруем «руками»

Get-Ball | where { $_.color -eq ‘Orange’ }

Page 8: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

Параметры кмдлета

Get-Ball -Сolor ‘Orange’

Page 9: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Примеры

Get-QADUser | Where { $_.Enabled –and

$_.City -eq “Уфа”}

Get-QADUser -Enabled -City “Уфа”

Page 10: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

3. foreach или ForEach-Objectforeach ($i in выражение) { $i }

выражение | ForEach-Object { $_ }

Page 11: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

3. foreach или ForEach-Objectforeach ($i in выражение) { $i }

выражение | ForEach-Object { $i }

1. Вычисляет выражение2. Загружает его целиком в память3. Выполняет скриптблок для

элементов

Page 12: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

3. foreach или ForEach-Objectforeach ($i in выражение) { $i }

выражение | ForEach-Object { $_ }

1. Передает объекты по одному2. Для каждого выполняет

скриптблок

Page 13: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Правильные примеры

foreach($i in $bigcollection) { $sum += $i.property }

Get-QADUser –Enabled | ForEach-Object { $count++ }

Page 14: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

4. Чтение больших файлов

Get-Content big.log

Устанавливает буфер чтения (см. статью)

–Read 1000

Page 15: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

На 75 MB:

gc test.txt |  Where {$_ -like '*a*'} | Measure-Object

gc test.txt -read 1000 | ForEach-Object {$_} |  Where {$_ -like '*a*'} | Measure-Object

В 3 раза быстрее!

Page 16: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Если нужен только текст...

select-string a.log -pattern $regex

16 секунд

Или Microsoft LogParser

egrep $regex a.log

0.2 секунды

Page 17: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

5. Массивы и строки

Массивы и строки динамическиеПри расширении они пересоздаются

Page 18: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Удобно или быстро

$arr = @()for ($i=0;$i –lt 10000; $i++) {$arr += $i*5}

$arr = new-object int[] 10000for ($i=0;$i –lt 10000; $i++) {$arr[$i] = $i*5}

В 15 раз быстрее

Page 19: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

Мы разогнали

1. Запуск PowerShell’a2. Получение объектов3. ForEach против ForEach4. Работу с большими файлами5. Работу с массивами

Page 20: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

Ссылки по теме

Мои блоги:http://dmitrysotnikov.wordpress.comhttp://www.itcommunity.ru/blogs/dmitrysotnikov

Другие русские блоги по PowerShell:http://xaegr.wordpress.com/http://www.sysadmins.lv/ http://blogs.technet.com/abeshkov/

Инструментарий:http://powergui.org

Page 21: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.

Microsoft TechDayshttp://www.techdays.ru

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 22: Microsoft TechDays Дмитрий Сотников PowerShell MVP Quest Software.