SCCM 报告用于识别具有 64 位硬件的机器

SCCM 报告用于识别具有 64 位硬件的机器

目前正在研究 Windows 7 的部署选项。我们正在研究的问题之一是 32 位与 64 位。我正在尝试针对我们的资产运行 SCCM 报告,以确定哪些机器支持 64 位(无论它们当前是否运行 64 位操作系统)。

网上似乎有一些关于此的资源(这里这里这里),但它们似乎都无法在运行 32 位 Windows XP 的机器上正常工作。32 位 XP 机器似乎总是报告它们在 32 位硬件上运行。

我当前正在运行的查询是:

select sys.netbios_name0, sys.Operating_System_Name_and0 as OperatingSystem, 
case when pr.addresswidth0=64 then '64bit OS'
when pr.addresswidth0=32 then '32bit OS'
end as [Operating System Type],
case when pr.DataWidth0=64 then '64bit Processor'
when pr.DataWidth0=32 then '32bit Processor'
end as [Processor Type],
case when pr.addresswidth0=32 and pr.DataWidth0=64 then 'YES'
end as [32-bit OS on x64 processor]
from v_r_system sys
join v_gs_processor pr on sys.resourceid=pr.resourceid

我也尝试过这个,它报告所有“Windows XP Professional”系统都在“基于 X86 的 PC”上,而不是基于 x64,尽管其中一些肯定是基于 x64 的:

select
    OS.Caption0,
    CS.SystemType0,
    Count(*)
from
    dbo.v_GS_COMPUTER_SYSTEM CS Left Outer Join dbo.v_GS_OPERATING_SYSTEM OS on CS.ResourceID = OS.ResourceId
Group by
    OS.Caption0,
    CS.SystemType0
Order by
    OS.Caption0,
    CS.SystemType0

例如,我们有一组戴尔 Latitude E4200 笔记本电脑。其中一些运行 32 位 Windows XP SP3,一些运行 32 位 Windows 7,一些运行 64 位 Windows 7。所有笔记本电脑都是相同的,来自同一份订单。其中 Windows 7(32 位和 64 位)报告硬件支持 64 位,而 Windows XP 机器报告它们仅支持 32 位。

是否有人知道是否有其他值可以查询以在 XP 上正确获取硬件的功能,或者是否有修补程序可以让它报告正确的信息?

答案1

我有一种感觉,在这里发帖会让我自己找到真正的答案!

我发现系统处理器的一个属性似乎可以完全正确地回答我测试过的所有操作系统(从 XP/2003 开始​​的服务器和工作站)上的问题。我得到的是,根据 CPU 是否支持 64 位,v_GS_PROCESSOR.Is64Bit0给出1或。0

我现在的 SCCM 查询是(自上而下的总结):

select
    OS.Caption0,
    case when pr.Is64Bit0=1 then '64-bit'
    when pr.Is64Bit0=0 then '32-bit'
    end as [Processor Type],
    Count(*)
from
    dbo.v_gs_processor PR Left Outer Join dbo.v_GS_OPERATING_SYSTEM OS on PR.ResourceID = OS.ResourceId
Group by
    OS.Caption0,
    pr.Is64Bit0
Order by
    OS.Caption0,
    pr.Is64Bit0

并且(针对逐台机器的列表):

select sys.netbios_name0, sys.Operating_System_Name_and0 as OperatingSystem, 
case when pr.Is64Bit0=1 then 'Yes 64-bit'
when pr.Is64Bit0=0 then 'No 32-bit'
end as [Processor Is 64-Bit?],
case when pr.addresswidth0=64 then '64-bit OS'
when pr.addresswidth0=32 then '32-bit OS'
end as [Operating System Type],
case when pr.DataWidth0=64 then '64-bit Processor'
when pr.DataWidth0=32 then '32-bit Processor'
end as [Processor Type (XP Lies)],
case when pr.addresswidth0=32 and pr.Is64Bit0=1 then 'YES'
end as [32-bit OS on x64 processor]
from v_r_system sys
join v_gs_processor pr on sys.resourceid=pr.resourceid

相关内容