|
1 | 1 | --- |
2 | | -title: Delta AD Group Discovery doesn't detect membership changes in nested OUs |
3 | | -description: Troubleshoot an issue when AD Delta Discovery fails to detect group membership changes in child organizational units. |
| 2 | +title: Delta AD Group Discovery Doesn't Detect Membership Changes in Groups in Nested OUs |
| 3 | +description: Troubleshoot an issue in which AD Delta Discovery fails to detect group membership changes in child organizational units. |
4 | 4 | ms.date: 01/12/2025 |
5 | 5 | ms.reviewer: kaushika, jarrettr, brianhun, payur |
6 | 6 | ms.custom: sap:Boundary Groups, Discovery and Collections\Active Directory Discovery (all types) |
7 | 7 | appliesto: |
8 | 8 | - <a href=https://learn.microsoft.com/lifecycle/products/microsoft-configuration-manager target=_blank>Supported versions of Configuration Manager</a> |
9 | 9 | --- |
10 | | -# Delta AD Group Discovery doesn't detect membership changes in nested OUs |
11 | | - |
12 | | -_Applies to:_ Configuration Manager (current branch) |
| 10 | +# Delta AD Group Discovery doesn't detect membership changes in groups in nested OUs |
13 | 11 |
|
14 | 12 | ## Summary |
15 | 13 |
|
16 | | -Active Directory Group Discovery in Configuration Manager uses different algorithms for delta and full discovery cycles. During delta discovery, Configuration Manager builds a tree structure of organizational units (OUs) and excludes child OUs from processing. This behavior can cause delta discovery to miss group membership changes when groups are located in nested OUs within your discovery scopes. |
| 14 | +Active Directory Group Discovery (AD Group Discovery) in Configuration Manager uses different algorithms for delta and full discovery cycles. During the delta discovery process, Configuration Manager doesn't process child organizational units (OUs). This behavior can cause delta discovery to miss group membership changes when groups belong to nested OUs within your discovery scopes. |
17 | 15 |
|
18 | | -This article helps you identify when this issue affects your environment and provides workarounds to ensure that group membership changes are detected correctly. |
| 16 | +This article helps you identify this issue in your environment, and provides workarounds to ensure that Configuration Manager detects all group membership changes. |
19 | 17 |
|
20 | 18 | ## Symptoms |
21 | 19 |
|
22 | | -You set up an Active Directory Group Discovery to target specific AD Groups as discovery scopes as per [Configure Active Directory Group Discovery](/intune/configmgr/core/servers/deploy/configure/configure-discovery-methods#bkmk_config-adgd). |
| 20 | +You set up discovery scopes for Active Directory Group Discovery to target specific Active Directory Domain Services (AD DS) groups as described in [Configure Active Directory Group Discovery](/intune/configmgr/core/servers/deploy/configure/configure-discovery-methods#bkmk_config-adgd). The initial full discovery cycle correctly discovers groups in all the in-scope OUs. |
| 21 | + |
| 22 | +Later, after the delta discovery cycle runs, you notice that changes in particular group memberships are missed. However, if you force a full discovery cycle to run, the issue resolves as the full discovery cycle discovers changes in all groups in the in-scope OUs. |
23 | 23 |
|
24 | | -You notice that AD Group Delta Discovery fails to catch the changes in certain group memberships. However, forcing a Full Discovery cycle resolves the issue. |
| 24 | +In particular, the issue occurs when you define scopes that resemble the following example: |
25 | 25 |
|
26 | | -In particular, the issue occurs when the following conditions are met: |
| 26 | +- **Scope A:** Group A, in organizational unit OU-A |
| 27 | +- **Scope B:** Group B, in organizational unit OU-B |
| 28 | +- OU-B is a child OU of OU-A |
27 | 29 |
|
28 | | -- Scope A: Group A located in organizational unit OU-A |
29 | | -- Scope B: Group B located in organizational unit OU-B |
30 | | -- OU-B is a child OU located under OU-A |
| 30 | +In this example, the delta cycle of AD Group Discovery doesn't detect changes in Group B's membership. |
31 | 31 |
|
32 | | -When all these conditions are met, changes in Group B's membership aren't detected by AD Group Delta Discovery. |
| 32 | +If you want to review log entries to confirm this behavior in your system, see [More information](#more-information). |
33 | 33 |
|
34 | 34 | ## Cause |
35 | 35 |
|
36 | | -During AD Group Delta Discovery, Configuration Manager detects the organizational units (OUs) of the target groups in discovery scopes and builds a tree structure of OUs. It then ignores any child OUs of the target groups' OUs. |
| 36 | +During the delta cycle of AD Group Discovery, Configuration Manager detects the organizational units (OUs) of the target groups in the discovery scopes and then builds a tree structure of OUs. It ignores any child OUs of the target groups' OUs. |
37 | 37 |
|
38 | | -AD Group Full Discovery follows a different algorithm that doesn't ignore child OUs, so it works as expected. |
| 38 | +During the full discovery cycle of AD Group Discovery, Configuration Manager uses a different algorithm that doesn't ignore child OUs. Therefore, the discovery process works as expected. |
39 | 39 |
|
40 | | -## Resolution |
| 40 | +## Workaround |
41 | 41 |
|
42 | | -Microsoft is aware of this issue. However, as of January 2026, there's no ETA or commitment to fix it. To work around this issue, you can: |
| 42 | +Microsoft is aware of this issue. To work around this issue, use any of the following methods: |
43 | 43 |
|
44 | | -- Move Group B to another OU that isn't a child of OU-A (or any other OU in the discovery scopes). |
45 | | -- Include OU-B in the discovery scopes as an Organizational Unit. |
46 | | -- Fall back to Full AD Group Discovery. |
| 44 | +- Move all groups to top-level OUs. For the example that's used earlier, that means moving Group B to another OU that isn't a child of OU-A (or any other OU in the discovery scopes). |
| 45 | +- Reconfigure the discovery scopes to include the child OUs as target OUs. For the example that's used earlier, that means including OU-B in the discovery scopes as an Organizational Unit. |
| 46 | +- Use only the full discovery process for AD Group Discovery. |
47 | 47 |
|
48 | | -## Identify the issue |
| 48 | +## More information |
49 | 49 |
|
50 | | -Here are the steps to check logs and identify the issue: |
| 50 | +To see what this behavior looks like in the ADSGDis.log file, follow these steps: |
51 | 51 |
|
52 | | -1. Create the list of scopes by checking the beginning of any discovery cycle in ADSGDis.log. Verify the LDAP paths. In particular, validate that the affected group is in a child OU of another one in the list. |
| 52 | +1. Open ADSGDis.log in a text editor, and then review the log entries to identify any discovery cycle. |
| 53 | +1. For that discovery cycle, create a list of the discovery scopes that appear in the log entries. |
| 54 | +1. Verify the LDAP path of each scope. In particular, validate that the affected group is in a child OU of another one in the list. The example that this article uses, the scopes and paths resemble the following example: |
53 | 55 |
|
54 | 56 | ```output |
55 | 57 | !!!!Valid Search Scope Name: Unaffected Group Search Path: LDAP://CN=GROUP-A,OU=OU-A,DC=FOURTHCOFFEE,DC=COM IsValidPath: TRUE |
56 | 58 | !!!!Valid Search Scope Name: Affected Group Search Path: LDAP://CN=GROUP-B,OU=OU-B,OU=OU-A,DC=FOURTHCOFFEE,DC=COM IsValidPath: TRUE |
57 | 59 | ``` |
58 | 60 |
|
59 | | -1. Find any Delta Discovery cycle in the log. Look for the following line and filter by the thread writing it. |
| 61 | +1. Review the log entries to identify any delta discovery cycle. Look for an entry that resembles the following example, and then use the name of the thread to filter log entries. |
60 | 62 |
|
61 | 63 | ```output |
62 | 64 | INFO: CADSource::incrementalSync returning 0x00000000~ |
63 | 65 | ``` |
64 | 66 |
|
65 | | -1. First, Delta Discovery goes through the list of scopes: |
| 67 | +1. Review the log entries for the delta discovery cycle. The entries should resemble the following examples: |
66 | 68 |
|
67 | | - ```output |
68 | | - INFO: -------- Starting to process search scope (Unaffected Group) -------- |
69 | | - INFO: -------- Finished to process search scope (Unaffected Group) -------- |
70 | | - INFO: -------- Starting to process search scope (Affected Group) -------- |
71 | | - INFO: -------- Finished to process search scope (Affected Group) -------- |
72 | | - ``` |
| 69 | + 1. Delta discovery processes the list of scopes. |
73 | 70 |
|
74 | | -1. The Delta Discovery proceeds to "immediate search base" then: |
| 71 | + ```output |
| 72 | + INFO: -------- Starting to process search scope (Unaffected Group) -------- |
| 73 | + INFO: -------- Finished to process search scope (Unaffected Group) -------- |
| 74 | + INFO: -------- Starting to process search scope (Affected Group) -------- |
| 75 | + INFO: -------- Finished to process search scope (Affected Group) -------- |
| 76 | + ``` |
75 | 77 |
|
76 | | - ```output |
77 | | - INFO: -------- Starting to process search scope (Immediate search base) -------- |
78 | | - INFO: Processing search path: 'LDAP://OU=OU-A,DC=FOURTHCOFFEE,DC=COM'.~ |
79 | | - ``` |
| 78 | + 1. Delta discovery processes the scopes themselves, starting at `immediate search base`. |
80 | 79 |
|
81 | | -1. If you see this error message for OU-B, you have successfully identified the issue: |
| 80 | + ```output |
| 81 | + INFO: -------- Starting to process search scope (Immediate search base) -------- |
| 82 | + INFO: Processing search path: 'LDAP://OU=OU-A,DC=FOURTHCOFFEE,DC=COM'.~ |
| 83 | + ``` |
82 | 84 |
|
83 | | - ```output |
84 | | - INFO: Found invalid Search Path: LDAP://OU=OU-B,OU=OU-A,DC=FOURTHCOFFEE,DC=COM. Probably it's sub search path of other search path and will be covered by them. |
85 | | - INFO: -------- Finished to process search scope (Immediate search base) -------- |
86 | | - ``` |
| 85 | + 1. Delta discovery identifies the search path for the child ou (OU-B in the example) as an invalid path, and skips it to process the next path. |
| 86 | +
|
| 87 | + ```output |
| 88 | + INFO: Found invalid Search Path: LDAP://OU=OU-B,OU=OU-A,DC=FOURTHCOFFEE,DC=COM. Probably it's sub search path of other search path and will be covered by them. |
| 89 | + INFO: -------- Finished to process search scope (Immediate search base) -------- |
| 90 | + ``` |
0 commit comments