[英]Can't get Out-GridView to display two objects
我有兩個對象$ A和$ B,每個對象都包含CSV導入。 在這兩個對象中,存在共享相同屬性名稱( DisplayName
和LoginName
)的兩列。 首先,我想將它們組合在一起,並在腳本中的某些時候將它們通過管道傳遞到Out-GridView
。
不幸的是,我似乎找不到辦法。
$A = Import-csv -Path "C:\Users\[...]" | Where-Object {$_.LoginName -like "*[...]*"} | Sort DisplayName
$B = Import-csv -Path "C:\Users\[...]" | Where-Object {$_.LoginName -like "*[...]*"} | Sort DisplayName
$displayNames = ($A.DisplayName) + ($B.DisplayName)
$loginNames = ($A.UserPrincipalName) + ($B.LoginName)
現在,此時我不能同時使用$displayNames
和$loginNames
並將它們同時通過管道傳輸到Out-GridView
。
我正在考慮合並兩個對象,但是執行$displayNames + $loginNames
導致一個對象不維護這兩個屬性。
然后我想我可以像這樣創建一個pscustomobject:
$combined = [pscustomobject] @{
DisplayNames = $displayNames
LoginNames = $loginNames
}
但是,如果將其通過管道傳輸到Out-GridView
,它將向我顯示兩列DisplayNames
和LoginNames
但是所有值都將在數組內,因此輸出將僅顯示一行。
然后,我嘗試將兩個數組都轉換為字符串,如下所示:
$combined = [pscustomobject] @{
DisplayNames = ($displayNames | Out-String)
LoginNames = ($loginNames | Out-String)
}
這次,我快到了。 實際上, Out-GridView
在兩列中顯示了展開的值。 不幸的是,無法再用鼠標選擇它們。
看起來是這樣的:
我應該怎么做?
而不是使用兩個數組以及將它們排序並試圖使其保持同步的所有廢話,再加上將它們聯接回以進行輸出的工作,而是使用psobject,它可以將第二個文件的結果附加到第一個文件。 像這樣:
$results = Import-csv -Path "C:\Users\[...]" | Where-Object {$_.LoginName -like "*[...]*"} | % {
New-Object psobject -Property @{
DisplayName = $_.DisplayName
LoginName = $_.UserPrincipalName
}
}
$results += Import-csv -Path "C:\Users\[...]" | Where-Object {$_.LoginName -like "*[...]*"} | % {
New-Object psobject -Property @{
DisplayName = $_.DisplayName
LoginName = $_.LoginName
}
}
$results | Out-GridView
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.