Я абсолютный новичок, когда дело доходит до сценариев PS, и я тяжело борюсь с тем, что считаю простым: перебираю элементы PSObject, чтобы объединить их в 1 массив.
Я написал простое Invoke-RestMethod
основанный скрипт, который извлечет мне конфигурацию DNS для одной из служб, которые я использую. Вывод, который я получаю от их API, - это JSON, который (при использовании Invoke-RestMethod
) превращается в customPSObject со следующей структурой:
- dns
- dkim1
- действительный
- хост
- тип
- данные
- dkim2
- действительный
- хост
- тип
- данные
- имя_домена
- действительный
- хост
- тип
- data
- имя_хозяина
- действительный
- host
- тип
- data
- mail_cname
- действительный
- хост
- тип
- data
В настоящее время я использую следующий код для получения результатов:
$res = Add-SGAuthDomains $SGapiKeyName $SGsubUserName
$strng = $res.Body.dns.dkim1 | Out-String
Write-Host $strng
$strng = $res.Body.dns.dkim2 | Out-String
Write-Host $strng
(...)
, но, как вы можете видеть, это создает отдельные таблицы. Я хотел бы, чтобы все эти результаты были в одной таблице.
Я пытался использовать DataTable
согласно приведенному ниже коду,
$dnsConf = New-Object System.Data.DataTable
[void]$dnsConf.Columns.Add("valid")
[void]$dnsConf.Columns.Add("host")
[void]$dnsConf.Columns.Add("type")
[void]$dnsConf.Columns.Add("data")
foreach ($item in $res.Body.dns) {
$($item | Get-Member -MemberType *Property).Value
[void]$dnsConf.Rows.Add($item.valid, $item.host, $item.type, $item.data)
}
$dnsConf | Format-Table
, но это не дало никаких результатов. выход. Что я делаю не так?
Это вывод, который я получаю:
valid type host data
----- ---- ---- ----
False cname em9570.justchecking.xyz u13091771.wl022.sendgrid.net
valid type host data
----- ---- ---- ----
False cname s1._domainkey.justchecking.xyz s1.domainkey.u13091771.wl022.sendgrid.net
valid type host data
----- ---- ---- ----
False cname s2._domainkey.justchecking.xyz s2.domainkey.u13091771.wl022.sendgrid.net
valid type host data
----- ---- ---- ----
False cname url3844.justchecking.xyz sendgrid.net
valid type host data
----- ---- ---- ----
False cname 13091771.justchecking.xyz sendgrid.net
, и вот как я бы хотел, чтобы это было:
valid type host data
----- ---- ---- ----
False cname em9570.justchecking.xyz u13091771.wl022.sendgrid.net
False cname s1._domainkey.justchecking.xyz s1.domainkey.u13091771.wl022.sendgrid.net
False cname s2._domainkey.justchecking.xyz s2.domainkey.u13091771.wl022.sendgrid.net
False cname url3844.justchecking.xyz sendgrid.net
False cname 13091771.justchecking.xyz sendgrid.net