Remote PowerShell コマンドの既定の出力内容

2018/08/01 Update
2018 年 5 月ごろより順次 Get-Mailbox コマンドの既定の出力が Name, Alias, Database, ProhibitSendQuota, ExternalDirectoryObjectId に変更されています。

Exchange Online の PowerShell に接続して Get-Mailbox コマンドを実行すると、既定で Name / Alias / ServerName / ProhibitSendQuota の 4 つが出力されているはずです。
Get-Mailbox コマンドの結果を fl すると分かるように本当はもっとたくさんの属性を持っていますが、コマンドだけを実行して何を表示するのかを指定しなかった時に既定で何を出力するのかは、PowerShell モジュールの設定で決められています。

どのように設定されているのかを確認するためには、まずはいつも通り New-PSSession コマンドで PSSession を作成します。

$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication  Basic -AllowRedirection

いつもならこの後に Import-PSSession コマンドですが、今回は PSSession を PowerShell モジュールとしてファイルに書き出します。
そのためには Export-PSSession コマンドを使用します。
OutputModule には出力先のフォルダー名を指定します。

Export-PSSession -Session $Session -OutputModule c:\temp\ExoPsSession -AllowClobber -Force

そうすると .format.ps1xml と .psd1 と .psm1 の 3 つのファイルが出力されます。このうちの .format.ps1xml がコマンドの既定の出力内容を定義するファイルです。
特殊な拡張子ですが中身は XML のテキスト ファイルなのでメモ帳などで開けます。

ファイルを開いたら「Microsoft.Exchange.Data.Directory.Management.Mailbox」で検索してみてください。
これは Get-Mailbox コマンドなどの結果のデータ型で、以下のように既定で Name / Alias / ServerName / ProhibitSendQuota の 4 つが出力対象になっていることが分かります。

試しに ProhibitSendQuota の代わりに AdminDisplayVersion を表示するようにしてみましょう。
TableColumnHeader と TableColumnItem に 2 回登場する ProhibitSendQuota を AdminDisplayVersion に置き換えて保存します。

置き換えた内容でモジュールをインポートします。
先ほどの OutputModule に指定したパスを Import-Module コマンドに指定して実行します。

Import-Module C:\temp\ExoPsSession

これで Get-Mailbox を実行すると ProhibitSendQuota の代わりに AdminDisplayVersion が出力されます。