Jeff Gilbert's Web blog at myITforum.com

This posting is provided "AS IS" with no warranties, and confers no rights :-)
Client is Installed Flag Explained

Every now and then you might see someone asking about an SMS or ConfigMgr client being physically installed at the client computer, but not appearing as installed in the admin console. This invariably results in someone else pointing them to their site maintenance tasks configuration—which is generally the culprit. I was doing some things in my lab today so I figured that I'd post a basic description of the behavior.

When a client is installed, the site database is updated with the new client's information. This update also 'sets the client is installed flag' as you see mentioned a lot. What that means is that Client=1 is set in the database for the system. Client=1 means the client is installed and Client=0 means that the client is not installed (you can see this property when viewing a discovered resource's properties by double-clicking the record in the admin console).

Even if you manually uninstall the client software from a computer, the installed flag for the computer is not updated in the site database. When that happens, even though the client is not installed, the site database thinks it is (Client bit still says 1). That's why you might sometimes see clients as installed in the console when you know that the client really isn't installed. This can lead you on all sorts of goose chases trying to troubleshoot client health issues that don't really exist. To ensure that doesn't happen, you need to enable the Clear Install Flag site maintenance task. When that task runs, it looks for client systems that have not talked to the site (sent discovery information) during the client rediscovery period that you've set for the task. By default when the task is enabled, the installed flag is cleared for clients (sets Client=0) that haven't sent in discovery data in over 21 days.

Of course, enabling the Clear Install Flag task can also cause problems of its own. Enabling this task sometimes causes clients that you know are installed, to be displayed as not installed in the console. In other words, the client is installed, but the database has Client=0 for the resource. In the console, these computers show up as installed No, but Approved Yes? If the hardware inventory client agent has been enabled for the site, then checking Resource Explorer for one of these computers also shows that they've sent in hardware inventory reports recently (ConfigMgr clients do not generate DDRs when hardware inventory runs). So now you see a computer resource that says it's not installed, is approved, and has sent in recent hardware inventory information. This can lead to understandable confusion and therein lies the motivation for me to write this post—this scenario occurs if the Clear Install Flag maintenance task has been enabled, but the Heartbeat Discovery method has not been enabled for the site or it has been configured incorrectly.

So, pretending that I haven't already given away the cause, some plausible actions you might take to correct this situation would be to push the client bits out to the system using the client push installation wizard and selecting the option to always install or repair to reinstall the client. This will work initially because once installed, the client will send in a DDR to tell the site that it has happily installed and is functioning. Problem solved you think, but then the next time you look at the client resource, it is back to Client=0. Argh. Continuing with that logic, you might go to that computer, open the client applet and initiate the Discovery Data Collection Cycle, the client will then send in a heartbeat DDR and the resource record is back to Client=1. Great, but eventually the client will be back to Client=0 and you're back where you started from. If your client rediscovery period is set to the default (21 days), then this process could become a lengthy one and affect many clients. Add to the mix that when the site-wide Client Push Installation method is enabled, it will attempt to install the client on any systems assigned to the site that have the Client=0 bit set. If you're in this situation, you might see systems with this issue and then, seemingly at random, it's a whole different set of systems later.

To avoid all of this: If you enable the Clear Install Flag site maintenance task, then make sure that you also enable the Heartbeat Discovery method and schedule the Heartbeat Discovery method's recurrence interval to be shorter than the client rediscovery period for the Clear Install Flag task. This will cause clients to send in heartbeat discovery records to update the database and let the Clear Install Flag task know about their continued existence. If the Clear Install Flag task runs and the site hasn't received a heartbeat DDR from an installed client during the client rediscovery period defined for the task, it will set the client installed bit to 0 and we all know what happens after that occurs.

Bonus tip: Sometimes the name of the Clear Install Flag task throws people, but if you watch the smsdbmon.log (the log file that records scheduled maintenance task actions) then you'll see that in the log this task is called: clear undiscovered clients. So it's probably easiest to think of that task as 'the task that clears the installed flag for clients that haven't been rediscovered'. Add 'by heartbeat discovery' to that mental definition and you're in business.

Hope this helps,

~Jeff

Published Saturday, October 18, 2008 11:19 PM by jgilbert

Comments

# re: Client is Installed Flag Explained@ Monday, October 20, 2008 9:15 AM

Nice explanation!  I can just link back here now when the inevitable questions come up in the forums.  Thanks!

skissinger

# re: Client is Installed Flag Explained@ Tuesday, October 21, 2008 3:39 PM

Sweet!  Referenced this already.  Thanks Jeff.

skissinger