6 Replies Latest reply on Mar 28, 2018 11:46 AM by BPurchell

    Node Processing Order

    BPurchell Rookie

      I'm hoping you guys can help me because it is driving me nuts. I'm trying to create a single configuration and execute certain nodes based on a condition. The idea of the design is I would apply some global settings to all users, and then based on conditions I might override those settings with something specific to them. This is what I was attempting to design and based from my understanding:


      1 - Set some global variables (to be used in the conditions)

      2 - Empty node, just used to contain the sub nodes

      3 - Execute the child nodes for the global settings (note: Machine is an empty "Group Node", again just to help me with the hierarchy of processing)

      4 - Execute the child nodes of the Machine group node

      5 - Execute the nodes under the "Standard" node - these settings might override something set in Global specific to "Standard" machines

      6 - Execute the child nodes under the Entity node group (again, just used for the hierarchy) and could potential override the global or machine settings to customize the experience at different geographical locations in my organization.



      The nodes that have a "- #" contain a custom Powershell script that appends to a debug log just so I can see the order in which the nodes are firing. In my log I noticed that they weren't following the Hierarchy. For example, Step 6 logged before Step 2, etc.


      There is got to be a way to process the policy config like this... or am I trying to stick a square into a round hole? Is there some log file I can look at to see what nodes were applied and when (like a gpresult)?


      Any feedback is appreciated, I've been banging my head on this for days and can't figure out a way to validate the order in which things are processing other than what I tried by logging to a file.



        • 1. Re: Node Processing Order
          Landon Winburn ITSMMVPGroup

          The only thing that stands out to me is your global nodes. If the machines node is to be a dependent of Global1 and Global2 then this needs to be a node group to ensure both nodes have completed before firing the Machines node. I'd also suggest moving your variables to pre-session.


          • 2. Re: Node Processing Order
            BPurchell Rookie

            Thanks for the feedback! I don't think I would be able to move my global variables to Pre-Session because they are being set with a PowerShell script that is can only be run in Pre-Desktop.


            I think I might have figured it out, this is what I'm working with now in my design. In the triggers, I'm primarily only using group nodes, within the group nodes I'm using reusable nodes. In the reusable node I'm leveraging any conditions that I might need and any additional nodes nested under it. This way I'm able to ensure all the nodes in a group execute before the next node group so I can define global settings applied to everyone, and then further customize the experience based on my variables that are used as conditions in the reusable nodes. This is what it looks like, I was able to confirm the functionality was working as I intended in the very small config I have - haven't tested a larger more complex config:


              Trigger node groups:


            Reusable nodes within the node groups (this example came from "Machine Settings")


            This is what the _Desktop Created Machine: Kiosk reusable node looks like, it has a condition based on the machine type to execute:


            Does this sound like a solid config design? I believe I still get the benefit of multi-threaded policy processing because the reusable nodes will fire at the same time within the group node.


            I did have another question, is there a logs or any kind of way to troubleshooting what nodes have been applied to the client machine and at what time/order they processed? I'm trying to document to my on the ground Tech's how they can troubleshoot any policy issues.


            Thanks again for the feedback!

            • 3. Re: Node Processing Order
              Landon Winburn ITSMMVPGroup

              So node success/failure isn't an option in the "Auditing" part of the config so you'd have to use debug logs and EMMon to do that.


              Its actually pretty simple. In EMMon load the log and unselect everything but the nodes under the user section. This will list the nodes on the output and their timings.

              • 4. Re: Node Processing Order
                BPurchell Rookie

                Oh cool, wasn't even aware of the Environment Manager tools, you'll have to forgive my ignorance I have no formal training and just getting my feet wet. Thanks for letting me pick your brain, do you think my design with the group nodes is a good approach? I really want to make sure the foundation of our config design is solid before we get in the weeds.


                Thanks again!

                • 5. Re: Node Processing Order
                  Landon Winburn ITSMMVPGroup

                  Makes sense to me. I'd roll with it.

                  • 6. Re: Node Processing Order
                    BPurchell Rookie

                    Awesome, thanks again!