Материал: 3 лаба

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
  1. Ознакомиться с теоретическими сведениями.

  2. Запустить оболочку PowerShell.

  3. Увеличить ширину окна оболочки до максимальной, увеличить высоту окна и задать цвет фона и цвет шрифта (рекомендуется синий фон и белый шрифт).

 PowerShell предоставляет встроенную переменную —$host—для доступа Get-Host. Это означает, что вы используете переменную $host для доступа к свойствам UI и RawUI. Свойство RawUI – это особый тип свойств, связанных с собственным объектом, как и со свойством UI. Свойства консоли доступны через объект RawUI. Следующая команда создает переменную под именем $console и назначает экземпляр объекта RawUI переменной:

$console = $host.UI.RawUI

Если присвоить команду $host.UI.RawUI переменной $console, переменная создается как тип объекта RawUI, предоставляющий доступ к свойствам консоли, чтобы вы могли их конфигурировать.

  1. Вывести содержимое каталога Windows (для бригад 5 и 10 – и подкаталогов) по указанному в табл. 5 формату на экран и в текстовый файл.

4, 9

Только файлы bmp

По размеру

Размер >50000

Команда Get-ChildItem возвращает элементы, обнаруженные в одном или нескольких указанных местах.

Конвейер в PowerShell – это последовательность команд, разделенных между собой знаком | (вертикальная черта). Каждая команда в конвейере получает объект от предыдущей команды, выполняет определенные операции над ним и передает следующей команде в конвейере. В блоках сценариев командлета Where-Object для обращения к текущему объекту конвейера и извлечения нужных свойств этого объекта используется специальная переменная $_, которая создается оболочкой PowerShell автоматически.

-ge

больше или равно

  1. Вывести в текстовый файл список свойств процесса, возвращаемый командлетом Get-process и на экран – их общее количество.

Командлет Get-Member позволяет перечислить только те элементы объекта, которые являются его свойствами. Для этого используется параметр MemberType со значением Properties: Командлет Out-File позволяет направить выводимые данные вместо окна консоли в текстовый файл.

  1. Cоздать текстовый файл, содержащий список выполняемых процессов, упорядоченный по возрастанию указанного в табл.6 параметра. Имена параметров процессов указаны в табл. 6.

Номера бригад

Список выводимых параметров процессов

Сортировать по значению параметра

Вывести процессы, у которых

1, 4

Имя процесса, BasePriority, Company

Имя процесса

BasePriority > 7

Get-Process (получить информацию о процессе),

  1. Cоздать HTML-файл, содержащий список выполняемых процессов, упорядоченный по возрастанию имени процесса. Имена параметров процессов: Имя процесса, BasePriority, Company.

  1. Найти суммарный объем всех графических файлов (bmp, jpg), находящихся в каталоге Windows и всех его подкаталогах. В переменных хранятся все возможные значения, даже если они являются объектами. Имена переменных в PowerShell всегда должны начинаться с символа «$». Можно сохранить список процессов в переменной, это позволит в любое время получать доступ к списку процессов.

В ходе выполнения инструкции foreach оболочка PowerShell «перебирает» элементы коллекции. Для каждого элемента цикл проводится один раз; при этом выполняется блок инструкций, именуемый блоком сценария. Чтобы создать цикл foreach, нужно определить коллекцию, к элементам которой он будет обращаться, задать переменную, которая будет содержать все элементы данной коллекции, и составить блок, который будет выполняться при каждом шаге по элементам коллекции.

Инструкция foreach начинается с ключевого слова foreach, за которым следует пара скобок, заключающих три компонента ($bird in $birds). Первый компонент — это переменная цикла, которую мы определяем для использования в инструкции foreach. Второй компонент в скобках — ключевое слово in. Используйте его «как есть». Третий элемент — собственно коллекция. Далее следует пара фигурных скобок. В них заключен блок сценария, выполняемый при каждом шаге цикла.

Параметр –Recurse дает PowerShell указание возвращать подпапки наряду с файлами. 

  1. Вывести на экран сведения о ЦП компьютера.

Для вывода сведений о процессоре ПК служит командлет Get-wmiobject

10.Найти максимальное, минимальное и среднее значение времени выполнение командлетов dir и ps

Еще для измерения времени выполнения задачи в PowerShell есть командлет Measure-Command. Этот командлет берет команду\блок команд, указанную в фигурных скобках, выполняет ее внутри себя и в качестве результата выдает время, затраченное на выполнение. TotalMilliseconds -получает значение текущей структуры Measure-Command, выраженное как целое и дробное количество миллисекунд.

Для получения статистических данных служит командлет Measure-Object. Для числовых массивов с его помощью можно получить максимальное, минимальное, среднее значение элементов массива и их сумму. Если имеется инициализированный массив ms, для указанной цели используется командлет

$ms | measure-object –maximum –minimum –average -sum

11. Выполнить индивидуальные задания для студентов бригад согласно табл. 7.

4

  1. нахождения в заданном каталоге файла наибольшего размера

  2. нахождения в заданном каталоге трех файлов наименьшего размера

ls C:\Temp -File | sort Length | select -Last 1

ls, то он получит ожидаемый результат: список файлов в текущем каталоге (то же самое относится к команде dir).

ls C:\Temp -File | sort Length -Descending | select -Last 3

Переключатель -descending указывает, что результаты нужно сортировать в порядке убывания, как показано на экране 6. Если мы не укажем переключатель -descending, результаты будут сортироваться в порядке возрастания.

1. Типы команд PowerShell (ps).

В оболочке PowerShell поддерживаются команды четырех типов: командлеты, функции, сценарии и внешние исполняемые файлы.

Первый тип – так называемые командлеты (cmdlet). Этот термин используется пока только внутри PowerShell. Командлет – аналог внутренней команды интерпретатора командной строки - представляет собой класс .NET, порожденный от базового класса Cmdlet; разрабатываются командлеты с помощью пакета PowerShell Software Developers Kit (SDK).

Следующий тип команд – функции. Функция – это блок кода на языке PowerShell, имеющий название и находящийся в памяти до завершения текущего сеанса командной оболочки.

Функции, как и командлеты, поддерживают именованные параметры. Анализ синтаксиса функции производится один раз при ее объявлении.

Сценарий – это блок кода на языке PowerShell, хранящийся во внешнем файле с расширением ps1. Анализ синтаксиса сценария производится при каждом его запуске.

Последний тип команд – внешние исполняемые файлы, которые выполняются обычным образом операционной системой.

2. Имена и структура командлетов.

Команды Windows PowerShell состоят из глагола и существительного (всегда в единственном числе), разделенных тире. Глагол задает определенное действие, а существительное определяет объект, над которым это действие будет совершено.

Например, Get-Process (получить информацию о процессе), Stop-Service

В общем случае синтаксис командлетов имеет следующую структуру: имя_командлета –параметр1 -параметр2 аргумент1 аргумент2 Здесь параметр1 – параметр (переключатель), не имеющий значения; параметр2 – имя параметра, имеющего значение аргумент1; аргумент2 – параметр, не имеющий имени. Например, командлет GetProcess имеет параметр Name, который определяет имя процесса, информацию о котором нужно вывести. Имя этого параметра указывать необязательно. Таким образом, для получения сведений о процессе Far можно ввести либо команду Get-Process -Name Far, либо команду Get-Process Far.

3. Псевдонимы команд.

Механизм псевдонимов, реализованный в оболочке PowerShell, дает возможность пользователям выполнять команды по их альтернативным именам (например, вместо команды Get-Childitem можно пользоваться псевдонимом dir). В PowerShell заранее определено много псевдонимов, можно также добавлять собственные псевдонимы в систему. Псевдонимы в PowerShell делятся на два типа. Первый тип предназначен для совместимости имен с разными интерфейсами. Узнать, какой именно командлет скрывается за знакомым псевдонимом, можно с помощью командлета Get-Alias:

Псевдонимы второго типа (стандартные псевдонимы) в PowerShell предназначены для быстрого ввода команд. Такие псевдонимы образуются из имен командлетов, которым они соответствуют. Например, глагол Get сокращается до g, глагол Set сокращается до s, существительное Location сокращается до l и т.д. Таким образом, для командлету SetLocation соответствует псевдоним sl

4. Просмотр структуры объектов.

Для анализа структуры объекта, возвращаемого определенной командой, проще всего направить этот объект по конвейеру на командлет Get-Member (псевдоним gm), например (рис.3): PS C:\> Get-Process | Get-Member

Командлет Get-Member позволяет перечислить только те элементы объекта, которые являются его свойствами. Для этого используется параметр MemberType со значением Properties:

5. Фильтрация объектов в конвейере. Блок сценария.

Конвейер в PowerShell – это последовательность команд, разделенных между собой знаком | (вертикальная черта).

В PowerShell поддерживается возможность фильтрации объектов в конвейере, т.е. удаление из конвейера объектов, не удовлетворяющих определенному условию. Данную функциональность обеспечивает командлет Where-Object, позволяющий проверить каждый объект, находящийся в конвейере, и передать его дальше по конвейеру, только если объект удовлетворяет условиям проверки.

6. Какую информацию выводит команда Get-Help * ?

Краткую справку по одному командлету можно получить с помощью параметра ?

Get-Help * перечисляет все команды Windows PowerShell

Хелп для всех команд

7. Командлеты для форматирования выводимой информации.

Format-Table

Форматирует вывод команды в виде таблицы, столбцы

которой содержат свойства объекта (также могут быть добавлены вычисляемые столбцы). Поддерживается возможность группировки выводимых данных

Format-List

Вывод форматируется как список свойств, в котором каждое свойство отображается на новой строке. Поддерживается возможность группировки выводимых данных

Format-Custom

Для форматирования вывода используется пользовательское представление (view)

Format-Wide

Форматирует объекты в виде широкой таблицы, в которой отображается только одно свойство каждого объекта

8. Перенаправление выводимой информации.

Замечание. В PowerShell для операторов сравнения не используются обычные символы > или <, так как в командной строке они обычно означают перенаправление ввода/вывода.

9. Управляющие инструкции PS.

В общем случае синтаксис инструкции If имеет вид

If (условие1)

{блок_кода1}

[ElseIf (условие2)]

{блок_кода2}]

[Else

{блок_кода3}]

10. Назначение регулярных выражений.

Регулярные выражения - это специальный мини-язык, служащий

для разбора (parsing) текстовых данных. С его помощью можно разделять

строки на компоненты, выбирать нужные части строк для дальнейшей

обработки, производить замены и т. д.

11. Сохранение данных в текстовом файле и html-файле.

В оболочке PowerShell имеются несколько командлетов, с помощью

которых можно управлять выводом данных. Эти командлеты начинаются

со слова Out, их список можно получить с помощью команлета

Out-Default

Out-File

Out-Host

Out-Null

Out-Printer

Out-Strings

Командлет Out-File позволяет направить выводимые данные

вместо окна консоли в текстовый файл.

Для преобразования данных в формат html служит командлет

Convertto-html.

12. Получение справочной информации в PS.

get-process -?

13. Как создать массив в PS?

Для создания и инициализации массива достаточно присвоить значения его элементам. Значения, добавляемые в массив, разделяются запятыми и отделяются от имени массива символом присваивания.

14. Как объединить два массива?

$d=$b+$c

15. Как увеличить размер созданного в PS массива?

$a+=5,6

16. Как ввести данные в массив?

17. Использование командлета Out-Null.

Командлет Out-Null служит для поглощения любых своих

входных данных. Это может пригодиться для подавления вывода на экран

ненужных сведений, полученных в качестве побочного эффекта

выполнения какой-либо команды.

18. Оператор PowerShell –match.

Для начала изучения мы будем использовать оператор PowerShell -

match, который позволяет сравнивать текст слева от него, с регулярным

выражением справа. В случае если текст подпадает под регулярное

выражение, оператор выдаёт True, иначе – False.

19. Использование символа ^ в командлетах.

Привязка к началу строки, в группе - отрицание

20. Использование символа $ в командлетах.

Привязка к концу строки

21. Количественные модификаторы (квантификаторы).

{start, end} ? * +

22. Использование групп захвата.

()

"S-1-5-21-1964843605-2840444903-4043112481" -match "^S(-\d+)+$"

о. Гораздо важнее то,

что часть строки, подпавшая под подвыражение, находящееся внутри

такой группы, помещается в специальную переменную – $matches.

$Matches - это массив, и в нем может находится содержимое нескольких

Источник: https://studfile.net/preview/15934443/