web-dev-qa-db-ja.com

SCCM 64ビット対応のハードウェアを搭載したマシンを特定するためのレポート

現在、Windows 7の展開オプションを検討しています。検討している質問の1つは、32ビットと64ビットです。 SCCMレポートを実行して、64ビット対応のマシンを特定しようとしています(現在64ビットOSを実行しているかどうかに関係なく)。

これについてはネット上にいくつかのリソースがあるようです( ここここ および ここ )が、どれも正しく機能していないようです32ビットWindowsXPを実行しているマシン。 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

たとえば、Dell LatitudeE4200ノートパソコンのセットがあります。これらのいくつかは32ビットWindowsを実行していますXP SP3、いくつかは32ビットWindows 7を実行しています、いくつかは64ビットWindows 7を実行しています。すべてのラップトップは同一であり、同じ順序。これらのうち、Windows 7(32ビットおよび64ビット)はハードウェアが64ビット対応であると報告し、Windows XPマシンは32ビットのみであると報告します有能。

XPでハードウェアの機能を正しく取得するためにクエリできる別の値があるかどうか、または正しい情報を報告するようにする修正プログラムがあるかどうかを誰かが知っていますか?

2
GAThrawn

ここに投稿することで、自分で本当の答えを見つけられるのではないかと感じました!

私がテストしたすべてのOS(XP/2003以降のサーバーとワークステーション)で質問に正確に答えているように見えるシステムプロセッサのプロパティを見つけました。私が持っているのはv_GS_PROCESSOR.Is64Bit0これは1または0CPUが64ビット対応かどうかによって異なります。

私の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
1
GAThrawn