I've been looking into this issue some more and am seeing some really odd 
things with respect to the CCM_Application class.

In PowerShell on a client, if I run the following command:

$apps = gwmi -Namespace "ROOT\ccm\ClientSDK" -Query "select * from 
CCM_Application WHERE 
Id='ScopeId_4940E253-6969-4D79-96A6-35CE4114901D/Application_a0da521f-ffd6-475e-9131-8651640747e1'"
I get two entries for the specified application. This includes the latest 
revision (29 in this case) as well as the version that Software Center is 
trying to install (15). However, if I try to get all instances of 
CCM_Application:

$allapps = gwmi -Namespace "ROOT\ccm\ClientSDK" -Query "select * from 
CCM_Application"
It only finds one entry for 
ScopeId_4940E253-6969-4D79-96A6-35CE4114901D/Application_a0da521f-ffd6-475e-9131-8651640747e1,
 pertaining to the most recent version.

So, it looks to me like Software Center populates itself be running a query 
that reads CCM_Application without a condition. When you actually go to run it, 
it gets the information it needs to run the "Install" method by running a 
limited query and passes on the first result it gets, which on these records is 
out of date. Bug?

I wrote a short script to find all CCM Applications with multiple instances:

$appIDs = gwmi -Namespace "ROOT\ccm\ClientSDK" -Query "select * from 
CCM_Application"
foreach($ai in $appIDs)
{
    $appsById = gwmi -Namespace "ROOT\ccm\ClientSDK" -Query "select * from 
CCM_Application WHERE Id='$($ai.Id)'"
    if($appsById.length -gt 1)
    {
        echo "Duplicate Application: $($ai.Name)"
        $maxrev = 0
        foreach($abi in $appsById)
        {
            if($abi.Revision -gt $maxrev)
            {
                $maxrev = $abi.Revision
            }
        }
        foreach($abi in $appsById)
        {
            if($abi.Revision -eq $maxrev)
            {
                echo "$maxrev is newest: Keeping"
            }
            else
            {
                echo "$($abi.Revision) is out of date. Delete"
            }
        }

    }
}

Does anyone know how I can delete the bad revisions from the client? I've tried 
adding $abi | Remove-WmiObject but it says the provider does not support this 
operation.

Jesse Schauer
Windows Server Administrator II
University of Idaho ITS

From: [email protected] [mailto:[email protected]] On 
Behalf Of Schauer, Jesse ([email protected])
Sent: Monday, June 09, 2014 9:40 AM
To: '[email protected]'
Subject: [mssms] Change Application -> Software Center cannot retrieve the 
information that you requested

I've been running into some issues with updating ConfigMgr Applications. 
Basically, if I create an application and deploy it (as available), I can see 
it and run it on clients. If I change the application after deployment, 
however, the clients seem to get confused and refuse to run it, saying 
"Software Center cannot retrieve the information you requested". I've seen this 
when I've updated the content on a deployment type, or changed other deployment 
type settings (adding a dependency, etc).

I grepped all of the client logs for the application I'm currently working on 
and saw a few weird things. The new revision of my application is revision 4. I 
can see in CIStateStore that revision 4 is detected and the policy is 
downloaded.

When I try to run the application in Software Center, DCMAgent is showing that 
it is trying to install version 3, but is unable to find the policy for that 
version

<![LOG[Request to enforce application CamTrax 
2013(ScopeId_4940E253-6969-4D79-96A6-35CE4114901D/Application_988e81be-e60a-4241-aaac-a8dd587155d6.3)
 immediately for target: machine with action(s): Evaluation, Install, 
Update]LOG]!><time="11:30:45.175+420" date="06-06-2014" component="DCMAgent" 
context="" type="1" thread="7360" file="dcmagent.cpp:1601">
<![LOG[CDCMAgent::EnforceApplicationForTarget - Application CI 
ScopeId_4940E253-6969-4D79-96A6-35CE4114901D/Application_988e81be-e60a-4241-aaac-a8dd587155d6.3
 must have at least one Application Policy CI]LOG]!><time="11:30:45.454+420" 
date="06-06-2014" component="DCMAgent" context="" type="3" thread="7360" 
file="dcmagent.cpp:1651">

Thus far, I've been unable to fix one of these applications. I've tried 
removing and recreating deployments, clearing and refetching policy via 
PolicySpy, both of which have not made a difference. Uninstalling/reinstalling 
the client does work. Deleting the application from ConfigMgr and recreating it 
also works, though the old application still exists in Software Center.

Has anyone seen this before? Or have any idea how to fix it.

Jesse Schauer
Windows Server Administrator II
University of Idaho ITS





Reply via email to