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