В PowerShell для экспорта массивов данных в CSV файлы можно использовать командлет Export-CSV . В этой статье мы покажем, как экспортировать данные в CSV файл и добавить в него дополнительные строки.
Следующая команда экспортирует список служб Windows в CSV файл:
Get-Service |select-object Name,DisplayName,Status | Export-CSV "C:PSservices.CSV" -NoTypeInformation -Encoding UTF8
Откройте полученный CSV файл с помощью любого текстового редактора. Как вы видите, в первой строке указаны названия столбцов (атрибуты объекта PowerShell, в нашем примере вы выбрали определенные поля с помощью select-object), и далее построчно идут данные, разделенные запятыми.
По-умолчанию в качестве разделителя (делиметера) в CSV используется запятая. Вы можете задать другой разделитель (точку с запятой, двоеточие и т.д.) с помощью параметра –Delimiter .
Например, укажем что в качестве разделителя нужно использовать точку с запятой:
Get-Service | Export-CSV "C:PSservices.CSV" -NoTypeInformation -Encoding UTF8 -Delimiter ";"
Вы можете использовать разделитель в зависимости от региональных настроек Windows. Для этого используется параметр -UseCulture .
Get-Process | Export-Csv "c:psprocess.csv" -UseCulture
(Get-Culture).TextInfo.ListSeparator
По умолчанию командлет Export-CSV создает новый CSV файл (если файл уже существует, он перезаписывается/заменяется новым). Если вы хотите добавить новые строки в уже существующий CSV файл, нужно использовать параметр -Append.
Например, вы хотите по расписанию запускать PowerShell скрипт, который проверяет свободное место на диске и добавляет текущее значение в CSV файл:
$cur_time=get-date -Format u
$freedisksize=Get-CimInstance -Class Win32_LogicalDisk |Where-Object {$_.DeviceID -eq "C:"} |select DeviceID,FreeSpace
Теперь нужно добавить дату в таблицу (объект) в качестве одного из полей:
$freedisksize| add-member -membertype NoteProperty -name Date -value $cur_time
Экспорт объекта PowerShell в CSV файл:
$freedisksize| Export-Csv -Path C:psfreespace.csv -Delimiter ";" -NoTypeInformation -Append
Также вы можете использовать следующие дополнительные параметры Export-CSV:
#TYPE System.Diagnostics.Process
или #TYPE System.Service.ServiceController
). Начиная с PowerShell 6 информация TYPE в заголовке не выводится по-умолчанию; В дальнейшем вы можете обрабатывать полученный CSV файл в Excel или других программах.
Командлет Export-CSV часто используется для построения различных табличных выгрузок и отчетов. Ниже несколько примеров полезных отчетов для системного администратора, которые можно сформировать с помощью Export-CSV:
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…