Office365日備忘録

職場で365日過ごして得た知識や情報の備忘録。主にOffice365、PowerShellなど。

AD連携で同期しているユーザーをGALに表示させなくする方法

AD連携で同期しているユーザーをGAL(Global Address List)に表示させなくする方法についてです。

ActiveDirectoryで同期している環境だと、
Office365の管理画面で、アカウントのGAL表示・非表示ができません。
PowerShellでHiddenFromAddressListsEnabledをいじろうとした人もいるんじゃないでしょうか。

下記のようなエラーが出たらこの記事が役に立つはずです。

エラー
メールボックス "アカウント" に対する操作は、現在のユーザーの書き込みスコープ以外であるため、失敗しました。
オブジェクト 'アカウント' に対して操作 'Set-Mailbox'、'HiddenFromAddressListsEnabled' を実行することはできません。
このオブジェクトは社内組織から同期されているため、この操作は社内組織のオブジェクトで実行する必要があります。


Office365上では無理なので、ActiveDirectory上で設定しましょう。

 
●GUIで設定
 ADでGALの設定をしたいアカウントのプロパティを開き、
 [属性エディター]タブを選択し、
 msExchHideFromAddressListsを"True"にすると
 GALに表示されません。
 "False"または、"未設定"だとGALに表示されます。

●コマンドで設定
Get-ADUser -Filter {Name -eq 'アカウント'} | Set-ADUser -replace @{msExchHideFromAddressLists=$True}

大量のアカウントをCSVで一気にやろうと思ったんですが、
わからなかったので、アカウント分同じコマンド書いて一気にコピペしたっていうダサいやり方しました。

Get-ADUser -Filter {Name -eq 'アカウント1'} | Set-ADUser -replace @{msExchHideFromAddressLists=$True}
Get-ADUser -Filter {Name -eq 'アカウント2'} | Set-ADUser -replace @{msExchHideFromAddressLists=$True}
Get-ADUser -Filter {Name -eq 'アカウント3'} | Set-ADUser -replace @{msExchHideFromAddressLists=$True}