Open Yog-Sothoth1985 opened 5 years ago
The Tool does not Filter any Applications. Tthe problem is the ConfigMgr Agent API that does only list Applications for the User that makes the request. If you know a way how to get and trigger apllications for another user, I will implement it asap in the tool.. :-)
I know of this challenge already. It's a gapping whole for anyone targeting users with applications. When targeting with legacy packages and programs I use the old SCCM Client Center 2.0.4.0 tool for 2007.
The next logical question then is, where are per user application records listed?
(like they are here for computers:
get-wmiobject -query "SELECT * FROM CCM_Application" -namespace "ROOT\ccm\ClientSDK"
)
Required user applications are listen in CCM_Application if you query with the account that has the software assigned. Available user assignments are not on the client , SoftwareCenter does query the ApplicationCatalog (or now the ManagementPoint) to get the list in realtime.
OK, so how do we query the account that has the software assigned?
I realise there could be a difference in results depending on required and available applications, but that can be parked for now.
Getting any output is the first step, I don't know how to do it because I don't know where it is stored. If it is in CCM_Application (where in?), how would I query a specific account?
You can see the user assigned software under CCM_ApplicationCIAssignment in the users actualconfig in wmi.
But isn't the Policy hive only filled up if the application is required ? I do not have anything in CCM_ApplicationCIAssignment and all my assignments are user based available...
I have one required assignment and one available for this user. The one in the screenshot is the available one.
I'm literally playing with a required user application now. Can someone give me the quick steps to enter this CCM_ApplicationCIAssignment area (class is it)? I assume you are using wbemtest and connecting to it impersonating the targeted user account? If not, then how?
I'm using WMI Explorer 2 and my normal admin account.
Thanks @Xento . I have not tried that yet. But "check dis" :-)
I'm using CCCM 1.0.4.2. Connected to a VM, displaying Applications. 6 appeared in my list. Confirmation: Then I used wbemtest to connect to namespace "ROOT\ccm\ClientSDK" create a query as SELECT * FROM CCM_Application 7 applications are returned. I went through them all and the 1 extra one is my user assigned (required) application.
So if we query in CCCM with essentially the same commands (it's where I copied the namespace and query from) using wbemtest, why is CCCM chopping out the user assigned results?
EDIT: answer: because IsMachineTarget=FALSE on that line! :-D
@rzander do you think you can return all results regardless of whether IsMachineTarget=TRUE or FALSE ?
Further info... Using in PowerShell: get-wmiobject -query "SELECT * FROM CCM_Application" -namespace "ROOT\ccm\ClientSDK" Results returned include all apps including "IsMachineTarget : False" which is the user application. So now i'm definitely thinking something in CCCM is not calling this information out or filtering it before it appears on screen. Hope that helps too.
I can see them under applications. They only appear there, when the user who is the target is logged in once. Than they are visible even after a reboot.
ClientCenter does not filter anything. It's calling a SELECT * FROM CCM_Application… Just checked the code, there is no filter on "IsMachineTarget"...
Thanks @rzander . So why does ClientCenter show us less than PowerShell or wbemtest? I guess this is what we are now up to in this discussion. When I used either PowerShell or wbemtest is it using my account which has admin rights on the remote device, same as would happen with ClientCenter. Of course users have logged onto the remote device. If there was no user, we wouldn't be talking about this. :-) (maybe that's more so a note for @Xento wink)
Next point, how do we "see" all that is available? @Xento I note your post. It's missing some explicit wording and steps, still a little ambiguous for me, to clear this up so I can follow along and meaningfully test with you all: "I can see them under applications." I take you can see the user targeted applications under Software Distribution > Applications node ? If yes, great. How?: "They only appear there, when the user who is the target is logged in once." Noting the target user has to have logged in once to have the app pointed to them, yes that's always the case. However does the user need to be logged in at the time of using ClientCenter? I already had this scenario when posting (user in live session) above and I can't see the user apps. "Then they are visible even after a reboot." Does this mean whether or not the user is logged in that you can still see the user apps listed in ClientCenter after that first login as mentioned above including future OS restarts?
@Yog-Sothoth1985 have you tried any of this and how is it looking for you? i.e. are you following along? :-]
Thanks Team!
I'm connected to a PC now and a user assigned required application just successfully installed. The target user is logged on and received the app in this session. Can't see that app listed in ClientCenter Applications but can see it under Installed Software plus logs prove it is now present (just installed it).
When a user loggs on who has user assigned software than his policy is downloaded to this pc. After this the software was visible in client center. And after a reboot an no logged on user the software is still visible. I made a pullrequest to add some extra columns under application: https://github.com/rzander/sccmclictr/pull/89
There are two types of user assigned software: User-Required and User-Available User-Required is handled in the way @Xento mentioned User-Available is different as the Policy will not come to WMI unless the user triggers the APP in SoftwareCenter. I have hundreds of User-Available assignments and not one is visible in WMI.
@SCCMAdmin if client center is showing less applications than with powershell, then this may be a ClientCenter bug… If you can reproduce that, try to figure out if there is any difference on the apps… e.g. Apps without Icon will not show up etc...
Thanks @Xento and @rzander . We always use user required applications because most users won't even see what is prompting them to use Software Center to take action. As we can't trust users to take action, we use required pretty much 100%. FYI we don't use App Catalog. (Separately, we are still a computer centric targeted business and I'm trying to change that as user centric targeted deployments which arrived in SCCM 2012 have some good benefits, we just can't support them as easy, hence my interest in this topic).
I will attempt to create a scenario on a VM so that there is no real human involved because they usually switch off their PC and are offline at the worst time. I will use a test user account we deploy apps in development to, to the test delivery VMs which mimic the workstation SOE.
A question I can think of but I think I can guess the answer: does it matter if the PC is a primary device of the user with a required application? I don't think so as any PC where the user is logged in should get the required application and therefore the policy would be present to invoke the desired outcome.
Tell me more about the apps without an icon. I don't think I've ever used this icon feature before.
Team, here is the current test scenario I've got going over the weekend (more free time now as compared with at work):
Before: clicking on Software Distribution > Applications (6 apps appear)
get-wmiobject -query "SELECT * FROM CCM_Application" -namespace "ROOT\ccm\ClientSDK" ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_07793acc-e7cf-46b0-8423-7b7e738467c1",IsMachineTarget=TRUE,Revision="3"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_2003d5ec-6d43-4220-801b-ab885d0e62fd",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_4cc998a2-9856-4759-b747-fb8effc29a63",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_bfb58578-ca87-4822-9241-4b07c04d0210",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_e79a7086-4ab5-4528-9cca-c8d5968755dc",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_f8acb330-9a90-4b94-86eb-1be2079ab1ab",IsMachineTarget=TRUE,Revision="4"').AppDTs
Google Chrome was deployed targeting the user. SCCM worked out the device and installed Chrome on it.
After: clicking on Software Distribution > Applications (8 apps appear: Chrome + 1 Registry related dependency)
get-wmiobject -query "SELECT * FROM CCM_Application" -namespace "ROOT\ccm\ClientSDK" ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_07793acc-e7cf-46b0-8423-7b7e738467c1",IsMachineTarget=TRUE,Revision="3"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_2003d5ec-6d43-4220-801b-ab885d0e62fd",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_3672cb10-4312-4dfd-bdf9-fe00d18bed0b",IsMachineTarget=TRUE,Revision="4"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_4cc998a2-9856-4759-b747-fb8effc29a63",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_bfb58578-ca87-4822-9241-4b07c04d0210",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_e79a7086-4ab5-4528-9cca-c8d5968755dc",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_ef88f7c1-2cc5-41d6-9236-53dec3208552",IsMachineTarget=TRUE,Revision="2"').AppDTs ([wmi]'ROOT\ccm\clientsdk:CCM_Application.Id="ScopeId_8D61DA5C-2284-40BB-AAD1-5E8BE82A825C/Application_f8acb330-9a90-4b94-86eb-1be2079ab1ab",IsMachineTarget=TRUE,Revision="4"').AppDTs
Test result of this scenario PASS! (Install for system deployment type AND required installation targeting user)
I think I need to find an "Install for user" deployment type application and retest.
EDIT: yes even after remote OS restart, CCCM connects and can see all 8 apps as @Xento mentioned above.
Other potential scenarios:
Hi
If it is not possible to get that information from the client. Maybe client center can get the information from the site server. The site server stores the currently logged on user and the deployments on that user.
Kind regards
Any update on this? How can I force a check for user assigned software?
I lost my test environment where I was testing out some scenarios. Plus CCCM has upgraded version now as so much time has passed. I still can't solve this challenge. I use SCCM Client Center to look at user advertisements of packages (very legacy software for very legacy actions, but works great). Try and move to Applications where you can.
I lost my test environment where I was testing out some scenarios. Plus CCCM has upgraded version now as so much time has passed. I still can't solve this challenge. I use SCCM Client Center to look at user advertisements of packages (very legacy software for very legacy actions, but works great). Try and move to Applications where you can.
I am talking about applications, we don't use packages anymore! How can I force a check for user targetted applications from within CCCM?
Yep that too, I agree the visibility is not solved.
You can force a check by using App Mgmt:
Select your favourite one and watch the App%.logs.
Hi All,
we're currently looking at client center, which seems to be a fantastic extension to our new SCCM environment. As we are trying to do user based software assignment, we found out that, in client center, at Software Distribution / Applications, only device based software deployments are shown.
This seems to be related to the fact, that the query in "Applications" only targets for "IsMachineTarget", is this something, that can be changed or that we can change?
Thanks Ray