如何找到我的Windows操作系统是x64或ia64?


11

当我使用ProtectionID扫描Windows 目录中的几个可执行文件时,我碰巧正在扫描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的最新版本中,此错误警告似乎已修复。


3
据我所知,只有Windows的Server版本具有用于Itanium体系结构(即IA64)的显式版本,而Win7 64位仅支持“常规” x64指令集。您是否100%确定安装了Windows 7的64位版本?并且您是否100%确定您的CPU一定是64位的(我还没有检查是否所有的Core 2 Duos都是)。哦,这exe 工作正常吗(我假设是这样,否则您将遇到严重的OS麻烦)?如果是这样,我会怀疑该软件是否有效阅读,请检查其他内容。
DMA57361

CPU类型应该在环境变量中%PROCESSOR_ARCHITECTURE%,并且echo %PROCESSOR_ARCHITECTURE%在命令提示符下应该给您AMD64(正如您说的那样,您正在使用Core 2 Duo)。msinfo32.exe还应该有一个“系统类型”字段,该字段x64-based PC在x86-64处理器上对我说。我不确定您如何/为什么要使用IA64系统二进制文件...
Bob

6
那个,或者ProtectionID坏了。

什么版本的ProtectionID?
大卫·史瓦兹

@ DMA57361-我拥有Core 2 Duo E7300。我有Windows 7 x64 Ultimate。根据我的taskmgr,大约40%的进程在x86兼容模式下运行,即,映像名称后缀* 32。
琼斯

Answers:


17

CPU类型应该在环境变量中%PROCESSOR_ARCHITECTURE%,并且echo %PROCESSOR_ARCHITECTURE%在命令提示符下应该为您AMD64提供x86-64处理器。msinfo32.exe还应该有一个“系统类型”字段,该字段在x86-64处理器上对我来说是基于x64的PC。我不确定如何/为什么要使用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
点击查看原图


在同一条船上航行!此外,杂项工具->杂项工具/系统信息->处理器体系结构说“基于Intel(x86)”
2012年

5

作为对Q注释的第一条评论,没有Windows 7的IA64版本。对于IA64版本,您必须使用服务器。

确定此信息的最可靠方法也许是使用WMI以及类Win32_OperatingSystemWin32_ComputerSystem

使用PowerShell和gwmi别名作为Get-WmiObject

PS> gwmi win32_computersystem-计算机一,二,本地主机| 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,标题

__SERVER标题
-------- -------
一个Microsoft®WindowsServer®2008 Standard
两个Microsoft Windows Server 2008 R2标准
三个Microsoft Windows 7 Ultimate

所以一个是Win2k8 32位,两个是Win2k8R2 64位,而三个(localhost)是Win7 64位。


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


3

IA64体系结构与x86-64(也称为AMD64)体系结构完全不同,x86-64体系结构是大多数人所说的64位含义。因此,即使有Windows 7的IA64兼容版本(正如其他人指出的那样,还没有1),它也将需要Itanium处理器,您将无法在Core 2上安装它。 Duo或任何其他x86-64系统。

编辑:也是一种使用WMI(从命令提示符或PS)获取处理器体系结构的替代方法:

wmic CPU get Architecture

CPUWin32_Processor类的别名,可能的值2为(括号中的含义):

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

1支持IA64的最后一个客户端版本是Windows XP。Windows Server 2008 R2将是最新的服务器版本
2对于MIPS,Alpha和PowerPC之类的体系结构,还有其他几种,但是大多数都是出于遗留原因而存在的;有关完整的详细信息,请参见上面的MSDN文章。


@ William.Ebe符合预期的标准x86-64 CPU。然后,问题可能出在ProtectionID上。很高兴我能帮上忙。请记得单击旁边的绿色对勾标记,以接受对您最有帮助的答案。
德雷克(Indrek)

-1

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

C:\>set | findstr ARCH

PROCESSOR_ARCHITECTURE=x86

2
列出所有变量然后过滤掉一个变量,如果您已经知道名称,则效率不高。正如我在答案中所述,直接使用环境变量即可。
鲍勃,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.