Unable to with install Lync Server, due to "domain not ready error." or Prepare Active Directory shows "Partial"

Symptoms

=========

 

Get-CsAdDomain generates "The domain is not ready" after successful domain prep. Also Prepare Active Directory on Deployment Wizard shows "Partial" after a successful domain prep.

 

Cause

======

 

Check the following Trace statement, when you run OCS Logger "Powershell" and "Deployment" Components selected at Level->All, Flags->All

 

4361 TL_INFO(TF_COMPONENT) [1]0FC8.123C::02/22/2011-20:28:40.091.000022ce (Deployment,DeploymentContext.CreateCustomizedSession:deploymentenvironment.cs(411))(000000000283D742)Using default network credentials for AD session.
 
4392 TL_WARN(TF_STACKTRACE) [0]0FC8.123C::02/22/2011-20:28:40.107.000022ed (Deployment,DirectoryCommon.FindAces:directorycommon.cs(341))Unable to find the requested ace: contoso\RTCUniversalUserReadOnlyGroup; Allow; ReadProperty; ContainerInherit; Descendents; bf967aba-0de6-11d0-a285-00aa003049e2; e2d6986b-2c7f-4cda-9851-d5b5f3fb6706

Concentrate on the "Applies To: " for the ACL "RTCUserSearchPropertySet" for the User "RTCUniversalUserReadOnlyGroup". The ACL "RTCUserSearchPropertySet" for "contoso\RTCUniversalUserReadOnlyGroup" is applied to "This object and all descendant objects" is the cause of this issue.

 

Resolution

=========

 

Concentrate on the "Applies To: " for the ACL "RTCUserSearchPropertySet" for the User "RTCUniversalUserReadOnlyGroup". Changing the ACL "RTCUserSearchPropertySet" for "contoso\RTCUniversalUserReadOnlyGroup" to apply to ONLY  "Descendant User Objects" instead of  "This object and all descendant objects" will resolve this issue.

 

OK so adding, how did I actually find the problem :-), the interesting part

========================================================

 

Requested the output of the following from the customer: dsacls "CN=RTCUniversalUserReadOnlyGroup,CN=Users,DC=contoso,DC=com" , compared this with

the dsacls from a working environment: dsacls "CN=RTCUniversalUserReadOnlyGroup,CN=Users,DC=contoso,DC=com"

 

The delta showed up:

 

contoso.com

nwtraders.com

 

414 Permissions inherited to subobjects are:

415 Inherited to all subobjects

 

510 Allow  contoso\RTCUniversalUserReadOnlyGroup

511                                       SPECIAL ACCESS for RTCUserSearchPropertySet

512                                       READ PROPERTY

 

Missing here

 

 

 

 

163 Allow contoso\RTCUniversalUserReadOnlyGroup

164                                       SPECIAL ACCESS for RTCUserSearchPropertySet

165                                       READ PROPERTY

 

Missing here

804 Inherited to user

 

Missing here

226 Inherited to user

 

246 Allow NWTRADERS\RTCUniversalUserReadOnlyGroup      SPECIAL ACCESS for RTCUserSearchPropertySet

247                                                    READ PROPERTY

 

 

 After this it was just about using "dsa.msc" to locate the ACL "RTCUserSearchPropertySet" for "contoso\RTCUniversalUserReadOnlyGroup", and making sure the delta is handled.