皆さんこんにちは。国井です。
オンプレミスの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のオブジェクト情報をそれぞれ確認できるので、どこまでの処理が正常に完了しているか、追っていくにはとても役立ちます。
いかがでしょうか?その他にもコマンドレットはあるのですが、追って追加していこうと思います。