2.2.1 DN Discovery

DN Discovery uses the DRS Remote Protocol, as specified in [MS-DRSR]. The message syntax of the traffic the query generates is specified in [MS-DRSR] section 4.1.4 for the remote procedure call (RPC) method, DRSCrackNames. The Group Policy client makes the call to the Group Policy server with the dwInVersion set to 1 with a DRS_MSG_CRACKREQ pMsgIn structure parameter that passes in the specified account name in the format DS_NT4_ACCOUNT_NAME, as specified in [MS-DRSR] section 4.1.4.1.3. As specified in [MS-DRSR], the method returns a code of 0 if it is successful with a DRS_MSG_CRACKREPLY structure that contains a DS_NAME_RESULTW structure, which in turn contains an array of DS_NAME_RESULT_ITEMW structures, each of which corresponds to a requested name. Inside each DS_NAME_RESULT_ITEMW structure is a pName field that contains the fully qualified distinguished name in Unicode format for the corresponding requested account.

The detailed specification of the pMsgIn parameter is as follows.

 Field

 Value

CodePage

MUST be set to 0.

LocaleId

MUST be set to 0.

dwFlags

MUST be set to 0.

formatOffered

2

Note In this DRS_MSG_CRACKREQ structure sent by the client to the Group Policy server, one of the elements in the rpNames parameter MUST be of the form DS_NT4_ACCOUNT_NAME, as specified in [MS-DRSR] section 4.1.4.1.3. Any or all other formats specified in [MS-DRSR] section 4.1.4.1.3 can also be included. These other optional formats can be ignored by Group Policy: Core Protocol implementations.

formatDesired

1

Note According to the syntax specified in [MS-DRSR] section 4.1.4.1.3, if one of the elements in the rpNames parameter is a valid account name of the form DS_NT4_ACCOUNT_NAME, then the implementation of DRSCrackNames MUST return a fully qualified distinguished name in the corresponding DS_NAME_RESULT_ITEMW structure inside the DS_NAME_RESULTW structure that this method returns when it completes successfully. If, however, formatDesired is set to a value other than 1, the implementation MUST return DS_NAME_ERROR_NO_MAPPING in every DS_NAME_RESULT_ITEMW structure in rItems.<1>

cNames

MUST be greater than or equal to 1.

rpNames

At least one of the names in the rpNames array MUST contain the account name to be cracked, in the DS_NT4_ACCOUNT_NAME format.

Protocol details of this RPC method are specified in [MS-DRSR] section 4.1.4.

Note The DSR Remote Protocol, as specified in [MS-DRSR], itself supports caching the results of this message, so this message might not always appear in the protocol sequence for policy application.