SMS Client Health Collections

Managing SMS client health keeps an SMS Admin’s job interesting to say the least.  Any tools or tricks to aid in the process of ensuring you are managing the greatest possible amount of clients in your infrastructure are always welcomed.  

Rick Jones recently blogged on the SMS Client Health collections from Microsoft which aid greatly in determining the varying health states of clients in your SMS hierarchy.  The concept is fairly simple yet ingenious. Basically it is a series of collections that group healthy and unhealthy clients, some of these collections are great candidates for advertisements that can correct issues while others require some manual attention or scripting magic.

Check out the article here.

Advertisements

WMI Corruption and SMS Clients

Anyone who has managed SMS for any amount of time has inevitably run to into instances of SMS clients not behaving as expected due to WMI corruption. 

Up until now the process of finding and correcting issues with the WMI repository has been painstakingly ugly and difficult, though wmidiag helps a bit.

Microsoft recognized the issues with WMI and made several improvements in Windows Vista to address them. 

The good news is that Microsoft recently announced they have back-ported the WMI stability fixes from Vista to both Windows XP and Windows server 2003.

See the articles below for the specifics:

933061 An update is available that improves the stability of the Windows Management Instrumentation repository in Windows Server 2003

http://support.microsoft.com/default.aspx?scid=kb;EN-US;933061

933062 An update is available that improves the stability of the Windows Management Instrumentation repository in Windows XP

http://support.microsoft.com/default.aspx?scid=kb;EN-US;933062

Installing The SMS 2003 Recovery Expert Web Site

A scripted SMS Trace

Great article about using VBscript to accomplish the functionality of SMS trace. 

http://myitforum.com/cs2/blogs/pthomsen/archive/2007/06/04/102894.aspx

Quickly find clients not recently online via sms web report

Troubleshooting advertisement status for clients can take some time.  Which systems are active vs. not active.   I modified the original SMS Report # 110 Titled “All system resources for a specific advertisement in a specific state” to include the last HINV and the last Hearbeat DDR for the systems.  Gives a bit better view of how the advertisement is really doing.

 

 

declare @State int

select @State=MessageState

from v_AdvertisementStatusInformation

where MessageStateName=@StateName and MessageState < 100

if @State in (0,1,2,3) /* no status, accepted, rejected, expired */

select sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0, site.SMS_Installed_Sites0, Client_Type0,

LastAcceptanceMessageID, LastAcceptanceMessageIDName,

DATEADD(ss,@__timezoneoffset,LastAcceptanceStatusTime) as LastAcceptanceStatusTime,

AdvertisementID, GSYS.agenttime as ‘Last Heartbeat’, gstatus.lasthwscan as ‘Last HINV’

from v_ClientAdvertisementStatus stat

join v_R_System sys on stat.ResourceID=sys.ResourceID

join v_AgentDiscoveries gsys on sys.ResourceID=gsys.ResourceID

join v_gs_workstation_status gstatus on sys.ResourceID=gstatus.ResourceID

left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID

where stat.LastAcceptanceState=@State and stat.AdvertisementID=@AdvertID and GSYS.agentname = ‘Heartbeat Discovery’

else if @State = 11 /* failed */

select sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0,site.SMS_Installed_Sites0, Client_Type0,

LastStatusMessageID, LastStatusMessageIDName,

DATEADD(ss,@__timezoneoffset,LastStatusTime) as LastStatusTime,

AdvertisementID, LastExecutionResult, LastExecutionContext, GSYS.agenttime as ‘Last Heartbeat’, gstatus.lasthwscan as ‘Last HINV’

from v_ClientAdvertisementStatus stat

join v_R_System sys on stat.ResourceID=sys.ResourceID

join v_AgentDiscoveries gsys on sys.ResourceID=gsys.ResourceID

join v_gs_workstation_status gstatus on sys.ResourceID=gstatus.ResourceID

left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID

where stat.LastState=@State and stat.AdvertisementID=@AdvertID and GSYS.agentname = ‘Heartbeat Discovery’

else if @State in (9,12,13) /* running, reboot pending, suceeded */

select sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0, site.SMS_Installed_Sites0, Client_Type0,

LastStatusMessageID, LastStatusMessageIDName,

DATEADD(ss,@__timezoneoffset,LastStatusTime) as LastStatusTime,

AdvertisementID, LastExecutionContext, GSYS.agenttime as ‘Last Heartbeat’, gstatus.lasthwscan as ‘Last HINV’

from v_ClientAdvertisementStatus stat

join v_R_System sys on stat.ResourceID=sys.ResourceID

join v_AgentDiscoveries gsys on sys.ResourceID=gsys.ResourceID

join v_gs_workstation_status gstatus on sys.ResourceID=gstatus.ResourceID

left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID

where stat.LastState=@State and stat.AdvertisementID=@AdvertID and GSYS.agentname = ‘Heartbeat Discovery’

else

select sys.Netbios_Name0, sys.User_Domain0, sys.User_Name0, site.SMS_Installed_Sites0, Client_Type0,

CASE LastStatusMessageID WHEN 65535 THEN 10002 ELSE LastStatusMessageID END as LastStatusMessageID,

LastStatusMessageIDName,

DATEADD(ss,@__timezoneoffset,LastStatusTime) as LastStatusTime,

AdvertisementID, GSYS.agenttime as ‘Last Heartbeat’, gstatus.lasthwscan as ‘Last HINV’

from v_ClientAdvertisementStatus stat

join v_R_System sys on stat.ResourceID=sys.ResourceID

join v_AgentDiscoveries gsys on sys.ResourceID=gsys.ResourceID

left join v_RA_System_SMSInstalledSites site on stat.ResourceID=site.ResourceID

join v_gs_workstation_status gstatus on sys.ResourceID=gstatus.ResourceID

where stat.LastState=@State and stat.AdvertisementID=@AdvertID and GSYS.agentname = ‘Heartbeat Discovery’

Vista Display Problems Solved

Has Windows Vista been driving you nuts every time you unlock the desktop on a multi-monitor system? It has been for me so I did some digging and came across a great post on the Microsoft newsgroups and found the solution.  I just implemented it and it works flawlessly.

No more having to go into display settings and adjust my resolution and primary monitor each time I unlock or reboot my system.

Fix Action (Disable Transient Multi-Monitor Manager Task):

– Right click on My computer -> Select Manage

– Double Click Task Scheduler

-> Task Scheduler Library

–> Microsoft

—> Windows

—->MobilePC

– Highlight TMM in the center pane

– End & Disable the task via the action pane on the right

– Issue Solved

image

Posted in Vista. 33 Comments »