我正在尝试编写powershell脚本,将用户从交换列表中隐藏起来。
我能够找到以下命令:
Set-Mailbox -Identity [user id here] -HiddenFromAddressListsEnabled $true
它没有给我一个错误信息,当我两次运行命令时,我收到以下警告:
警告:命令已成功完成,但未修改“[user id here]”的设置。
这可能意味着该命令确实有效。
但是当我转到 Exchange管理控制台并打开用户个人资料时,“hide user from exchange address lists
”复选框已关闭。
可能是什么原因?
答案 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)
您必须将Identity
,DN
之类的有效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