В настоящее время изучаются варианты развертывания для 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 SP3, некоторые из них работают под управлением 32-битной Windows 7, некоторые работают под управлением 64-битной Windows 7. Все ноутбуки идентичны, они поступили из одного и того же заказа. Из них Windows 7 (32- и 64-разрядная версии) сообщает, что оборудование поддерживает 64-разрядные версии, а машины с Windows XP сообщают, что они поддерживают только 32-разрядные версии.
Кто-нибудь знает, есть ли другое значение, которое я могу запросить, чтобы правильно получить возможности оборудования в XP, или есть исправление, которое заставит его сообщать правильную информацию?
У меня было чувство, что публикация здесь будет тем, что заставило меня найти фактический ответ сам!
Обнаружили свойство системного процессора, которое, кажется, точно отвечает на вопрос во всех ОС, с которыми я тестировал (сервер и рабочая станция начиная с 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