Ever wonder why a machine doesn't show up in a collection? You added it, either manually, <Start Plug for great product> or via an awesome tool like the Recast Right Click Tools "Add Computer to Collection(s)" <End Plug> and when you show the members of the collection, it just never shows up? I have, and it nearly drove me crazy, or perhaps a deeper level of crazy than I already am. So, why does it do that anyway? That's what I'm intending to explain in this post.
What this Post is NOT. Collection Evaluation Troubleshooting, there are already plenty of great posts out there that give guidance in that area.
There are several things that affect, or is it effect... whichever.. the resulting collection membership, or the evaluated results.
Collection Queries: The process of dynamically adding machines to a collection based on criteria or properties of computers. Common queries are based on:
For some pre-created Community Queries, check out Ander's Post
Example of a Query for 1709 Computers.
Direct Membership Rules: Simple 1 to 1 mapping of Computers. This is when you manually add Computers into a Collection, either individually or via Batch, like I blogged about recently.
In this example, you can see the Direct Members that have been added to this Collection. If your collection ONLY has direct members, there is no point in checking the boxes for updating the collection.
Include Collections: When you "Nest" Collections. Collection A includes Collection B & C. This is when things become a bit more complex, but still straight forward. Why? Say you already have several collections based on Queries, Marketing & Sales or Windows 1607 and Windows 1709. Lets say you want to deploy a Task Sequence to Both Marketing & Sales, why make two deployments? Why Create a new Collection with 2 Queries, you already have those machines in collections, create a new Collection that Includes both and deploy to that. Example below of Include Collection, contains two other collections. 1607 (4 devices) & 1709 (7 Devices) = Total of 11 Devices in New Collection. 10 VMs and 1 Dell, this will be useful to know in the next example.
Exclude Collection: When you Nest a Collection of machines you want Excluded from your collection results. This is where it can be really tricky and make you scratch your head a bit. In this example, we'll build off our last, we left the collection with 11 devices, but I want to exclude Dell's from the upgrade, because they are not compatible with 1809 (just hypothetical). You can see in this example, I have 1 Dell machine, now that it's been excluded, the total of machines goes down to 10. Simple right?
Now, it's not just that simple, this example ONLY works because the Dell machine is actually running 1709, which means it was in the 1709 Collection that was included. So while it's still in the 1709 Collection which is included, the exclude rule overrides the include rule and the Dell Machine is removed from the 1809 Deployment Collection.
Exclude Collections are great for keeping yourself safe... say you have a group of high risk machines, you create a "High Risk" Collection, and exclude it from all of your normal deployments, just make sure you're still dealing with those high risk machines. While Exclude collections are great to keep you safe, what's even better, using a Limiting Collection which we'll be taking about next.
Alright, so we've covered the ways you add machines and exclude them from collections, but one other way to limit the machines that can be in the collection is by a limiting collection.
Limiting Collection: The collection by which you limit another collection. Say you have a collection of all Machines for a line of business "Marketing", and they are the only group that you know has approved upgrading to 1809 from 1607 and 1709. At this point, you'd have one confusing query.. All Machines that are 1607 and 1709, but not Dell, and only in Marketing... argh. However, with Includes, Excludes, and Limiting Collections, it makes it very simple.
For the example, lets take a look at our Marketing Collection:
So now that we know the Pool we want to pull from, we can Limit our Deployment Collection to only Machines in Marketing.
So the final tally? 6 Machines will receive the deployment. Break down of the Deployment Collection:
So while there are 10 Machines in the Marketing Collection, 4 of them do not fit within the criteria and have been excluded (the HP, and the Machines not on 1607 or 1709).
Now lets say, you get a request to add someone to get the 1809 deployment, so you think "Hey, I'll just quick add a computer to the collection via direct membership so the user gets the deployment on their computer." So you go ahead and add the 1709 computer to the collection, but they never get the deployment... you look at the Collection to see the members, and you don't see the machine you added, but you check the direct membership and you see it there, what is going on?? aaaahhhhhh!
Then you finally remember, LIMITING COLLECTION! "PC08" isn't in Marketing, the computer will not be evaluated to be in the collection due to limiting the collection membership to only machines in the Marketing Collection!
So now I hope you understand how collection memberships work, how Direct Membership on a Collection doesn't always equal what the evaluated membership is. There are a lot of moving parts to Collections, of which any can drastically change the collection membership.