In many cases there are a need create a collection with either all Windows 7 – x86 or all Windows 7 x64 installed. This can be used for targeting only a specific platform with an update or a program.
I do this by querying the SCCM inventory, SMS_G_System_COMPUTER_SYSTEM.SystemType which returns “x64-based PC”or “X86-based PC”.
Query to find all Windows 7 – x64
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_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.SystemType = "x64-based PC" and SMS_G_System_OPERATING_SYSTEM.Caption like "Microsoft Windows 7%"
And the query for Windows 7 -x86
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_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.SystemType = "X86-based PC" and SMS_G_System_OPERATING_SYSTEM.Caption like "Microsoft Windows 7%"
Thanks! You do great work and I appreciate you sharing with the rest of us.
Thanks!
This is not working in configmgr 2012. Is there anything else that needs to be added?
Thanks
Thanks a lot, very usefull.
This T-SQL query works on my SCCCM 2012 RTM production environment.
Also, this one doesn’t use SMS_G_System_OPERATING_SYSTEM.
select S.ResourceID,S.ResourceType,S.Name0,S.Operating_System_Name_and0,
S.SMS_Unique_Identifier0,S.Resource_Domain_OR_Workgr0,S.Client0, CS.SystemType0
from v_R_System as S
inner join v_GS_COMPUTER_SYSTEM as CS on CS.ResourceID = S.ResourceID
where S.Operating_System_Name_and0 = ‘Microsoft Windows NT Workstation 6.1’
and CS.SystemType0 = ‘x64-based PC’
–and CS.SystemType0 = ‘X86-based PC’
Is this report determining if the hardware is x64 or x86 or if the OS architecture installed is x64 or x86? I need a way to determine which OS installed on a x64 capable machine.
Hi,
It determines if the OS is x86 or x64 based.
/Jörgen
The problem with this Query is that it seems to only show systems with the SCCM client installed.
Why not use the simple value >> Operating System – OS Architecture? I know it isn’t on by default, but you can turn it on in hardware inventory. I have read several posts that say what is shown above pulls hardware capable info, not the OS running on top of it. Anyone else see similar results?
LvilleSystemsJockey
it does work on the running OS, as stated;) If I have a 32 bits Windows 7 installed on a 64 capable computer, it will show up in the SMS_G_System_COMPUTER_SYSTEM.SystemType = “X86-based PC” collection, and not in the “x64-based PC”
you check it in DXDIAG as well or just check if your PC is using all your RAM.
Hi Jorgen, I’m being following your SCCM documentations from a long time and it’s a really helpful materiel. At the moment, i’m stuck to generate a collection of x64 bit & x32 bit os architecture report in my SCCM environment. In fact, i’m having a very basic knowledge of SCCM collection. Also note, we have deployed SCCM with all features & reporting functionality from local vendor. Could you please help me out the process how to run the query or collection to generate the report as stated above. Thanks.
Many thanks!