Powershell命令用于隐藏用户的交换地址列表

时间:2011-11-01 23:36:28

标签: powershell exchange-server exchange-server-2007

我正在尝试编写powershell脚本,将用户从交换列表中隐藏起来。

我能够找到以下命令: Set-Mailbox -Identity [user id here] -HiddenFromAddressListsEnabled $true

它没有给我一个错误信息,当我两次运行命令时,我收到以下警告:

  

警告:命令已成功完成,但未修改“[user id here]”的设置。

这可能意味着该命令确实有效。

但是当我转到 Exchange管理控制台并打开用户个人资料时,“hide user from exchange address lists”复选框已关闭。

可能是什么原因?

6 个答案:

答案 0 :(得分:6)

我将此作为日常计划任务用于隐藏AD中从全局地址列表中禁用的用户

$mailboxes = get-user | where {$_.UserAccountControl -like '*AccountDisabled*' -and $_.RecipientType -eq 'UserMailbox' } | get-mailbox  | where {$_.HiddenFromAddressListsEnabled -eq $false}

foreach ($mailbox in $mailboxes) { Set-Mailbox -HiddenFromAddressListsEnabled $true -Identity $mailbox }

答案 1 :(得分:1)

您可以使用以下脚本,只需将DOMAIN替换为域名即可。执行时,它会提示您输入用户登录,然后从地址列表中隐藏该用户的帐户。

$name=Read-Host "Enter login name of user to hide"
Set-Mailbox -Identity DOMAIN\$name -HiddenFromAddressListsEnabled $true

布赖恩。

答案 2 :(得分:0)

您必须将IdentityDN之类的有效domain\user值之一传递给Set-Mailbox cmdlet。目前你没有传递任何东西。

答案 3 :(得分:0)

我收到了完全相同的错误,但我首先运行$false然后再$true解决了这个错误。

答案 4 :(得分:0)

“警告:命令已成功完成,但未修改'[此处的用户ID]'设置。”

此警告表示设置已设置为您想要的设置。所以它没有改变那个对象的任何东西。

答案 5 :(得分:0)

对于Office 365用户或混合交换,请转到使用Internet Explorer或Edge,然后转到交换管理中心,选择混合,设置,选择用于混合或在线交换的右键。

要连接:

  

Connect-EXOPSSession

要查看相关邮箱:

  

获取邮箱-filter {ExchangeUserAccountControl -eq'AccountDisabled'   -and RecipientType -eq'UserMailbox'-and RecipientTypeDetails -ne'SharedMailbox'}

基于上述0KB大小的想法进行阻止:

  

获取邮箱-filter {ExchangeUserAccountControl -eq'AccountDisabled'   -and RecipientTypeDetails -ne'SharedMailbox'-and RecipientType -eq'UserMailbox'} |设置邮箱-MaxReceiveSize 0KB   -HiddenFromAddressListsEnabled $ true