I know I’m fundamentally misunderstanding something, so hoping someone can take pity on me and give me a gentle slap to the head and explain what I’ve got wrong using words of few syllables.
Machines are members of various automatic groups (let’s call them group1, group2, group3 etc). A machine will only be in 1 of these groups.
A multi-action fixlet is targeted against Group1 (tab Target->Dynamically target by property->Group1). The applicability tab is “Run this action group on computers for whom…the relevance clause from the original Fixlet or Task Message evaluates to true.”
Result: all machines (in groups2, 3, 4, etc) appear to be evaluating the full sub-contents of the action even though the targeting is aimed only at group1.
Is this correct behaviour? Why does the applicability relevance of the sub-action get evaluated even though machine fails the targeting relevance check?
My thought is that by narrowing to Group1 through targeting, the group targeting should evaluate to False on all the other machines who are not members of the group. They would then skip the rest of the multi-action fixlet. I’ve tested the group targeting through the debugger and that is functioning normally.
The top of the relevant FXF looks like this:
X-Action-Component-Type: Group Header
X-Relevant-When: exists true whose (if true then (member of group <group1_number> of site “CustomSite_My_Patches_site”) else false)
— and later:
Subject: MS19-JUN: Servicing Stack Update for Windows 10 Version 1809 - Windows 10 Version 1809 - KB4504369 (x64)
X-Action-Component-Type: Group SubAction
Note, this has become apparent due to the lovely MS Windows 10 Servicing Stack patches which seem to take a large amount of evaluation. Looking at the Profiler logs, I can see multiple actions all pointing back to this patch even though the machines are not members of the various groups so the effect of the patch is magnified throughout the evaluation cycle. I’m not looking for help with Servicing Stack patch – that’s a separate issue. Just trying to figure out where I’ve misunderstood how the evaluator is functioning.