Windows-Xp

SCCM 報告以辨識具有 64 位硬體的機器

  • January 9, 2013

目前正在研究 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的,儘管其中一些肯定是:

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 上正確獲取硬體的功能,或者是否有一個修補程序可以讓它報告正確的資訊?

我有一種感覺,在這裡發帖會讓我自己找到實際答案!

發現系統處理器的一個屬性似乎在我測試過的所有作業系統(伺服器和工作站從 XP/2003 起)上完全正確地回答了這個問題。我所擁有的是根據 CPU 是否支持 64 位v_GS_PROCESSOR.Is64Bit0來給出 a1或 a 。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

引用自:https://serverfault.com/questions/127240