2つの別個のpowershell CMDLETからのみ取得できるデータを1つのデータセットに結合してエクスポートする必要が何度もありました。これは、PSObjectを作成してそこにデータを収集し、PSOBjectからデータを選択してエクスポートすることで実行できるはずです。
私がやろうとしていることの例。これはまだ機能しません。
$OU1 = 'Contoso.com/Contoso Service Accounts'
$MBXStats = get-mailbox -OrganizationalUnit $OU1 | Get-MailboxStatistics
$MBXDN = get-mailbox -OrganizationalUnit $OU1 | Select DistinguishedName
$bucket = @()
foreach ($MBX in $MBXStats){
$PropertyObj = New-Object psobject -Property @{
DisplayName = $MBXStats.DisplayName
ItemCount = $MBXStats.ItemCount
TotalItemSize = $MBXStats.TotalItemSize
LastLogonTime = $MBXStats.LastLogonTime
OriginatingServer = $MBXStats.OriginatingServer
DistinguishedName = $MBXProps.DistinguishedName
}
$bucket += $PropertyObj
}
$bucket | Out-GridView
$MBXDN = get-mailbox -OrganizationalUnit $OU1 | Select DistinguishedName
のデータ収集をスクリプトに統合し始める方法すらわかりません。
複数のオブジェクトのプロパティを出力ストリームに結合しようとしているようです。あなたの目標を達成する最良の方法は、パイプラインで計算されたプロパティを活用することだと思います。ただし、コード例では、MBXProps
は宣言されていない変数であり、プロセスが機能していない主な原因である可能性があります。おそらくあなたは私たちに示すコード(一般的には悪い考え)をチェリーで選んだので、MBX DNをデータセットと統合しようとしていると仮定します。
$MBXStats = get-mailbox -OrganizationalUnit $OU1 | Get-MailboxStatistics
$MBXDN = get-mailbox -OrganizationalUnit $OU1 | Select DistinguishedName
$MBXStats | Select *,@{N="DistinguishedName";E="$($MBXDN.DistinguishedName)"}
要約すると、あなたがしたいことは、出力に 計算されたプロパティ を追加することです。私はすべてを評価することによって少し怠惰です*
プロパティと選択した少数ではありませんが、ニーズに適応させることができます。注:Powershellの真の力を活用するために、常にオブジェクトを出力するようにしてください。