0

このコードで PrimarySmtpAddress が表示されないのはなぜですか?

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | where{$_.TotalItemSize -ge 1000MB} | Sort-Object TotalItemSize -Descending | Select-Object PrimarySmtpAddress,TotalItemSize | Export-CSV mailboxsize.csv
4

1 に答える 1

1

Get-Mailbox の結果を Get-MailboxStatistics にパイプしたためです。

Get-Mailbox は、PrimarySmtpAddress プロパティを含む Microsoft.Exchange.Data.Directory.Management.Mailbox オブジェクトを返します。ただし、これらのオブジェクトを別のコマンドレット (この場合は Get-MailboxStatistics) にパイプすると、残りのパイプラインにはそのコマンドレットの結果が含まれます。そのため、Get-MailboxStatistics の実行後、パイプラインには代わりに Microsoft.Exchange.Data.Mapi.MailboxStatistics オブジェクトが含まれます。これらのオブジェクトには PrimarySmtpAddress プロパティがありません。オブジェクトをパイプラインに渡す前に、PrimarySmtpAddress を変数に格納する必要があります。このようなもの:

foreach ($mailbox in (Get-Mailbox -ResultSize Unlimited)) {
    $properties = @{
        PrimarySmtpAddress = $mailbox.PrimarySmtpAddress
        TotalItemSize = $mailbox | Get-MailboxStatistics | Select-Object -ExpandProperty TotalItemSize
    }
    New-Object PSObject -Property $properties
} | where{$_.TotalItemSize -ge 1000MB} | Sort-Object TotalItemSize -Descending 
于 2013-10-02T19:17:30.323 に答える