如何查找我的 Windows 操作系统是 x64 还是 ia64?

如何查找我的 Windows 操作系统是 x64 还是 ia64?

当我使用以下方法扫描 Windows 目录中的几个可执行文件时保护ID,我偶然扫描了 Windows 资源管理器。结果如下。

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 的最新版本中,这个错误警告似乎已经得到修复。

答案1

CPU 类型应该在环境变量中%PROCESSOR_ARCHITECTURE%echo %PROCESSOR_ARCHITECTURE%命令提示符中应该会给出AMD64x86-64 处理器。msinfo32.exe 还应该有一个“系统类型”字段,它显示 x64 型 PC 是基于 x86-64 处理器的。我不确定你为什么有 IA64 系统二进制文件...


这似乎是 ProtectionID 的问题:

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.828 Second(s)

但在 PE Stuff 选项卡中:

屏幕截图(IMAGE_FILE_MACHINE_AMD64
点击查看完整尺寸

答案2

正如 Q 笔记中的第一条评论,Windows 7 没有 IA64 版本。对于 IA64 版本,您必须使用服务器。

也许确定此信息的最可靠方法是使用 WMI 和类Win32_操作系统Win32_计算机系统

使用 PowerShell 和gwmi别名Get-WmiObject

PS> gwmi win32_computersystem -computer one,two,localhost | ft __SERVER,系统类型

__SERVER 系统类型
-------- ----------
一台基于 X86 的 PC
两台基于 x64 的 PC
三台基于 x64 的 PC

因此,一个不是 64 位,另外两个都是 x64,都不是 IA64。1然后

PS [64] E:\ #12> gwmi win32_operatingsystem -comp one,two,localhost| ft __SERVER,caption

__SERVER 标题
-------- -------
一个 Microsoft® Windows Server® 2008 标准版
两个 Microsoft Windows Server 2008 R2 标准版
微软 Windows 7 Ultimate

因此,One 是 Win2k8 32 位,Two 是 Win2k8R2 64 位,Three(localhost)是 Win7 64 位。


1我没有 IA64 系统来检查该SystemType字段将具有什么值。

答案3

IA64 架构与 x86-64(又名 AMD64)架构完全不同,大多数人说 64 位时指的是 x86-64 架构。因此,即使有兼容 IA64 的 Windows 7 版本(其他人指出,没有 1 ,它也需要安腾处理器,您将无法将其安装在 Core 2 Duo 或任何其他 x86-64 系统上。

编辑:此外,还有一种使用 WMI 获取处理器架构的方法(从命令提示符或 PS):

wmic CPU get Architecture

CPUWin32_处理器class,可能的值2为(括号中含义):

  • 0(x86)
  • 9(x86-64)
  • 6(安腾)

1最后一个支持IA64的客户端版本是Windows XP;Windows Server 2008 R2 将是最后一个服务器版本.
2还有一些其他的,用于像 MIPS、Alpha 和 PowerPC 这样的架构,但是那些大多是出于遗留原因;请参阅上面的 MSDN 文章了解详细信息。

答案4

打开命令窗口并运行以下命令:

C:\>set | findstr ARCH

PROCESSOR_ARCHITECTURE=x86

相关内容