社内アドレス帳のオンライン化により、管理者側で更新すればすべてのユーザーのアドレス帳も更新されるようになりました。大変便利ですよね。
Exchange Online で社内アドレス帳を作成しています。ただこのアドレス帳、かなりクセが強いです。管理しづらいです。すごくしずらいです。
アドレス帳のクセの強さ
GUIの管理画面がない
まさかと思ったのですが、アドレス帳のGUI管理画面がありません。何で管理するかといいますとPowerShellでゴリゴリコードを書きます。フィルター形式で表示させますので、ある条件に合った人たちを表示できるようPowerShellでフィルターを作成します。
使用するオブジェクトはAddressListです。こちらのサイトを参考に作成いたしました。
連絡先が表示されない
記事のタイトルにもなっていますがアドレス帳が更新されず連絡先が表示ないときがあります。こいつが非常に厄介で、PowerShellで記述したコードが間違っているのか、それともただ更新がされていないのか見分けるのが難しくなります。
アドレス帳更新コマンドが使えない
PowerShellでExchange Onlineのアドレス帳を更新する方法はありません。コマンドレット Update-AddressList や Update-GlobalAddressList は使用できないのです。完全に詰んでますやん。ではどうすればアドレス帳を更新できるのでしょうか?
アドレス帳更新方法
結論から述べますと、「表示されるはずの連絡先のパラメーターに変更を加える」という方法です。
ちょっと何言っているのかわからないと思います。具体的に述べるなら「表示されるはずの連絡先の項目を何でもいいので編集して保存し、その保存した編集箇所を削除する」とアドレス帳に表示されるようになります。
最初知ったとき、「なんだこの仕様は。クセ強すぎだろ」と思いました。逆に編集されないと表示されないならそれを逆手にとって運用することもできそうですね。
PowerShellでアドレス帳を更新する
上記で述べたとおり、アドレス帳を更新するコマンドレットは使用できません。ですが「連絡先の項目を編集し保存し編集箇所を削除する」コマンドを作成するならある意味”アドレス帳を更新する”コマンドレットと言えます。
PowerShellでExchange Online に接続する
Exchange Onlineに初めて接続する場合はモジュールのインストールが必要です。
Install-Module -Name ExchangeOnlineManagement
Exchange Online に接続します。
Conncet-ExchangeOnline -UserPrincipalName "papa@papamamameyou.com"
認証画面が表示されます。認証して下さい。
ちなみにExchange Onlineの接続解除方法は以下の通りです。
Disconnect-ExchangeOnline
PowerShellでアドレス(メールボックス)のパラメーターを更新する
変更するパラメーターですが、ここではCustomAttribute1を使用します。すべてのメールアドレスを一度に更新する方法です。まず、すべてのメールボックスを取得します。
$mbxs = Get-Mailbox -ResultSize Unlimited
取得したすべてのメールボックスのCustomAttribute1に値を入れます。値は何でもいいです。
$mbxs | Set-Mailbox -CustomAttribute1 "nandemoyoshi"
最後に、先ほど入れた値を削除します。
$mbxs | Set-Mailbox -CustomAttribute1 $null
これで連絡先がアドレス帳に表示されるようになります!
まとめ
ここの仕様だけなんでこんなにクセが強いんでしょうね?ほかのサービスは管理しやすいんですけどね。
コメント