Azure Active Directory 同期ツールの使用時に、1 つ以上のオブジェクトが同期しない

適用対象: Cloud Services (Web roles/Worker roles)Azure Active DirectoryMicrosoft Intune

問題


1 つ以上の Active Directory Domain Services (AD DS) オブジェクトまたは属性が、期待どおりに Microsoft Azure Active Directory (Azure AD) と同期しません。 Active Directory の同期を実行しても、オブジェクトが同期せず、次のいずれかの現象が発生します。
  • 属性に重複した値があることを示す、エラー メッセージが表示されます。
  • 1 つ以上の属性が文字セットや文字長などの書式設定要件に違反することを示す、エラー メッセージが表示されます。
  • エラー メッセージが表示されず、ディレクトリ同期が完了したように見えます。 ただし、いくつかのオブジェクトまたは属性が期待どおりに更新されていません。
表示される可能性があるエラー メッセージとしては、次のようなものがあります。
  • 同じプロキシ アドレスを持つ同期済みオブジェクトが Microsoft Online Services ディレクトリに既に存在します。
  • ユーザー ID が見つからないため、このオブジェクトを更新できません。
  • Microsoft Online Services でこのオブジェクトを更新できません。このオブジェクトに関連付けられている次の属性の値が、ローカル ディレクトリの別のオブジェクトに既に関連付けられていることが原因として考えられます。

原因


この問題は、次のいずれかの理由で発生します。
  • AD DS 属性で使用されているドメイン値が検証されていない。
  • 一意の値が必要な 1 つ以上のオブジェクト属性に関して、既存のユーザー アカウント内に重複した属性値 (proxyAddresses 属性や UserPrincipalName 属性など) がある。
  • 1 つ以上のオブジェクト属性が、属性値の文字と文字長を制限する書式設定要件に違反している。
  • 1 つ以上のオブジェクト属性が、ディレクトリ同期の除外ルールに一致する。

    次の表に、既定の同期スコープ ルールを示します。
    オブジェクトの種類 属性名 同期失敗時の属性の条件
    連絡先 DisplayName "MSOL" を含んでいる
      msExchHideFromAddressLists "True" に設定されている
    セキュリティが有効なグループ isCriticalSystemObject "True" に設定されている
    メールが有効なグループ
    (セキュリティ グループまたは配布リスト)
    proxyAddresses

    および

    mail
    "SMTP:" アドレス エントリがない

    および

    存在しない
    メールが有効な連絡先 proxyAddresses

    および

    mail
    "SMTP:" アドレス エントリがない

    および

    存在しない
    iNetOrgPerson sAMAccountName 存在しない
      isCriticalSystemObject 存在する
    User mailNickName "SystemMailbox" で始まる
      mailNickName "CAS_" で始まる

    および

    "{" を含む
      sAMAccountName "CAS_" で始まる

    および

    "{" を含む
      sAMAccountName "SUPPORT_388945a0" に等しい
      sAMAccountName "MSOL_AD_Sync" に等しい
      sAMAccountName 存在しない
      isCriticalSystemObject "True" に設定されている
  • ユーザー プリンシパル名 (UPN) は初期同期後に変更されたため、手動で更新する必要があります。
  • 同期済みユーザーの Exchange Online 簡易メール転送プロトコル (SMTP) アドレスは、オンプレミス Active Directory スキーマで適切に設定されていません。

解決方法


この問題を解決するには、状況に応じて、次のいずれかの方法を使用します。

解決方法 1: IdFix を実行して、重複、不足している属性および規則の違反を確認する

IdFix DirSync Error Remediation Tool」を使用して、Azure AD との同期を阻害しているオブジェクトとエラーを検出します。
  • IdFix の実行後に、エラー列に "Blank" と表示される場合は、次の Microsoft サポート技術情報の記事を参照してください。
    2857349 IdFix ツールの実行後に、1 つ以上のオブジェクトに対してエラー列に "Blank" と表示される
  • IdFix の実行後に、エラー列に "Format" と表示される場合は、次の Microsoft サポート技術情報の記事を参照してください。
    2857351 「IdFix ツールの実行後に、1 つ以上のオブジェクトに対してエラー列に "Blank" と表示される」
  • IdFix の実行後に、エラー列に "Character" と表示される場合は、次の Microsoft サポート技術情報の記事を参照してください。
    2857352 「IdFix ツールの実行後に、1 つ以上のオブジェクトに対してエラー列に "Character" と表示される」
  • IdFix の実行後に、エラー列に "Duplicate" と表示される場合は、次の Microsoft サポート技術情報の記事を参照してください。
    2857385 「IdFix ツールの実行後に、1 つ以上のオブジェクトに対してエラー列に "Duplicate" と表示される」

解決方法 2: ディレクトリ同期により Azure AD 内に作成されなかったオブジェクトに起因する属性の競合を特定する

管理ツールの使用によって作成されたユーザー オブジェクトで、しかもディレクトリ同期により Azure AD 内に作成されなかったオブジェクトに帰因する属性の競合を特定するには、次の手順を実行します。
  1. オンプレミス AD DS ユーザー アカウントの一意の属性を特定します。 Windows Support Tools がインストールされているコンピュータでこれを行うには、次の手順を実行します。
    1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に「desk.cpl」と入力し、[OK] をクリックします。
    2. [接続]、[接続] の順にクリックし、AD DS ドメイン コントローラーのコンピューター名を入力し、[OK] をクリックします。
    3. [接続] をクリックし、[バインド] をクリックして、[OK] をクリックします。
    4. [表示]、[ツリー ビュー] を順にクリックし、[ベース DN] ドロップダウン リストから AD DS ドメインを選択し、[OK] をクリックします。
    5. ナビゲーション ウィンドウで、正常に同期されていないオブジェクトを特定し、ダブルクリックします。 ウィンドウ右側の詳細ウィンドウに、すべてのオブジェクトの属性が表示されます。 次の例では、オブジェクト属性を示しています。
      Windows Support Tools のナビゲーション ウィンドウと詳細ウィンドウ
       

    6. userPrincipalName 属性の値、および複数値の proxyAddresses 属性の各 SMTP アドレスを記録します。 これらの値は後の手順で必要となります。
      属性名
      proxyAddressesproxyAddresses (3): x500:/o=Exchange/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=1ae75fca0d3a4303802cea9ca50fcd4f-7628376; smtp:7628376@service.contoso.com; SMTP:7628376@contoso.com;
      • 属性ラベルの横のかっこ内に表示されている数字は、複数値属性のプロキシ アドレス値の数を示します。
      • 個々のプロキシ アドレス値は、セミコロン (;) で示されています。
      • プライマリ SMTP プロキシ アドレス値は、大文字の "SMTP:" で示されています。
      userPrincipalName7628376@contoso.com 
      注: Ldp.exe は、Windows Server 2008 および Windows Server 2003 サポート ツールに含まれています。 Windows Server 2003 サポート ツールは、Windows Server 2003 インストール メディアに含まれています。 また、このサポート ツールは、次の Microsoft Web サイトからも取得できます。
  2. Windows PowerShell 用 Microsoft Azure Active Directory モジュールを使用して Azure AD に接続します。 詳細については、「AzureADHelp」を参照してください。

    コンソール ウィンドウは開いたままにします。 次の手順でも使用する必要があります。
  3. 重複する userPrincipalName 属性を確認します。

    手順 2 で開いたコンソール接続で、次のコマンドを記載されている順に入力し、各コマンドの後に Enter キーを押します。
    • $userUPN = "<search UPN>" 
      注: このコマンドでは、"<search UPN>" プレースホルダーは、手順 1f で記録した UserPrincipalName 属性を表します。
    • get-MSOLUser –UserPrincipalName $userUPN | where {$_.LastDirSyncTime -eq $null}  
    コンソール ウィンドウは開いたままにします。 次の手順でも再度使用します。
  4. 重複する proxyAddresses 属性を確認します。 手順 2 で開いたコンソール接続で、次のコマンドを記載されている順に入力し、各コマンドの後に Enter キーを押します。
    • $SessionExO = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic - AllowRedirection 
    • Import-PSSession $sessionExO -prefix:Cloud  
  5. 手順 1f で記録した個々のプロキシ アドレス エントリで、次のコマンドを記載されている順に入力し、各コマンドの後に Enter キーを押します。
    • $proxyAddress = "<search proxyAddress>"  
      注: このコマンドでは、"<search proxyAddress>" プレースホルダーは、手順 1f で記録した proxyAddresses 属性の値を表します。
    • get-cloudmailbox | where {[string] $str = ($_.EmailAddresses); $str.tolower().Contains($proxyAddress.tolower()) -eq $true} | foreach {get-MSOLUser -UserPrincipalName $_.MicrosoftOnlineServicesID | where {($_.LastDirSyncTime -eq $null)}}
手順 3 および 4 でコマンド実行後に返される項目は、ディレクトリ同期によって作成されなかったユーザー オブジェクト、および同期が正常に行われていないオブジェクトと競合する属性を持つユーザー オブジェクトを表します。

解決方法 3: AD DS 属性を更新して重複やルール違反、およびスコープ除外を取り除く

次の情報に基づいて、同期を妨げている特定の属性を識別します。
  • •管理電子メールメッセージ
  • Office 365 Deployment Readiness Tool が出力したレポート
  • 既定のディレクトリ同期スコープ ルールとカスタム ルール
特定の属性値を識別したら、Active Directory ユーザーとコンピューターのツールを使用して、その属性値を編集します。 これを行うには、次の手順を実行します。
  1. Active Directory ユーザーとコンピュータを開いて、AD DS ドメインのルート ノードを選択します。
  2. [表示] をクリックして、[拡張機能] オプションがオンになっていることを確認します。
  3. ナビゲーション ウィンドウで、ユーザー オブジェクトを特定し、右クリックして [プロパティ] をクリックします。
  4. [オブジェクト エディター] タブで、目的の属性を特定し、[編集] をクリックして、その属性値を希望の値に編集します。
  5. [OK] を 2 回クリックします。
あるいは、Active Directory サービス インターフェイス (ADSI) エディターを使用して、AD DS のオブジェクト属性を更新します。 ADSI エディターは、Windows Server Toolkit の一部として、ダウンロードおよびインストールできます。 ADSI エディターを使用して属性を編集するには、次の手順を実行します。

警告: この手順を実行するには、ADSI エディターが必要です。 ADSI エディターの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。 マイクロソフトは、ADSI エディターの誤用により発生した問題に関しては、一切責任を負わないものとします。 ADSI エディターは、自己の責任においてご使用ください。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に「Adsiedit.msc」と入力し、[OK] をクリックします。
  2. ナビゲーション ペインにある [ADSI エディター] を右クリックします。[接続] をクリックし、[OK] をクリックしてドメイン パーティションを読み込みます。
  3. ユーザー オブジェクトを特定し、右クリックして [プロパティ] をクリックします。
  4. [属性] リストで、目的の属性を特定し、[編集] をクリックして、その属性値を希望の値に編集します。
  5. [OK] を 2 回クリックして、ADSI エディターを終了します。

解決方法 4: 新しいグループを作成し、同期されていない組み込みグループに追加する

一部の組み込みグループ (Domain Users グループなど) が同期されていないという問題を解決するには、当該組み込みグループの適切なメンバーおよびアクセス許可を含む新しいグループを作成します。 次に、そのグループをまだ同期済みでない組み込みグループのメンバーとして追加します。 当該組み込みグループの代わりに新しいグループを使用して、メンバーを管理します。 これにより、ただ 1 つのグループのみを依然管理できます。

想定外の動作につながる可能性があるため、組み込みグループの属性を変更したり、ID の同期アプライアンスのスコープ ルールを変更して、重要なシステム オブジェクトの同期を許可したりしないようにしてください。 

解決方法 5: SMTP マッチングを使用して、オンプレミスのユーザーオブジェクトを既存のユーザー オブジェクトと同期する

これを行うには、次の Microsoft サポート技術情報の記事を参照してください。  
2641663 「How to use SMTP matching to match on-premises user accounts to Office 365 user accounts for directory synchronization (英語情報)」

解決方法 6: ユーザー アカウントの UPN を手動で更新する 

最初のディレクトリ同期後にライセンスが割り当てられたユーザー アカウントの UPN を更新するには、次の手順を実行します。
  1. Azure Active Directory V2 PowerShell モジュールをインストールします。 これを行うには、「https://www.powershellgallery.com/packages/AzureAD/2.0.0.71」を参照してください。
  2. Azure Active Directory V2 PowerShell プロンプトで次のコマンドレットを実行します。
    1. $cred = get-credential 
      注: 資格情報の入力を求められたら、管理者の資格情報を入力します。
    2. Connect-AzureAD
    3. Set-AzureADUser -ObjectId [CurrentUPN] -UserPrincipalName [NewUPN]

解決方法 7: オンプレミスの Active Directory 属性を使用してユーザーの SMTP アドレスを更新する

SMTP 属性が Exchange Online と想定どおりに同期されない場合、オンプレミスの Active Directory 属性の更新が必要となる場合があります。 オンプレミスの Active Directory 属性を更新して、Exchange Online で正しい電子メール アドレスが表示されるようにするには、「解決方法 2」を使用して、以下の表に記載されている属性を操作します。
オンプレミス Active Directory 属性名オンプレミス Active Directory 属性値の例Exchange Online 電子メールアドレスの例
proxyAddressesSMTP:user1@contoso.comPrimary SMTP: user1@contoso.com
Secondary SMTP: user1@contoso.onmicrosoft.com
proxyAddressessmtp:user1@contoso.comPrimary SMTP: user1@contoso.onmicrosoft.com Secondary SMTP: user1@contoso.com
proxyAddressesSMTP:user1@contoso.com
smtp:user1@sub.contoso.com
Primary SMTP: user1@contoso.com
Secondary SMTP: user1@sub.contoso.com
Secondary SMTP: user1@contoso.onmicrosoft.com
mailUser1@contoso.comPrimary SMTP: user1@contoso.com
Secondary SMTP: user1@contoso.onmicrosoft.com
UserPrincipalNameUser1@contoso.comPrimary SMTP: user1@contoso.com
Secondary SMTP: user1@contoso.onmicrosoft.com
既定のドメイン (user1@contoso.onmicrosoft.com など) に関連付けられている Microsoft Online Email Routing Address (MOERA) エントリは、ユーザー アカウントのエイリアスに基づいて認識される値です。 この特別な電子メール アドレスは、それぞれの Exchange Online 受信者と密接にリンクされています。いかなる受信者に対しても追加の MOERA アドレスを管理、削除、または作成できません。 ただし、MOERA アドレスは、オンプレミスの Active Directory ユーザー オブジェクトの属性値を使用して、プライマリ SMTP アドレスとして上書きすることができます。

注: proxyAddresses 属性内のデータの存在により、Exchange Online の電子メール アドレス群に対する mail 属性内のデータは完全にマスクされます。

注: proxyAddresses 属性、mail 属性、またはその両方の属性内のデータの存在により、Exchange Online 電子メール アドレス作成に関する UserPrincipalName データは完全にマスクされます。 UPN は、電子メール アドレスの管理に使用できます。 ただし、管理者は、proxyAddresses または mail 属性を作成することで、電子メール アドレスと UPN を別々に管理することができます。

同期済みユーザーに対して Exchange Online 電子メール アドレスを管理するために、これらのいずれかの属性を一貫して使用することを強くお勧めします。

詳細


この記事に記載されている Windows PowerShell コマンドには、Windows PowerShell 用の Azure Active Directory モジュールが必要です。 Windows PowerShell 用の Azure Active Directory モジュールの詳細については、Windows PowerShell の使用による Azure AD の管理に関する記事を参照してください。

属性によるディレクトリ同期のフィルタリングの詳細については、次の Microsoft TechNet Wiki 記事を参照してください。
さらにヘルプが必要ですか? Microsoft コミュニティ または Azure Active Directory Forums (英語情報) Web サイトを参照してください。