Создание CSV-файла для Excel с помощью Export-CSV

Это последний элемент мозаики, который позволит создать CSV-файл для Excel. Для этого потребуется только одна команда PowerShell с использованием ранее созданной переменной $SavedAuditOS:

 

$SavedAuditOS | Export-CSV-Path C:\temp\ TestReport.csv-NoTypelnformation; ii C:\temp\TestReport.csv;

Это еще одна однострочная команда, в которую входит команда ii (псевдоним для Invoke-Item). С помощью этой команды можно открыть файл с использованием соответствующей прикладной программы, в данном случае Excel. В большинстве случаев Excel — программа, выбираемая по умолчанию для просмотра CSV-файлов. Учтите, что если CSV-приложение не установлено, то вместо Invoke-Item придется использовать блокнот Notepad. Параметр-NoTypeInformation исключает дополнительную информацию о данных, добавленных в экспортированный CSV-файл.

Автоматизация: объединение всех действий

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

Нужно объединить всю информацию о компьютере в одной переменной с именем $AuditOSInfo. Эта переменная представляет собой хэш-таблицу PowerShell, в которой содержатся результаты обоих процессов WMI: Win32_OperatingSystem и запроса Win32_PingStatus. Затем с помощью инструкции ForEach мы пройдем по именам всех компьютеров, построив хэш-таблицу, содержащую всю информацию.

Внутри команды ForEach будут созданы две переменные:

$SavedAuditOS —собирает информацию Win32_OperatingSystem из выбранного компьютера;

$SavedAuditIpAddr —собирает информацию IPAddress запроса WMI из выбранного компьютера.

Внутри программного кода ForEach строится объект $MyPSObject хэш-таблицы для объединения информации каждого компьютера и добавления к ней переменной $AuditOSInfo. Наконец, после сбора всей информации с помощью команды Export-CSV создается выходной CSV-файл. В листинге 1 приведен полный исходный текст сценария. Сценарий формирует тестовый административный отчет, показанный на экране 4.

О пользовательском объекте хэш-таблицы

Это ядро нашего процесса. Здесь данные объединяются в одном пользовательском объекте, известном как хэш-таблица. Можно упорядочить результаты по собственному желанию, объединить данные из различных источников и при необходимости изменить метку значения данных. Все это происходит в параметре-Property, когда создается новый объект PSObject, как показано в исходном тексте листинга 2.

Обратите внимание, что при создании свойства OSName используется передовой метод, чтобы получить значение описания операционной системы, сохраняемое в переменной $SavedAuditOS. Назначьте свойству имя с использованием метода String Split (). Это свойство содержит три значения, разделенные символом (|), но нам нужно лишь одно, определенное в исходном тексте как элемент 0:

OSName = $SavedAuditOS.Name.Split ("|")[0];

Одно из трех значений будет храниться в свойстве OSName пользовательской хэш-таблицы. Принимая эту строку с несколькими значениями и разделительными символами (|), мы используем метод Split ("|") с последующей квадратной скобкой [0], указывающей на необходимость извлечь первый элемент строки.

Ниже приводится пример строки с несколькими значениями, содержащей три разграниченных элемента:

$Str_name = "Microsoft Windows 2008 R2IC:\Windowsl\Device\ Harddisk0\Partition2"

Element #-> [0]-> [1]-> [2]

Используя тестовую строку $Str_ Name.Split ("|") [0], мы получаем только первый элемент, выбирая строковое значение Microsoft Windows 2008 R2. Как видно, используется строковый метод Split ().NET в случае, когда нужно извлечь фрагмент данных с разделительным символом.

Творческий подход

Это несложный сценарий, предназначенный для выполнения с настольного компьютера. Совсем не обязательно иметь в своем распоряжении сервер, чтобы задействовать PowerShell. Можно расширить логику или добавить программный код, чтобы увеличить количество полей. Можно даже подготовить сценарий для передачи по электронной почте сообщений с прикрепленным файлом CSV или создать плановую задачу для запуска сценария в определенный день и время. Следует отметить, что при создании пользовательских хэш-таблиц свойства объекта .NET расположены не в том порядке, в котором они были изначально определены. В версии 2.0 это нормально. Просто воспользуйтесь командой Format-* или Select-Object и введите свойства в том порядке, в котором их следует отображать. PowerShell стал для администраторов важным инструментом, игнорировать который нельзя. Непременно выделите время для его освоения.

Дорогие читатели и посетители нашего сайта, на одном весьма интересном портале под названием Hoster Talk вы можете найти рейтинг хостинг-провайдеров всего мира.

Популярные шаблоны