Office 365ディレクトリ同期を今すぐ実行

2月より登壇させていただいているITコンシューマライゼーション ハンズオンツアー
Office365のシングルサインオンをご紹介させていただいておりまして、
その中でディレクトリ同期ツールをインストールします。

ディレクトリ同期ツールをインストールすると結構な確率で
ディレクトリ同期を今すぐ実行したいときにはどうしたらよいですか?」という
ご質問をお受けします。
黙っていても、3時間に一回は同期してくれるのですが、テスト環境などで
今すぐ実行したいというケースも多いようです。

そこで今回はOffice365のディレクトリ同期を今すぐ実行する方法について、
私の思いつくものをいくつかご紹介したいと思います。

■オフィシャルな方法 その1 – [ディレクトリ同期の構成]アイコンを使う

ディレクトリ同期ツールをインストールすると、[ディレクトリ同期の構成]アイコンが
デスクトップに作成されます。ディレクトリ同期の構成を実行すると、ウィザードが表示され、
Office365管理者の資格情報やActive Directory管理者の資格情報を入力することで、
以下の画面が表示されます。

dirsync0407

[ディレクトリを今すぐ同期する]にチェックをつけて完了すれば、ディレクトリ同期が始まります。
ただし、この方法は毎回資格情報を入力しなければならないので面倒です。

■オフィシャルな方法 その2 – Start-OnlineCoexistenceSyncコマンドレットを実行する

ディレクトリ同期ツールをインストールすると、以下のファイルが作成されます。
%programfiles%Microsoft Online Directory SyncDirSyncConfigShell.psc1
DirSyncConfigShell.psc1を実行すると、PowerShellの画面が表示されるので、
Start-OnlineCoexistenceSyncコマンドレットを実行すると、今すぐ同期が始まります。

Office 365のオフィシャルサイトでも紹介されていますし、これが最も現実的な方法のようです。

■アンオフィシャルな方法 その3 – PowerShellからWMIを利用して実行する

これはアンオフィシャルな方法です。
ディレクトリ同期ツールは、内部的にFIM (Forefront Identity Manager) が動作しています。
そのため、FIMに対して直接同期を実行するよう働きかけることで、今すぐ同期ができます。

実行方法としては、
PowerShellを起動し、以下のコマンドレットを実行します。

$tws = Get-WmiObject -Namespace rootMicrosoftIdentityIntegrationServer `
-Class MIIS_ManagementAgent -Filter “Name=’TargetWebService'”
$ad = Get-WmiObject -Namespace rootMicrosoftIdentityIntegrationServer `
-Class MIIS_ManagementAgent -Filter “Name=’SourceAD'”

$ad.Execute(“Delta Import Delta Sync”)
$tws.Execute(“Delta Comfirming Import”)
$tws.Execute(“Export”)

メモ帳にこれらをすべて書き写して、ps1という拡張子で保存すればディレクトリ同期を
今すぐ実行するPowerShellスクリプトの出来上がりです。
あと、「Set-ExecutionPolicy RemoteSigned」を最初に実行してPowerShellスクリプトが
実行できる環境にしておくこともお忘れなく。