Когда я сканировал несколько исполняемых файлов в своем каталоге Windows с помощью ProtectionID , мне приходилось сканировать Windows Explorer. И результаты приведены ниже.
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)
Я знаю, что мой процессор - Core 2 Duo, и это x64 архитектура, что выдает флаг предупреждения. Но я установил ОС Windows 7 x64. Приведенные выше результаты вызывают у меня вопрос, что моя ОС является x64 или IA64? Как я могу найти это?
Обновление В последней сборке ProtectionID это ложное предупреждение кажется исправленным.
exe
работе (я предполагаю , что так же вы должны были бы серьезные проблемы ОС)? Если это так, я сомневаюсь, что программное обеспечение дает правильное чтение, проверьте с чем-то еще.%PROCESSOR_ARCHITECTURE%
, иecho %PROCESSOR_ARCHITECTURE%
в командной строке вы должны указать егоAMD64
(как вы говорите, вы используете Core 2 Duo).msinfo32.exe
также должно иметь поле «Тип системы», которое говоритx64-based PC
для меня на процессоре x86-64. Я не уверен, как / почему у вас есть бинарный файл системы IA64 ...Ответы:
Тип процессора должен быть в переменной среды
%PROCESSOR_ARCHITECTURE%
, аecho %PROCESSOR_ARCHITECTURE%
в командной строке долженAMD64
отображаться процессор x86-64. В файле msinfo32.exe также должно быть поле «Тип системы», в котором указано, что я использую компьютер на базе архитектуры x64 на процессоре x86-64. Я не уверен, как / почему у вас есть бинарный файл системы IA64 ...Кажется, проблема с ProtectionID:
Но во вкладке PE Stuff:
Нажмите для полного размера
источник
В качестве первого комментария к примечаниям Q нет сборки IA64 для Windows 7. Для версии IA64 необходимо использовать сервер.
Возможно, самый надежный способ определить эту информацию - с помощью WMI и классов Win32_OperatingSystem и Win32_ComputerSystem .
Использование PowerShell и
gwmi
псевдонима дляGet-WmiObject
:поэтому один не 64-битный, а два других - x64, ни один не IA64. 1 Тогда:
Итак, Один - это Win2k8 32bit, Два - это Win2k8R2 64bit, а Три (localhost) - это Win7 64bit.
1 У меня нет системы IA64, чтобы проверить, какое значение
SystemType
будет иметь поле.источник
Архитектура IA64 полностью отличается от архитектуры x86-64 (она же AMD64), что большинство людей имеют в виду, когда говорят о 64-битной архитектуре. Таким образом , даже если была IA64-совместимая версия Windows 7 (который, как и другие люди указали, есть не один ), это потребует процессор Itanium , вы не смогли бы установить его на Core 2 Duo или любая другая система x86-64.
Изменить: также, альтернативный способ получить архитектуру процессора с WMI (из командной строки или PS):
CPU
является псевдонимом для класса Win32_Processor , и возможные значения 2 (значения в скобках):0
(X 86)9
(X86-64)6
(Itanium)1 Последней версией клиента, поддерживающей IA64, была Windows XP; Windows Server 2008 R2 будет последней версией сервера .
2 Есть несколько других, для архитектур, таких как MIPS, Alpha и PowerPC, но они в основном существуют по устаревшим причинам; см. статью MSDN выше для получения полной информации.
источник
Откройте командное окно и выполните следующее:
источник