Обзор технологии Microsoft Windows PowerShellMicrosoft ® 1 Назначение PowerShell 2 Установка Windows PowesShell 6 Назначение PowerShell 7


Основные командлеты Windows PowerShell



Скачать 13.55 Mb.
страница10/27
Дата29.11.2016
Размер13.55 Mb.
Просмотров5754
Скачиваний0
ТипОбзор
1   ...   6   7   8   9   10   11   12   13   ...   27

Основные командлеты Windows PowerShell


Тогда как многие встроенные в оболочку командлеты могут считаться ключевыми, другие созданы исключительно для передачи объектов, которые запускаются в конвейер другими командлетами. Поэтому, в названиях таких командлетов чаще всего присутствует слово «объект». В частности, в данном разделе мы рассмотрим следующие из них:

• Sort-Object

• Group-Object

• Measure-Object

• Select-Object

• Compare-Object

Некоторые из ключевых командлетов также предназначены исключительно для экспорта и импорта данных в формат текстовых файлов и из формата текстовых файлов. К ним относятся:

• Import-CSV

• Export-CSV

• Import-CliXML

• Export-CliXML

Ни один из перечисленных командлетов (кроме командлетов Import-) не генерирует объекты самостоятельно. Вместо этого они принимают объекты, сгенерированные другими командлетами, обрабатывают их (модифицируют или фильтруют), а затем передают их дальше по конвейеру, в следующий командлет.

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

Многие командлеты Windows PowerShell, особенно те, в названии которых содержится глагол Get-, производят объекты и помещают их в конвейер:



Get-EventLog Security –newest 20

Передавая эти объекты по конвейеру другому командлету, вы можете манипулировать ими:



Get-EventLog Security –newest 20 | Sort-Object

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


Сортировка объектов


Когда вы запускаете командлет, он самостоятельно определяет порядок, в котором будут перечислены исходящие объекты. Список в журнале регистрации входящих событий, в свою очередь. Обычно формируется в хронологическом порядке.

Порядок, предлагаемый командлетами по умолчанию, иногда может вас не устраивать. Например, работа со списком всех остановленных сервисов может быть неудобной, если список сформирован в алфавитном порядке по названию сервиса. Командлет Sort-Object позволяет изменить порядок, в котором перечисляются объекты. Он может принимать входящие данные любого типа; вам же остается уточнить одно или несколько свойств, в соответствии с которыми будет сформирован список объектов. Например, по умолчанию объекты могут быть отсортированы в восходящем порядке, а вы, указав параметр – descending, можете изменить порядок на нисходящий. Операционная система вашего компьютера распознает указанный порядок сортировки, поэтому результаты могут немного отличаться на разных компьютерах из-за особенностей операционной системы каждого из них. Например:

Get-Service | Sort-Object status

Или, чтобы отсортировать объекты в нисходящем порядке:



Get-Service | Sort-Object status -descending

Sort – это встроенный псевдоним командлета Sort-Object, который может использоваться вместо полного имени командлета:



Get-Service | Sort status

Обратите внимание, что при написании имен свойств регистр клавиатуры не имеет значения: status, Status, и STATUS будет означать одно и то же. Также, когда Sort-Object сортирует текстовые свойства, например, процессы или сервисы, он по умолчанию делает их нечувствительными к регистру. Чтобы более подробно узнать об опциях, предлагаемых данным командлетом, запустите команду Help Sort-Object. Иногда может показаться, что Sort-Object работает слишком медленно, особенно, когда получает по конвейеру большое количество объектов сразу. Это происходит из-за того, что командлет должен дождаться всех объектов до последнего, прежде чем начать сортировку. Как только последний объект получен, командлет моментально производит отсортированные выходные данные. Вы можете указать несколько свойств, разделяя их запятой. Например, если вы хотите получить список всех сервисов, отсортированных по статусу, но чтобы при этом внутри каждого статуса сервисы были отсортированы в алфавитном порядке, запустите команду:



Get-Service | Sort status,name

Учтите, что Sort-Object оперирует реальными значениями свойств объектов, но Windows PowerShell не всегда отображает эти реальные значения свойств. Примером может быть свойство статуса сервиса. Внутри оболочки статус отображается в виде цифры, однако, гибкая печатная система Windows PowerShell автоматически переводит это число в текстовую строку. Поэтому, вместо статуса 0 или 1, вы видите статус Stopped (остановленные) или Running (запущенные) . Если внимательно присмотреться, то можно заметить, что с помощью следующей команды статус Stopped оказывается перед Running, хотя обычно бывает наоборот:



Get-Service | Sort status

Это вызвано работой командлета Sort-Object над значением этого свойства – естественно, что при сортировке он ставит сначала 0, а потом 1. Но когда оболочка отображает данные значения, 0 превращается в Stopped, а 1 – в Running.


Группировка объектов


Иногда вам может потребоваться распределение объектов по группам, чтобы работать с каждой группой отдельно. В этом поможет командлет Group-Object. Он изучает свойства заданных объектов и объединяет объекты в группы по значениям каждого свойства. Например, данная команда:



Get-Service | Group-Object status

обычно позволяет создать две группы объектов: со статусом «остановлен» и со статусом «запущен». Возможно, вы получите и другие группы статусов, в зависимости от того, в каком состоянии находятся сервисы в тот момент, когда вы запускаете программу. Командлет Group-Object обычно бывает полезным, когда свойства объектов имеют повторяющиеся значения. Например, команда Get-Service | Group-Object name будет менее полезной, так как каждый сервис имеет уникальное имя. В данном случае командлет Group-Object будет вынужден создавать отдельную группу для каждого сервиса, и каждая группа будет включать всего один объект. Преимуществом Group-Object является то, что на выходе он показывает, сколько объектов находится в каждой группе, что позволяет вам моментально сориентироваться в том, сколько сервисов остановлено, сколько процессов откликается на запросы Windows и.т.д.




Поделитесь с Вашими друзьями:
1   ...   6   7   8   9   10   11   12   13   ...   27


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал