I have a number of machines in MDT that belong to multiple roles. Nothing fancy there. However, in role A (which applies to most machines) the MachineObjectOU is specified, and in role B (which only applies to certain machines) a different MachineObjectOU is specified because those machines need to appear somewhere different in the directory. How do I guarantee that MDT will read settings from role B? Is it the order of roles in the list in the machine properties window?


The choice is based on the order they are listed in in your Roles tab. The first one it loads is the one that will be retained at the end of the list.

  • So you're saying that B cannot overwrite settings applied by A? – cmv Aug 6 '11 at 4:23

Based on my experience and research, Role settings are applied on a first assignment wins basis, and the order of the roles in the MDT UI has no bearing on the order in which evaluation occurs. Instead, RoleSettings (the MSSQL view that returns these settings) is queried with the following syntax:

SELECT * FROM RoleSettings WHERE ROLE IN ('List','of','Role','Names')

The results are returned and evaluated by database ID; so, if you created your roles in the following order:


settings specified in Names would, regardless of the order you specified, take precedence over those assigned in List, of, or Role. This seriously hampers the ability to use roles to modularize your deployment settings, unless you take especial care to pre-plan all of your roles. Even then, though, you're locked in to only ever using them in that order. As far as I can tell, there is no way to modify the ordering of results returned from RoleSettings without digging into the scripts that actually perform the query and modifying them.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.