Come trovare il mio sistema operativo Windows è x64 o ia64?


12

Quando eseguo la scansione di alcuni eseguibili nella mia directory di Windows con ProtectionID , mi è capitato di eseguire la scansione di Windows Explorer. E i risultati sono riportati di seguito.

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)

So che il mio processore è Core 2 Duo ed è architettura x64 come risultato in flag di avviso. Ma il sistema operativo che ho installato è Windows 7 x64. I risultati di cui sopra mi fanno sorgere la domanda che il mio sistema operativo sia x64 o IA64? Come posso trovarlo?

Aggiornamento Nell'ultima build di ProtectionID questo falso avviso sembra corretto.


3
Per quanto posso vedere solo le edizioni Server di Windows hanno una versione esplicita per l'architettura Itanium (aka IA64), con Win7 64-bit che supporta solo il "solito" set di istruzioni x64. Sei sicuro al 100% di aver installato la versione a 64 bit di Windows 7? E sei sicuro al 100% che la tua CPU sia decisamente a 64 bit (non ho verificato se tutti i Duos Core 2 fossero). Oh, e exe funziona (suppongo che altrimenti avresti seri problemi al sistema operativo)? Se è così, sarei dubbioso che al software venga data una lettura valida, controlla con qualcos'altro.
DMA57361,

Il tipo di CPU dovrebbe essere nella variabile d'ambiente %PROCESSOR_ARCHITECTURE%e echo %PROCESSOR_ARCHITECTURE%nel prompt dei comandi dovrebbe darti AMD64(come dici che stai usando un Core 2 Duo). msinfo32.exedovrebbe anche avere un campo "Tipo di sistema", che dice x64-based PCper me su un processore x86-64. Non sono sicuro di come / perché hai un sistema binario IA64 ...
Bob,

6
Quello o ProtectionID è rotto.

Quale versione di ProtectionID?
David Schwartz,

@ DMA57361 - Ho Core 2 Duo E7300. Ho Windows 7 x64 Ultimate. Secondo il mio taskmgr, circa il 40% dei miei processi viene eseguito in modalità di compatibilità x86, cioè con un suffisso * 32 dopo il nome dell'immagine.
Jones,

Risposte:


18

Il tipo di CPU dovrebbe trovarsi nella variabile d'ambiente %PROCESSOR_ARCHITECTURE%e echo %PROCESSOR_ARCHITECTURE%nel prompt dei comandi dovrebbe essere indicato AMD64su un processore x86-64. msinfo32.exe dovrebbe anche avere un campo "Tipo di sistema", che dice PC basato su x64 per me su un processore x86-64. Non sono sicuro di come / perché hai un sistema binario IA64 ...


Sembra essere un problema con 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)

Ma nella scheda Roba PE:

Schermata (IMAGE_FILE_MACHINE_AMD64
Clicca per ingrandire


Navigando nella stessa barca! Inoltre, Strumenti vari -> Strumenti vari / Informazioni di sistema -> L'architettura del processore dice "Basato su Intel (x86)"
Jones,

5

Come primo commento sulle note Q, non esiste una build IA64 di Windows 7. Per una versione IA64 è necessario utilizzare il server.

Forse il modo più affidabile per determinare queste informazioni è con WMI e le classi Win32_OperatingSystem e Win32_ComputerSystem .

Utilizzando PowerShell e l' gwmialias per Get-WmiObject:

PS> gwmi win32_computersystem -computer uno, due, localhost | ft __SERVER, tipo di sistema

__SERVER tipo di sistema
-------- ----------
UN PC basato su X86
DUE PC basati su x64
TRE PC basati su x64

quindi uno non è a 64 bit e gli altri due sono entrambi x64, nessuno è IA64. 1 Quindi:

PS [64] E: \ # 12> gwmi win32_operatingsystem -comp uno, due, localhost | ft __SERVER, didascalia

__SERVER didascalia
-------- -------
UNO standard Microsoft® Windows Server® 2008
DUE standard di Microsoft Windows Server 2008 R2
TRE Microsoft Windows 7 Ultimate

Quindi uno è Win2k8 a 32 bit, due è Win2k8R2 a 64 bit e tre (localhost) è Win7 a 64 bit.


1 Non ho un sistema IA64 per verificare quale valore SystemTypeavrà il campo.


3

L'architettura IA64 è completamente diversa dall'architettura x86-64 (aka AMD64), che è ciò che la maggior parte delle persone intende quando dicono a 64 bit. Quindi, anche se esistesse una versione compatibile con IA64 di Windows 7 (che, come altri hanno sottolineato, non ce n'è 1 ), richiederebbe un processore Itanium , non sarebbe possibile installarlo su un Core 2 Duo o qualsiasi altro sistema x86-64.

Modifica: inoltre, un modo alternativo per ottenere l'architettura del processore con WMI (dal prompt dei comandi o PS):

wmic CPU get Architecture

CPUè un alias per la classe Win32_Processor e i possibili valori 2 sono (significati tra parentesi):

  • 0 (X86)
  • 9 (X86-64)
  • 6 (Itanium)

1 L'ultima versione client per supportare IA64 era Windows XP; Windows Server 2008 R2 sarà l'ultima versione del server .
2 Ce ne sono alcuni altri, per architetture come MIPS, Alpha e PowerPC, ma quelli sono presenti principalmente per motivi legacy; vedere l'articolo MSDN sopra per i dettagli completi.


@ William.Ebe Una CPU standard x86-64, come previsto. Il problema probabilmente risiede quindi con ProtectionID. Sono contento di aver potuto aiutare. Ricorda di accettare la risposta che ti ha aiutato di più facendo clic sul segno di spunta verde accanto ad essa.
Indrek,

-1

Apri una finestra di comando ed esegui quanto segue:

C:\>set | findstr ARCH

PROCESSOR_ARCHITECTURE=x86

2
Elencare tutte le variabili e filtrarne una non è efficace quando si conosce già il nome. Usa semplicemente la variabile d'ambiente direttamente, come ho descritto nella mia risposta.
Bob,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.