2017-09-01 4 views
1

まず、私はPowerShellを手伝ったことがありますが、単純なコマンド以外には何も流暢ではありません。他のパイプの後のオブジェクトを使用するPowerShell

私が達成しようとしているのは、このコマンドにいくつかのパイプがある最初のコマンドレットのオブジェクトを使用することです。

これはコマンドです、私はこれをView Mailbox Sizes and Mailbox Quotas Using Windows PowerShellから得ました、それは動作します。私はこれに返されるメールボックスの設定クォータのを追加したいのです

Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | where {$_.StorageLimitStatus -notlike "BelowLimit*"} | Select DisplayName,StorageLimitStatus,@{name="TotalItemSize (MB)";expression={[math]::Round((($_.TotalItemSize.Value.ToString()).Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}},@{name="TotalDeletedItemSize (MB)";expression={[math]::Round((($_.TotalDeletedItemSize.Value.ToString()).Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}},ItemCount,DeletedItemCount | Sort "TotalItemSize (MB)" -Descending | Export-CSV "C:\My Documents\Exceeded Quotas.csv" -NoTypeInformation 

、オブジェクトがProhibitSendQuota、ProhibitReceiveQuota、およびIssueWarningQuota命名されています。これらのオブジェクトを選択パイプに追加すると、その名前は出力されますが、値は出力されません。私は、コマンドには、Get-Mailboxコマンドレットからオブジェクトの

Get-Mailbox -Identity domain\user | Select Identity,ProhibitSentQuota | Get-MailboxStatistics | Select * 

Noneを使用しない場合は、よりオブジェクトのみを示しているコマンド

Get-Mailbox | Select ProhibitSendQuota,ProhibitReceiveQuota,IssueWarningQuota 

を使用していた場合、私は値を取得することができていますGet-MailboxStatisticsが存在します。

私の質問は、他のすべてのパイプとコマンドレットが追加された後、Get-Mailboxコマンドレットに存在するオブジェクトを使用するにはどうすればいいですか?

答えて

1

変数を使用します。 PowerShellは他のどのようなプログラミング言語でもあります。あなたがする必要がないので、すべてのもののためにワンライナーを使用することに抱かれてはいけません。また、CmdLetの最後にSelect *を実行することは、それを持たないことと同じことですが、CmdLetの戻り値の型をPSCustomObjectに変換するだけです。

$MailBox = Get-Mailbox -Identity "domain\user" 
$MailBox | Select-Object Identity, ProhibitSentQuota | Get-MailboxStatistics 

あなたは本当にPipelineVariableを使用し、パイプラインのコンテキスト内で変数を維持を主張している場合。

Get-MailBox -Identity "domain\user" -PipelineVariable MailBox #Now mailbox is available for use further in the pipeline. 

Further information about PipelineVariable

+0

しかし私は、これは私が$メールボックスを使用いずれにしても、利用可能であることが表示されませんPipelineVariableを試してみました。私は値が出てくる単一のアイデンティティにフィルタリングするときに見つけましたが、-Identityを削除してすべてのメールボックスを返すとすぐにProhibitSendQuota(今のところこの列のみに注目しています)は空です。 – Lima

関連する問題