Powershell command to hide user from exchange address lists

133,468

Solution 1

I use this as a daily scheduled task to hide users disabled in AD from the Global Address List

$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 }

Solution 2

You can use the following script, just replace DOMAIN with the name of your domain. When executed it will prompt you for a userlogin then hide that user's account from the address lists.

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

Brian.

Solution 3

I was getting the exact same error, however I solved it by running $false first and then $true.

Share:
133,468
Vova Zaycev
Author by

Vova Zaycev

Updated on August 07, 2022

Comments

  • Vova Zaycev
    Vova Zaycev almost 2 years

    I'm trying to write powershell script which hides user from exchange lists.

    I was able to find following command: Set-Mailbox -Identity [user id here] -HiddenFromAddressListsEnabled $true

    And it doesn't give me an error message, and when I run the command twice, I get following warning:

    WARNING: The command completed successfully but no settings of '[user id here]' have been modified.

    Which probably means that the command did actually work.

    but when I go to Exchange Management Console, and open user profile, "hide user from exchange address lists" check box is off.

    What could be the reason?