コマンドを組み合わせたいGet-user
およびget-casmailbox
これにより、最初の出力から「Company」を取得し、後者の「ActiveSyncStatus」を単一の出力に取得できます。
また、明示的なループを記述して目的の結果を生成できることも理解していますが、$ _を使用するとよりコンパクトな構文が可能になると思います。コマンド(または同様のもの)
$ _を使用して2番目のコマンドをフィードするGet-CasMailboxを示すコマンドを誰かに見せてもらえますか。プロパティ、そして最後にコマンド間の属性のいくつかの組み合わせのselect-object?
私が尋ねる理由は、私はしばしばこの方法でコマンドを結合する必要があり、forループは明示的であり、ヘルプデスクがコピーして貼り付けるのが難しいためです。むしろ、貼り付けることができる単一のコマンドラインが必要です。
Write-Host
を使用するたびに、JeffreySnoverは子犬を殺します。それともドン・ジョーンズですか?たぶん、彼らはある種の儀式で一緒に子犬を殺します。それは変だろう。
[PS] C:\>"User1", "User2" | % { [PSObject]@{Name=$_; Company=$(Get-User $_).Company; ActiveSyncEnabled=$(Get-CASMailbox $_).ActiveSyncEnabled} }
Name Value
---- -----
Name User1
Company Contoso
ActiveSyncEnabled True
Name User2
Company Woodgrove
ActiveSyncEnabled True
編集:またはこれ:
[PS] C:\>Foreach($_ In Get-Mailbox) { [PSObject]@{Name=$_; Company=$(Get-User $_).Company; ActiveSyncEnabled=$(Get-CASMailbox $_).ActiveSyncEnabled} }
Exchangeコマンドレットは、パイプライン入力の処理方法に注意を払う必要があります。
出力オブジェクトがぎっしり詰まっていないように見せたい場合は、最後のFormat-Table
の直前の最後に}
を追加できます...ただし、Format-*
はほぼ同じくらい悪いことに注意してくださいWrite-Host
のように、出力のオブジェクト性を壊す機能があるため、出力を最後に実行するようにフォーマットするだけです。出力をフォーマットしてから、別のコマンドレットにパイプしてみてください。
PowerShell
をExchange
と一緒に使用したことはありません。これらのコマンドレットとその出力に慣れていないため、この1つのライナーはあなたが探しているものに近いと思います。
Get-User | foreach { $a = $_.property1; $b = Get-CASMailbox -SomeProperty $_.property2; Write-Host "$a | $b" }