Powershell 正在检查邮箱属性并在为null时添加值

Powershell 正在检查邮箱属性并在为null时添加值,powershell,exchange-server,Powershell,Exchange Server,我要检查组织中所有邮箱的属性;如果该值为空,那么我想添加一个属性电子邮件地址 get-mailbox -Organization test.me.net | if (-ForwardingSmtpAddress -eq {}) { Set-Mailbox -DeliverToMailboxAndForward $true -ForwardingSmtpAddress admin@test.me.net } 我收到的错误消息是 术语“if”不能识别为cmdlet、函数、脚本文件或可操作程序的名称

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

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您可以在每个if上执行if,如果您将其输送到a For each,如下所示:

get-mailbox | % {
if ($_.ForwardingSmtpAddress -eq {})
{
*Do something*
}
}
但您可能只需要使用过滤器并将结果导入一个set mailbox命令,问号表示Where Object:

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

使用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

我编写了一个脚本,为那些没有申请的人启用保留策略

获取邮箱-filter{retentionpolicy-eq$null}设置邮箱-retentionpolicy 120day保留策略


工作起来很有魅力。

多亏了谢伊,只是一个用a代替a的打字错误;太棒了!!: