Azure AD Connectのコマンドレットを利用する

皆さんこんにちは。国井です。

オンプレミスのActive DirectoryとAzure ADの間でオブジェクトの同期を行うAzure AD Connectですが、これに関してはとてもよくご質問をいただきます。そして、そのご質問の多くはPowerShellでできますよ!ってのが多いんですよね。

ですので、今日はよく(?)使う、Azure AD Connectのコマンドレットをいくつか紹介します。

■同期を今すぐ実行
これは普段から利用している方であれば、お馴染みですよね。
Deltaは差分の意味なので、DeltaをInitialと書き換えることでフル同期を行ってくれます。

Start-ADSyncSyncCycle -PolicyType Delta

■定期的な同期を行わない
たまにご質問いただくのですが、オンプレミスのADはもう変更しないので、一度同期したら、もう同期したくないのですが、どうしたらいいですか?っていう場合。このときは、同期設定を無効にしましょう。ディレクトリ同期を非アクティブ化するという手もあるのですが、再び同期をしたくなったら面倒なので、無効にしておくのが吉でしょう。

Set-ADSyncScheduler -SyncCycleEnabled $False

■同期間隔を変更
30分という同期間隔を変更したい場合。このときはSet-ADSyncSchedulerコマンドレットで変更します。ちなみに下のコマンドは3時間に変更しています。ただし、30分よりは短くできないので、ご注意を。

Set-ADSyncScheduler -CustomizedSyncCycleInterval 03:00:00

■パラメータの確認
Azure AD Connectのパラメータを確認した時はこれ。

Get-ADSyncScheduler

実行結果はこんな感じです。

結果画面に見えているパラメータはSet-AD SyncSchedulerコマンドレットから変更できます。例えば、Synchronization Service Managerに保存されるログの消去間隔(PurgeRunHistoryInterval)を変更したければ、

Set-AD SyncScheduler -PurgeRunHistoryInterval 1.00:00:00

のように設定します。

ちなみに、以前のバージョンのコマンドレットにはステージングモードの有効/無効設定があったのですが、私が使っているバージョン(1.1.819.0)では該当するコマンドレットがないんですよね。。

■Azure AD Connectの自動アップデートを行わない
簡易設定(だったっけ?)や、10万未満のオブジェクト数だったり、いくつかの条件に合致する場合、Azure AD Connectは自動的に新しいバージョンを見つけてアップデートします。しかもそのタイミングはWindows Update関係なく行われます。そのため、勝手にアップデートしてほしくない場合は、このコマンドレットを実行します。

Get-ADSyncAutoUpdate -AutoUpgradeState Disabled

なお、アップデートの結果はイベントビューアのアプリケーションログに記録されます。

■Azure AD Connectのトラブルシューティングツール
Azure AD Connectがらみのトラブルが発生した場合、こちらのコマンドレットから原因を調査できます。

Invoke-ADSyncDiagnostics

上記のPowerShellコマンドレットを実行すると、こんな画面が出てきます。

そこから3を選択すると、現状の設定をHTMLファイル形式で吐き出してくれます。

また、1を選択した場合であれば、特定のオブジェクトに関する状態情報を吐き出してくれます。この場合、ADのオブジェクト情報、Azure AD Connect内(メタバース)のオブジェクト情報、Azure ADのオブジェクト情報をそれぞれ確認できるので、どこまでの処理が正常に完了しているか、追っていくにはとても役立ちます。

いかがでしょうか?その他にもコマンドレットはあるのですが、追って追加していこうと思います。