Thursday, April 4, 2019

Missing Software in Software Center

In ConfigMgr 1710 Microsoft added support for high definition Icons in Software Center for up to 512x512. These icons are larger file sizes than the old blurry icons of course. So when updating our Icons in Software Center to new higher resolution icons, we ran into a problem where software center would not show all applications. The number of Applications shown would change depending on which View you selected. (it was probably just showing Cached Icons). 
Looking at the errors in SCClient_.logs we saw errors saying
"GetApplicationsAsync: Server was unable to process request. ---> The maximum message size quota for incoming messages has been exceeded."

There is a web.config file that controls the  "MaxReceivedMessageSize" that the web service uses, which by default is 5000000 bytes (5MBs). Once this threshold is reached, the problem occurs. We have lots of Apps with icons deployed through Software Center, so once we started using higher resolution icons we ran into this issue.
You can change the web.config file and increase the max message size. BUT BE WARNED that as of 1810, these settings are reset when ConfigMgr is upgraded. So you must got back in and change it again or Software Center will not work again. I make a note to do this as part of my upgrade process.

The location of the file on your site server is normally C:\Program Files\SMS_CCM\CMApplicationCatalog\Web.config. You will have to run Notepad or its equivalent as an administrator to open the file.

Make a backup before changing.

On our system, I just added a 1 to make it 15000000 (15MBs) for now. 

A replacement for the way Apps are delivered is in the works by the ConfigMgr team:

So until then, if you have this problem, don't forget to set the maxRecievedMessageSize each time you upgrade.

Tuesday, March 19, 2019

SCCM Clients show as Decommissioned, do not appear in the Console

We had some trouble in one of our labs a few years back, and more recently with a single computer which prompted me to dig up my notes and blog about this issue, where the SCCM clients looked like they are working fine on the local computers, but the computer objects never showed up in the ConfigMgr Console. After ruling out boundary issues I found if I ran Active Directory System Discovery, the computers would show up in the console and look like they didn't have clients installed. The next time the client checked in the computer object would disappear from the console. Reinstalling the client and even re-imaging the computer did not fix the issue. I started to think this was a database problem.

I started digging around some and found that all the computers with this issue had Decommissioned0=1 in the System_DISC table! Once I changed Decommissioned0 to 0 instead of 1 the computers started showing up in the console. How they got into a decommissioned state I have no idea and I haven't found any docs on it.

Here are the steps I used to resolve the issue.
First verify if you have the problem, get the computers SMS Unique Identifier from the computer, one place to find it is \\computername\c$\Windows\SMSCFG.INI

Query the SQL database on your site server to see if that computer has Decommissioned0 set to 1.
Replace the GUID: with the GUID: numbers of the computer you are troubleshooting.

Result will look like this, note that Decommissioned0 is 1:

Now just set it to 0 with the follow SQL:

begin tran
update System_DISC
set Decommissioned0 = '0'
where SMS_Unique_Identifier0 = 'GUID:4c4c544-0031-4B10-8035-B6C04F333832'

commit tran

Caution: I should mention that directly modifying the SCCM database is probably frowned upon by Microsoft Support. You might want to take a backup of it first.