PowerShell, REST и Excel

Обнаружили проблему: командлет Get-OrgVdcNetwork почему-то не выводит часть сетей orgVDC. Опытным путем выяснили, что ему не нравятся Shared-сети, то есть сети доступные из нескольких orgVDC.

Для решения проблемы решили воспользоваться REST API от vCloud Director.

А чтобы было не скучно, решили вывод сетей делать сразу в файл Excel, чтобы уменьшить количество ручной работы.

Оригинал PoSH-скрипта я положил на гитхаб, тут его приведу для наглядности (хотя с отступами при копипасте беда).

Скрипту понадобится список vCloud Director’ов в файле vcd_list.txt.

  1. скрипт запрашивает учетные данные для подключения к vCD;
  2. скрипт считывает список vCloud Director’ов из текстового файла;
  3. создает Excel-файл, а на нем одноименный лист по каждому vCD;
  4. заполняет список сетей по vCD на листе;
  5. сохраняет результат в файле orgvdcnet.xlsx

Что стоило бы доделать – проверку на наличие установленного Excel (например, тут – $ExcelApplication = new-object -comobject excel.application). Если Excel нет, то делать вывод в CSV-файлы по старинке…

6 thoughts on “PowerShell, REST и Excel”

  1. Имхо (имхо!), универсальнее все же делать для вывода массив из [ordered][PSCustomObject] который потом легко конвертнуть в CSV/JSON и уже после отправить в файл например. =) Работать же с CSV в Excel легко и просто. А вот запускать Ваш скрипт на машине без Excel уже не получится.

    1. Александр, согласен насчет универсальности.
      Но мне поработать с Excel было интереснее, чем в очередной раз сделать
      $orgVDCs_tmp | Export-Csv -NoTypeInformation -Path “$cont.csv”

      Ну и “лучшее – враг хорошего”:
      в обозримом будущем запускать этот скрипт на машине без Excel я не планирую.
      А сидеть и отлаживать запуск скрипта в разных окружениях – я ж не разработчик, которому за это еще и платят 😉

  2. Помнится через ADODB (кажется нужен был установленный MDAC) можно было писать в xls файл как в базу данных инсёртами. Новые листы тоже можно было SQL командами создавать. При этом установленный Excel был не нужен.

    1. что важно – работало во много раз быстрее чем через объект excel.application.

      1. Если что – odbc и сейчас никуда не делся из Windows 10/11. И драйвер для Excel есть (правда 32-битный только). Только оно работает только под Windows. По этому я за то что бы писать на powercli/powershell core =)

Leave a Reply

Your email address will not be published. Required fields are marked *