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



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

Дополнительные данные в выводе


Для того чтобы добавить пользовательские свойства к объекту, используется команда Select-Object. Например, чтобы добавить атрибут ComputerName к элементу Computer, у которого уже есть атрибут Name, можно запустить команду:



Get-ADComputer –filter * |

Select *,@{Label='ComputerName';Expression={$_.Name}

Команда Select-Object обеспечивает доступ ко всем свойствам компьютеров, которые были определены с помощью Get-ADComputer и группового символа *. Помимо этого, Select-Object добавляет новые свойства этим компьютерам. В данном случае новое свойство имеет ярлык ComputerName, что в командной конструкции обозначено с помощью команды Label. Такая часть конструкции как Expression показывает значение, которое содержит данное свойство. Expression сопровождается скриптовым блоком, заключенным в фигурные скобки. Внутри этого скриптового блока структурный нуль $_ указывает, на что направлена команда Select-Object – в данном случае, это компьютеры. Точка после $_ указывает на то, что вы хотите обратиться к существующему свойству, в данном случае, Name.

Командлет Format-Table принимает тот же самый синтаксис для создания новых колонок в таблице. Это означает, что если вы хотите просто добавить свои собственные колонки в таблицу, вместо того, чтобы придавать новые свойства объекту, вы можете запустить команду:

Get-ADComputer –filter * |

Ft DnsHostName,Enabled,@{Label='ComputerName';Expression={$_.Name}}

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

В чем же разница? Если вам необходимо изменить элемент в конвейере, а затем передать его в другой командлет, вы можете использовать опцию Select-Object для добавления новых свойств элементу. Если же вы просто хотите создать новую колонку в таблице, используйте опцию Format- Table. В принципе, не случится ничего страшного, если вы используете опцию Select-Object, а затем передадите результат по конвейеру в командлет Format-Table для вывода данных в виде таблицы. Обе техники дают один и тот же результат. Просто не забывайте о том, что командлет Format-Table обычно идет в самом конце конвейера, и что данные из него можно передавать только командлету Out-. Элемент Expression в конструкции также может содержать математические знаки, такие как +, -, * или /, которые обозначают, соответственно, прибавление, вычитание, умножение или деление. Например, таким образом вы можете добавить значения двух свойств:

Get-WmiObject Win32_LogicalDisk |

Ft DeviceID,Size, @{Label='SpaceUsed';Expression={$_.Size - $_.FreeSpace}}

Здесь командлету Format-Table дана команда создать колонки для свойств логических дисков DeviceID и Size, которые были извлечены командлетом Get-WmiObject. Вдобавок к этим двум колонкам он создает третью, под названием SpaceUsed. Эта колонка содержит значение, равное разнице между общим размером диска и оставшейся свободной памятью. Как вы видите, здесь используется знак вычитания для осуществления математического вычисления.

Техника использования $_ в качестве структурного нуля для обозначения элемента, на который направлена команда, а также последующая точка, указывающая, к какому свойству следует обратиться, является ключевой техникой в Windows PowerShell. Позже вы еще неоднократно будете встречаться с этим синтаксисом, поэтому, постарайтесь свыкнуться с ним.

Такой элемент командной строки как Expression может содержать практически любой скрипт или команду Windows PowerShell. В первом примере это был просто доступ к атрибуту Name тех элементов, которые поступают в командлет Format-Table, хотя вы можете использовать намного более сложные значения, например:



get-adcomputer -filter * |

ft dnshostname,@{

Label="OSVersion";

Expression={

(gwmi win32_operatingsystem -comp $_.Name).caption

}

}

Это уже достаточно сложная команда. Вот что здесь происходит:

• Командлет Get-ADComputer извлекает данные обо всех компьютерах в домене (хотя и с осторожностью, так как в большом домене данный процесс может быть ресурсоемким).

• Данные о компьютерах передаются в командлет Format-Table.

• Format-Table показывает атрибут DNSHostName.

• Также Format-Table создает дополнительную колонку под названием OSVersion. Содержимое этой колонки – это данные, которые отображает командлет Get-WmiObject (использует alias gwmi).

• Get-WmiObject соединяется с именем компьютера, указанным в атрибуте Name входящих данных в Format-Table – это то имя, которое мы показываем.

• Командлет Get-WmiObject находится внутри круглых скобок, которые обозначают, каким должен быть результат выполнения команды. В данном случае результатом является информация об операционной системе компьютера.

• Точка после скобок обозначает, что мы хотим получить доступ к свойству информации WMI, полученной в результате выполнения команды. В данном случае мы получаем доступ к атрибуту Caption операционной системы, который представляет собой текстовое описание имени и версии операционной системы.

Выходные данные для отдельно взятого компьютера будут выглядеть так:



dnshostname OSVersion

----------- ---------

server-r2.company.pri Microsoft Windows Server 2008 R2 Standard

Создание HTML


Иногда может потребоваться отобразить выходные данные в таком виде, чтобы их можно было просматривать через веб-браузер. Командлет ConvertTo-HTML конвертирует элементы конвейера в форму таблицы на базе HTML. Этот командлет не записывает HTML в файл, он просто помещает HTML-текст в конвейер. Однако вы можете сохранить его в файл, используя командлет Out-File. Типичным примером использования данного командлета может быть следующая команда:

Get-EventLog Security –newest 20 | ConvertTo-HTML |

Out-File events.htm

Не отправляйте выходные данные командлета Format- в ConvertTo-HTML; помните о том, что командлеты Format- производят только инструкции для форматирования, а значит, если вы предпримите такую попытку, в HTML будут конвертированы именно сами инструкции. Если вы хотите посмотреть, каким будет результат, попробуйте запустить команду:



Get-Process | Format-Table | ConvertTo-HTML | Out-File confusing.htm

HTML, произведенный командлетом ConvertTo-HTML, является хорошо оформленным, «чистым» HTML-текстом, а значит, не содержит никакой информации, касающейся форматирования. В результате мы получаем простой файл. Однако, используя различные параметры командлета ConvertTo- HTML, можно уточнить некоторую дополнительную информацию, например:

• Текст, который необходимо поместить перед HTML-таблицей.

• Заголовок страницы.

• Текст, который необходимо поместить после HTML-таблицы.

• Ссылка CSS, которая может использоваться для определения дополнительных опций форматирования: шрифт, цвет и.т.д.



Не забывайте, что Windows PowerShell использует официальные термины для описания элементов в конвейере и их свойств. Мы уже упоминали о них ранее. Данные термины являются всего лишь словами и не несут никакого значения сами по себе. И все же, вам следует привыкнуть к регулярному использованию этих терминов – так вам будет проще общаться с другими пользователями оболочки. В данном модуле слово «элемент» использовалось для обозначения данных, которые командлет помещает в конвейер. Например, командлет Get-Process помещает в конвейер элемент «процесс». Более официальный термин, который используется вместо слова «элемент» - это «объект». Поэтому, можно также сказать, что командлет Get-Process помещает в конвейер объекты процесса.

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



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


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

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


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