New or Changed GPO List Processing

For each GPO in the New or Changed GPO list (as specified in [MS-GPOL] section, each preferences policy message is read from the Group Policy server, as specified in the following sequence. Preference types are processed in the ascending order of the CSE GUID assignment. For the purposes of protocol processing, the CSE GUID values can be treated as text values for the purpose of deriving the sort order. If any message cannot be read, the message sequence MUST be terminated; this means that no further preferences policy messages for the current CSE GUID can be exchanged during this instance of the policy application mode sequence.

The following message sequence MUST occur for each "<gpo path>" that the Group Policy: Core Protocol has determined contains preferences settings. This sequence attempts to retrieve a preferences policy message for a given "<gpo path>":

  1. SMB file open from client to server:

    For user policy mode, the "<gpo path>\User\Preferences\{preference type specific}" file MUST be used; for computer policy mode, the "<gpo path>\Machine\Preferences\{preference type specific}" MUST be used. The SMB file open MUST request read permission.

    If the open request returns a failure status, the Group Policy: Preferences Extension sequence MUST be terminated.

  2. SMB file read sequences:

    The client MUST then perform a series of SMB file reads until either the entire contents of the opened file are obtained or an error occurs.

    If an error occurs, the Group Policy: Preferences Extension sequence MUST be terminated.

  3. File close:

    The client MUST then issue an SMB file close operation.

After all messages have been retrieved, the client MUST update its preferences according to the following rules. Any errors in updating this database MAY be ignored.<24>

  1. For each instruction found in the file, create the preferences entry using the XML in the instruction.

  2. The instruction elements MUST be processed sequentially in the order in which they occur from the start of the preferences policy message.

    The necessity of this is demonstrated by an example in which an instruction requires that a database value be set to 1 and another instruction requires the value be set to 0. Depending on the order in which those instructions are performed, the final value is either 1 or 0.

Applications that query this database for behavior after the Group Policy: Preferences Extension invocation can then conform to the specified settings.