检查邮箱属性并添加值(如果为null)

时间:2011-11-01 11:58:48

标签: powershell exchange-server

我想检查组织中所有邮箱的属性;如果值为null,那么我想添加一个属性(电子邮件地址)

get-mailbox -Organization test.me.net |
if (-ForwardingSmtpAddress -eq {})
{
Set-Mailbox -DeliverToMailboxAndForward $true -ForwardingSmtpAddress admin@test.me.net
}

我得到的错误信息是......

术语“if”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查拼写  如果包含名称,或者包含路径,请验证路径是否正确,然后重试。 在C:\ Scripts \ smtpaddress.ps1:2 char:3 + if<<<< (-ForwardingSmtpAddress -eq {})     + CategoryInfo:ObjectNotFound:(if:String)[],CommandNotFoundException     + FullyQualifiedErrorId:CommandNotFoundException

我有什么想法可以解决这个问题?

感谢阅读,Colm

3 个答案:

答案 0 :(得分:0)

如果你将它传递给For-Each,你可以在每个上面执行if:

get-mailbox | % {
if ($_.ForwardingSmtpAddress -eq {})
{
*Do something*
}
}

但是您应该只使用过滤器并将结果传递到set-mailbox命令(问号代表Where-Object):

get-mailbox | ? {$_.ForwardingSMTPAddress -eq {}} | Set-Mailbox......

答案 1 :(得分:0)

使用Filter参数获取ForwardingSmtpAddress属性中没有值的邮箱,将结果通过管道传递给Ste-Mailbox并设置DeliverToMailboxAndForward和ForwardingSmtpAddress参数。请记住,所有邮箱都会将电子邮件转发到管理邮箱。

Get-Mailbox -ResultSize Unlimited -OrganizationalUnit me.net/test -Filter {ForwardingSmtpAddress -eq $null} | Set-Mailbox -DeliverToMailboxAndForward $true -ForwardingSmtpAddress admin@test.me.net

答案 2 :(得分:0)

我编写了一个脚本,用于为没有应用的人启用保留策略。

Get-Mailbox -filter {retentionpolicy -eq $null} | Set-Mailbox -retentionpolicy "120DayRetention Policy"

像魅力一样工作。