It would be cool if Application Manager could have a button that could create a collection in ConfigMgr that would automatically create the query syntax that would query the devices to see if the applications in the deployment are installed on the machine. I think this would be a good way to isolate just those devices that have the specified application(s) installed on the set computers that could then be used in the deployment to patch only those machines that currently have those applications installed. This would mean that you wouldn't have to deploy to all machines, but only those that are relevant to the deployment.
Product | Application Manager |
We don't have to actually create the collection for them, but maybe just generate the WQL statement so that they could create themselves, and just have it as a button with a popup that they can copy and paste the syntax, making it easier to accomplish it.
We could use a flexible example and then they can tweak it themselves and test it prior to any deployments. For example:
select distinct SMS_R_System.Name, SMS_R_System.ClientVersion from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_ADD_REMOVE_PROGRAMS_64 on SMS_G_System_ADD_REMOVE_PROGRAMS_64.ResourceId = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "$Publisher $ApplicationName%" or SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName like "$Publisher $ApplicationName%"
And then keep adding " and SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "$Publisher $ApplicationName%" or SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName like "$Publisher $ApplicationName%" " for each application that they add to the deployment.
Or we could do this example:
select distinct SMS_R_System.Name, SMS_R_System.ClientVersion from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_ADD_REMOVE_PROGRAMS_64 on SMS_G_System_ADD_REMOVE_PROGRAMS_64.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Chrome%" and SMS_G_System_ADD_REMOVE_PROGRAMS.Publisher like "Google%" or SMS_G_System_ADD_REMOVE_PROGRAMS_64.DisplayName like "%Chrome%" and SMS_G_System_ADD_REMOVE_PROGRAMS_64.Publisher like "Google%"
Just some ideas.
We could help to create new dynamic collections so that there is no need to go to ConfigMgr and define the dynamic collection query, but we are not able to make the query to match all devices where application is installed because the naming of the applications in Add/Remove Programs data is not standardized.