Powershell convertto-html и хэш-таблица массива

#powershell #multidimensional-array

#powershell #многомерный массив

Вопрос:

У меня возникли небольшие проблемы при попытке вывести содержимое моего foreach в массив или объект с целью использования convertto-html для публикации отформатированной таблицы для меня.

Моя последняя попытка заключалась в использовании хэш-таблицы, но это не совсем сработало, так как содержимое таблицы просто не имело заголовков.

По сути, я пытаюсь вывести результаты любых приложений на веб-сайте по умолчанию, которые содержат папку XXX, в форматированную таблицу html со столбцом имени приложения и полным путем к папке XXX.

 Import-Module WebAdministration
$getiisapp = Get-WebApplication -Site "Default Web Site"
$myarray = @{}
foreach ($getiisapps in $getiisapp) {
$fullpath = $getiisapps.PhysicalPath
$fullname = $getiisapps.path    


if(Test-Path "$fullpathXXX") {
    $myarray.Add($getiisapps.path,$getiisapps.PhysicalPath)        
   }
}
  

в этой редакции имена приложений помещаются в заголовок таблицы, а значение — в следующую строку, поэтому на данный момент у меня просто нет идей.

Комментарии:

1. Взгляните на существующие решения, которые используют PSCustomObject для подготовки хэш-таблицы для ConvertTo-Html.

2. на самом деле это не обязательно должна быть хэш-таблица, но это самое близкое к тому, чтобы вывести ее в нужном формате для convertto-html, который я мог бы получить.

3. Переместите $myarray = @{} инициализацию перед foreach циклом. В любом случае, вы могли бы упростить свой скрипт: $getiisapp | ConvertTo-Html -Property path, PhysicalPath

4. На самом деле у меня так и было, я безуспешно пытался создавать массивы. Я не пытаюсь вывести всю переменную getiisapp, я пытаюсь отфильтровать ее по тому, какие приложения содержат папку XXX.

Ответ №1:

Я не пытаюсь вывести всю переменную getiisapp, я пытаюсь отфильтровать ее по тому, какие приложения содержат XXX папку.

 Import-Module WebAdministration
$getiisapp = Get-WebApplication -Site "Default Web Site"  | 
    Where-Object {
        $fullpath = $_.PhysicalPath
        Test-Path "$fullpathXXX"
    }
$getiisapp | ConvertTo-Html -Property Path, PhysicalPath