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 '%'
8) Follow the wizard to complete it.
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.
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.
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
Dim objItem 'as Win32_Processor
For Each 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\debugloggingTo 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
Download SMS installer from http://technet.microsoft.com/en-us/systemcenter//dd408384.aspx or
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
Replace this section for not approved and unknown:
For not approved
For Unknown
I did not write this collection, I will be glade to give credit to whom ever it was :-)
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