Quando digitalizo alguns executáveis no diretório do Windows com o ProtectionID , verifiquei o Windows Explorer. E os resultados são apresentados abaixo.
Scanning -> C:\Windows\explorer.exe
File Type : 64-Bit Exe (Subsystem : Win GUI / 2), Size : 2871808 (02BD200h) Byte(s)
[!] Warning : Cpu is AMD, this file is for IA64 (incompatible)
[x] Warning - FileAlignment seems wrong.. no solution calculated (using NULL)
[File Heuristics] -> Flag : 00000000000001001101000000000000 (0x0004D000)
[CompilerDetect] -> Visual C++ 9.0 (Visual Studio 2008)
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.548 Second(s)
Eu sei que meu processador é o Core 2 Duo e sua arquitetura x64, como resultado no sinalizador de aviso. Mas o sistema operacional que instalei é o Windows 7 x64. Os resultados acima me levantam uma dúvida de que meu sistema operacional é x64 ou IA64? Como posso encontrar isso?
Atualização Na versão mais recente do ProtectionID, esse aviso falso parece corrigido.
exe
funciona (suponho que mais você teria sérios problemas no SO)? Nesse caso, eu duvido que o software receba uma leitura válida, verifique com outra coisa.%PROCESSOR_ARCHITECTURE%
eecho %PROCESSOR_ARCHITECTURE%
no prompt de comando deve fornecerAMD64
(como você diz que está usando um Core 2 Duo).msinfo32.exe
também deve ter um campo "Tipo de sistema", que dizx64-based PC
para mim em um processador x86-64. Não tenho certeza como / porque você tem um binário IA64 sistema ...Respostas:
O tipo de CPU deve estar na variável de ambiente
%PROCESSOR_ARCHITECTURE%
e,echo %PROCESSOR_ARCHITECTURE%
no prompt de comando, fornecerAMD64
um processador x86-64. O msinfo32.exe também deve ter um campo "Tipo de sistema", que diz PC baseado em x64 para mim em um processador x86-64. Não sei como / por que você tem um sistema binário IA64 ...Parece haver um problema com o ProtectionID:
Mas na guia Coisas do PE:
Clique para ampliar
fonte
Como observa o primeiro comentário sobre o Q, não há compilação IA64 do Windows 7. Para uma versão IA64, você deve usar o servidor.
Talvez a maneira mais confiável de determinar essas informações seja com o WMI e as classes Win32_OperatingSystem e Win32_ComputerSystem .
Usando o PowerShell e o
gwmi
alias paraGet-WmiObject
:portanto, um não é de 64 bits e os outros dois são x64, nenhum é IA64. 1 Então:
Então, um é Win2k8 de 32 bits, dois é Win2k8R2 de 64 bits e três (localhost) é Win7 de 64 bits.
1 Não tenho um sistema IA64 para verificar qual valor o
SystemType
campo terá.fonte
A arquitetura IA64 é completamente diferente da arquitetura x86-64 (também conhecida como AMD64), que é o que a maioria das pessoas quer dizer quando diz 64 bits. Portanto, mesmo que houvesse uma versão compatível com IA64 do Windows 7 (que, como outras pessoas apontaram, não há 1 ), seria necessário um processador Itanium , você não seria capaz de instalá-lo em um Core 2 Duo ou qualquer outro sistema x86-64.
Edit: também, uma maneira alternativa de obter a arquitetura do processador com WMI (no prompt de comando ou no PS):
CPU
é um alias para a classe Win32_Processor e os possíveis valores 2 são (significados entre parênteses):0
(x86)9
(x86-64)6
(Itanium)1 A última versão do cliente para oferecer suporte ao IA64 foi o Windows XP; O Windows Server 2008 R2 será a última versão do servidor .
2 Existem alguns outros, para arquiteturas como MIPS, Alpha e PowerPC, mas esses estão lá principalmente por motivos herdados; consulte o artigo do MSDN acima para obter detalhes completos.
fonte
Abra uma janela de comando e execute o seguinte:
fonte