人事異動のたびにメールアドレスや部署名、表示順の見直しが必要になるMicrosoft 365のExchange Online。特に、階層型アドレス帳(HAB)を導入している環境では、その更新作業が手間になることもあります。
本記事では、PowerShellを使ってExchange OnlineのHABを一括修正する方法について、実務で使える手順とコマンドを詳しく解説します。日々の運用業務を効率化したいIT担当者の方に向けて、ポイントを押さえた内容でお届けします。
階層型アドレス帳(HAB)とは?
階層型アドレス帳(Hierarchical Address Book)は、Exchange Onlineのアドレス帳を組織の階層構造に基づいて表示できる機能です。これにより、ユーザーは「営業部 > 第一営業課 > 田中 太郎」のような階層で相手を探すことが可能になります。
HABを使用すると、OutlookやWebメールのアドレス帳で組織構造を視覚的に把握できるため、連絡先を探しやすくなるメリットがあります。
ただし、人事異動や組織変更の際には、以下の情報の更新が必要です:
- 部署名(表示名)
- 組織内での階層順(
PhoneticDisplayName
やSeniorityIndex
) - 配置部署(
Manager
属性や所属グループ)
人事異動時に必要な修正内容
人事異動が発生すると、Exchange Onlineに登録された以下の情報を更新する必要があります。
- 部署の表示名(Display Name)の変更
- メンバーの配置先OU/グループの変更
- HABの階層順の見直し(SeniorityIndex)
- 上位部署との関連付け(Manager属性)
- 必要に応じてアドレス帳ポリシー(Address Book Policy: ABP)の変更
これらの修正はGUIでは非常に手間がかかるため、PowerShellでの一括対応がおすすめです。
Exchange Online PowerShell への接続方法
まずはPowerShellを使用してExchange Onlineへ接続しましょう。
# モジュールが未インストールの場合(初回のみ)
Install-Module -Name ExchangeOnlineManagement
# Exchange Online へ接続
Connect-ExchangeOnline -UserPrincipalName 管理者アカウント@ドメイン
接続後、ユーザーやグループの属性情報を確認・変更できる状態になります。
一括修正の準備:CSVファイルの作成
一括修正を行う前に、変更対象ユーザーの情報をまとめたCSVファイルを準備します。以下はCSVのサンプルです。
UserPrincipalName,DisplayName,Department,SeniorityIndex,Manager
t.tanaka@example.com,田中 太郎,第一営業課,10,manager1@example.com
y.suzuki@example.com,鈴木 優子,第二営業課,15,manager2@example.com
UserPrincipalName
:対象ユーザーのログインIDDisplayName
:新しい表示名Department
:所属部署名(表示目的)SeniorityIndex
:アドレス帳での並び順Manager
:直属の上司のメールアドレス
PowerShellで一括修正を実行するスクリプト
以下のスクリプトを用いて、一括で修正を実行できます。
# CSVファイルの読み込み
$users = Import-Csv -Path "C:\scripts\HAB_update.csv"
foreach ($user in $users) {
Set-Mailbox $user.UserPrincipalName `
-DisplayName $user.DisplayName `
-CustomAttribute1 $user.Department `
-SeniorityIndex $user.SeniorityIndex
# Manager を設定
Set-User $user.UserPrincipalName -Manager $user.Manager
Write-Host "更新完了: $($user.UserPrincipalName)"
}
※ CustomAttribute1
を部署名の表示用に利用する場合もあります。組織のポリシーに合わせて使用してください。
修正内容の確認方法
PowerShellで修正が正しく反映されたかを確認するには、以下のコマンドを使います。
Get-Mailbox t.tanaka@example.com | Format-List DisplayName,CustomAttribute1,SeniorityIndex
Get-User t.tanaka@example.com | Select-Object Name,Manager
また、Outlookクライアント側のアドレス帳に反映されるまでには、一定の時間がかかる点に注意しましょう(最大24時間程度)。
注意点と運用のコツ
- 反映タイミング:HABは即時反映されないため、ユーザーからの問合せがある前に周知しておくとスムーズです。
- 構成ミスのリスク回避:事前に対象ユーザーの情報をエクスポートし、変更前後で差分を比較するのがおすすめです。
- 定期運用:四半期や半期ごとにHAB更新用のテンプレートを準備しておくと効率的です。
まとめ
人事異動時の階層型アドレス帳(HAB)の更新作業は、Exchange OnlineのPowerShellを使えば一括で効率的に対応できます。
CSVを活用したスクリプトによって、部署変更・表示順・上司設定をミスなく行えるため、手動でのGUI操作よりはるかに正確かつ迅速です。
定期的なメンテナンスや運用設計をあらかじめ行っておくことで、異動シーズンの業務負担を大幅に軽減できます。ぜひ今回ご紹介した方法を活用して、Exchange管理をさらにスマートに進めてください。