Relatório SCCM para identificar máquinas com hardware compatível com 64 bits

2

Atualmente, estamos analisando as opções de implantação do Windows 7. Uma das questões que analisamos é de 32 bits versus 64 bits. Eu estou tentando executar um relatório SCCM contra a nossa propriedade para identificar quais máquinas são capazes de 64 bits (ou não estão atualmente executando um sistema operacional de 64 bits).

Parece haver alguns recursos na rede para isso ( aqui , aqui e aqui ), mas nenhum deles parece funcionar em máquinas que executam o Windows XP de 32 bits. Máquinas XP de 32 bits parecem sempre relatar que estão rodando em hardware de 32 bits.

A consulta que estou executando atualmente é:

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

Eu também tentei isso, que relata que todos os sistemas "Windows XP Professional" estão em "PC baseado em X86", não baseados em x64, embora um número deles definitivamente seja:

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

Por exemplo, temos um conjunto de laptops Dell Latitude E4200. Alguns deles estão executando o Windows XP SP3 de 32 bits, alguns deles executando o Windows 7 de 32 bits, alguns executando o Windows 7 de 64 bits. Todos os laptops são idênticos, sendo provenientes da mesma ordem. Destes, o Windows 7 (32 e 64 bits) relata que o hardware é capaz de 64 bits, e as máquinas com Windows XP informam que são apenas capazes de 32 bits.

Alguém sabe se há outro valor que eu possa consultar para obter os recursos do hardware corretamente no XP, ou existe um hotfix que fará com que ele relate as informações corretas?

    
por GAThrawn 29.03.2010 / 12:39

1 resposta

1

Eu tive a sensação de que postar aqui seria o que me fez encontrar a resposta real eu mesmo!

Encontrei uma propriedade do processador do sistema que parece responder exatamente à pergunta correta em todos os SOs com que testei (servidor e estação de trabalho do XP / 2003 para cima). O que eu tenho é v_GS_PROCESSOR.Is64Bit0 , o que dá um 1 ou um 0 dependendo se a CPU é ou não capaz de 64 bits.

Minhas consultas do SCCM agora são (para um resumo de cima para baixo):

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

E (para a lista de máquinas por máquina):

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
    
por 30.03.2010 / 16:35