将if条件添加到get-mailbox命令中

时间:2014-07-16 15:55:28

标签: powershell exchange-server-2010

我有一个PowerShell脚本来显示哪些邮箱没有应用Exchange保留策略。该脚本运行良好,但我无法弄清楚如何添加if条件,如果所有邮箱都应用了保留策略,则会将以下语句“应用于所有邮箱的主策略”添加到文本文件中。

Get-Mailbox -OrganizationalUnit "Users*" -ResultSize Unlimited -filter {RetentionPolicy -eq $null} |
  where {$_.RecipientTypeDetails -eq 'UserMailbox'} |
  select Alias > c:\retention.txt

1 个答案:

答案 0 :(得分:0)

在变量中收集Get-Mailbox的结果:

$mailboxes = Get-Mailbox -OrganizationalUnit "Users*" -ResultSize Unlimited `
               -Filter {RetentionPolicy -eq $null} |
               ? {$_.RecipientTypeDetails -eq 'UserMailbox'} | select Alias

然后检查结果是否为$null(未找到匹配项)并相应地创建输出:

$outfile = 'C:\retention.txt'
if ($mailboxes -ne $null) {
  $mailboxes > $outfile
} else {
  'Master Policy applied to all Mailboxes' > $outfile
}

如果要附加到文件,请将>替换为>>