Отчет 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", а не на основе 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 Latitude E4200. Некоторые из них работают под управлением 32-разрядной версии Windows XP с пакетом обновления 3 (SP3), некоторые из них работают под управлением 32-разрядной версии Windows 7, некоторые - под управлением 64-разрядной версии Windows 7. Все ноутбуки идентичны и относятся к одному и тому же порядку. Из них Windows 7 (32- и 64-разрядная версия) сообщает, что оборудование поддерживает 64-разрядную версию, а машины с Windows XP сообщают, что они поддерживают только 32-разрядную версию.

Кто-нибудь знает, есть ли другое значение, которое я могу запросить, чтобы получить правильные возможности оборудования в XP, или есть исправление, которое будет сообщать правильную информацию?

1 ответ

Решение

У меня было ощущение, что размещение здесь будет тем, что заставило меня найти фактический ответ сам!

Нашли свойство системного процессора, которое, похоже, отвечает на вопрос точно на всех ОС, с которыми я тестировал (сервер и рабочая станция с XP/2003 и выше). Что у меня есть v_GS_PROCESSOR.Is64Bit0 который дает 1 или 0 в зависимости от того, способен ли процессор 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
Другие вопросы по тегам