我想检查组织中所有邮箱的属性;如果值为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
答案 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"
像魅力一样工作。