List of Public KB Articles and Hotfixes for Configuration Manager 2007 SP2

How to easily create a direct membership collection using another collection

We can very easily create a static collection by using a makecoll.exe, but this tool does not have an option to  add more systems to an existing collection. It might take lot time and require manual efforts to add a large list of systems to an existing static collection(direct membership).  The following tip might help you quickly add list of systems to an already existing collection....

1) Right click on the collection on which you like to add a list of systems that are available in another collection(source collection). Select Properties. 
2) Click on Membership Rules tab and click Next.
3) Click on Computer icon to start the Create Direct Membership Rule Wizard.
4) In the Search Resources wizard. 
    Select Resource Class: System Resources
    Select Atribute Name: Netbios Name
    in Value: type '%'




5) Click on next. 
6) In the "Collection Limiting" wizard, in the search in this collection: type the your source collection name and click next. 

7) select the required computers and click Next. 

8) Follow the wizard to complete it. 

Get Number Of Cores and Logical Processors information in SCCM


The default reporting in System Center Configuration Manager (SCCM) does not track the Number of Cores and Number of Logical Processors for each processor.The Win32_Processor WMI class contains number of cores (NumberOfCores) and logical processors (NumberOfLogicalProcessors) for each processor. It displays a unique DeviceID for each physical process in the system. This information is only available in newer version of OS's like Vista, Windows 7, Windows 2008, etc. For older version of OS like windows XP and Windows 2003 hotfix are available from Microsoft to populate this information in WMI


Windows XP SP2: http://support.microsoft.com/kb/936235
Windows 2003 SP1 or SP2: http://support.microsoft.com/kb/932370/en-us

The value for NumberOfLogicalProcessors will be higher than the value for NumberOfCores if the processor supports hyperthreading, which effectively splits a core into two logical processors. The challenge is that the reporting on Win32_Processor isn't enabled in the default sms_def.mof.

You can look at the information available in Win32_Processor WMI class using the following VB Script. 

OnErrorResumeNext
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)

Dim objItem 'as Win32_Processor
ForEach objItem in colItems
    WScript.Echo "AddressWidth: " & objItem.AddressWidth
    WScript.Echo "Architecture: " & objItem.Architecture
    WScript.Echo "Availability: " & objItem.Availability
    WScript.Echo "Caption: " & objItem.Caption
    WScript.Echo "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode
    WScript.Echo "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig
    WScript.Echo "CpuStatus: " & objItem.CpuStatus
    WScript.Echo "CreationClassName: " & objItem.CreationClassName
    WScript.Echo "CurrentClockSpeed: " & objItem.CurrentClockSpeed
    WScript.Echo "CurrentVoltage: " & objItem.CurrentVoltage
    WScript.Echo "DataWidth: " & objItem.DataWidth
    WScript.Echo "Description: " & objItem.Description
    WScript.Echo "DeviceID: " & objItem.DeviceID
    WScript.Echo "ErrorCleared: " & objItem.ErrorCleared
    WScript.Echo "ErrorDescription: " & objItem.ErrorDescription
    WScript.Echo "ExtClock: " & objItem.ExtClock
    WScript.Echo "Family: " & objItem.Family
    WScript.Echo "InstallDate: " & objItem.InstallDate
    WScript.Echo "L2CacheSize: " & objItem.L2CacheSize
    WScript.Echo "L2CacheSpeed: " & objItem.L2CacheSpeed
    WScript.Echo "L3CacheSize: " & objItem.L3CacheSize
    WScript.Echo "L3CacheSpeed: " & objItem.L3CacheSpeed
    WScript.Echo "LastErrorCode: " & objItem.LastErrorCode
    WScript.Echo "Level: " & objItem.Level
    WScript.Echo "LoadPercentage: " & objItem.LoadPercentage
    WScript.Echo "Manufacturer: " & objItem.Manufacturer
    WScript.Echo "MaxClockSpeed: " & objItem.MaxClockSpeed
    WScript.Echo "Name: " & objItem.Name
    WScript.Echo "NumberOfCores: " & objItem.NumberOfCores
    WScript.Echo "NumberOfLogicalProcessors: " & objItem.NumberOfLogicalProcessors
    WScript.Echo "OtherFamilyDescription: " & objItem.OtherFamilyDescription
    WScript.Echo "PNPDeviceID: " & objItem.PNPDeviceID
    WScript.Echo "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities
    WScript.Echo "PowerManagementSupported: " & objItem.PowerManagementSupported
    WScript.Echo "ProcessorId: " & objItem.ProcessorId
    WScript.Echo "ProcessorType: " & objItem.ProcessorType
    WScript.Echo "Revision: " & objItem.Revision
    WScript.Echo "Role: " & objItem.Role
    WScript.Echo "SocketDesignation: " & objItem.SocketDesignation
    WScript.Echo "Status: " & objItem.Status
    WScript.Echo "StatusInfo: " & objItem.StatusInfo
    WScript.Echo "Stepping: " & objItem.Stepping
    WScript.Echo "SystemCreationClassName: " & objItem.SystemCreationClassName
    WScript.Echo "SystemName: " & objItem.SystemName
    WScript.Echo "UniqueId: " & objItem.UniqueId
    WScript.Echo "UpgradeMethod: " & objItem.UpgradeMethod
    WScript.Echo "Version: " & objItem.Version
    WScript.Echo "VoltageCaps: " & objItem.VoltageCaps
    WScript.Echo ""
Next

To enable this class reporting in SCCM, the guidelines to update sms_def.mof can be found at this MyITForum post. Aditional information about the Win32_Processors call can be found  here.

Enabling Debug and Verbose Logging


To enable debug logging after installation, create the following registry key:
HKLM\SOFTWARE\Microsoft\CCM\Logging\debuglogging
To enable verbose logging after installation, change the following value to 0.  You will need to right click on the @Global key and change permissions to allow the current user to change the data in the key.
HKLM\Software\Microsoft\CCM\Logging\@Global\Loglevel


How install SMS Installer on a workstation


If you attempt to install SMS installer, you will get the following error.

Setup has detected that this computer is not Microsoft Systems Management Server site server. This installation can only be run on a site server.

To turn your workstation to Microsoft Systems Management Server site server, add the following registry key ;-)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Setup\TypeAnd change the "Type" Dword from 4 (Workstation) to 1 (Primary Server)Re-try the SMS installer installation.

How to create a collection of all approved clients

This collection will allow you to find machines that need approval.


For Is Approved
select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,
SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,
SMS_R_SYSTEM.ResourceDomainORWorkgroup,
SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_CM_RES_COLL_SMS00001 on
SMS_CM_RES_COLL_SMS00001.ResourceId = SMS_R_System.ResourceId
where SMS_CM_RES_COLL_SMS00001.IsApproved= '1'

Replace this section for not approved and unknown:
For not approved

SMS_CM_RES_COLL_SMS00001.IsApproved= '0'

For Unknown
SMS_CM_RES_COLL_SMS00001.IsApproved= '2'

I did not write this collection, I will be glade to give credit to whom ever it was :-)

How to create a collection of all non client systems

Here is a query that helps create a collection to list all the non SMS/SCCM clients.


select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,
SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,
SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client
 from SMS_R_System where
SMS_R_System.Client is null OR SMS_R_System.Client = 0