Отчет 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