Bagaimana menemukan OS Windows saya adalah x64 atau ia64?

12

Ketika saya memindai beberapa file executable di direktori windows saya dengan ProtectionID , saya kebetulan memindai Windows Explorer. Dan hasilnya diberikan di bawah ini.

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)

Saya tahu bahwa prosesor saya adalah Core 2 Duo dan itu arsitektur x64 yang mengakibatkan bendera peringatan. Tetapi OS yang saya instal adalah Windows 7 x64. Hasil di atas menimbulkan pertanyaan kepada saya bahwa OS saya adalah x64 atau IA64? Bagaimana saya bisa menemukan itu?

Pembaruan Dalam versi terbaru ProtectionID, peringatan palsu ini tampaknya sudah diperbaiki.

Jones
sumber
3
Sejauh yang saya dapat melihat hanya edisi Server Windows memiliki versi eksplisit untuk arsitektur Itanium (alias IA64), dengan Win7 64-bit hanya mendukung set instruksi x64 "biasa". Apakah Anda 100% yakin Anda telah menginstal Windows 7 versi 64-bit? Dan apakah Anda 100% yakin CPU Anda rusak 64-bit (Saya belum memeriksa apakah semua Core 2 Duos). Oh, dan apakah exe berhasil (saya berasumsi kalau tidak Anda akan mengalami masalah OS serius)? Jika demikian, saya akan meragukan bahwa perangkat lunak ini diberikan bacaan yang valid, periksa dengan hal lain.
DMA57361
Jenis CPU harus di variabel lingkungan %PROCESSOR_ARCHITECTURE%, dan echo %PROCESSOR_ARCHITECTURE%di command prompt harus memberi Anda AMD64(seperti yang Anda katakan Anda menggunakan Core 2 Duo). msinfo32.exeseharusnya juga memiliki bidang "Jenis Sistem", yang mengatakan x64-based PCuntuk saya pada prosesor x86-64. Saya tidak yakin bagaimana / mengapa Anda memiliki sistem biner IA64 ...
Bob
6
Itu, atau ProtectionID rusak.
Apa versi ProtectionID?
David Schwartz
@ DMA57361 - Saya sudah Core 2 Duo E7300. Saya sudah menggunakan Windows 7 x64 Ultimate. Sesuai taskmgr saya, sekitar 40% dari proses saya berjalan dalam mode kompatibilitas x86 yaitu, dengan akhiran * 32 setelah nama gambar.
Jones

Jawaban:

18

Jenis CPU harus di variabel lingkungan %PROCESSOR_ARCHITECTURE%, dan echo %PROCESSOR_ARCHITECTURE%di command prompt harus memberi Anda AMD64pada prosesor x86-64. msinfo32.exe juga harus memiliki bidang "Jenis Sistem", yang mengatakan PC berbasis x64 untuk saya pada prosesor x86-64. Saya tidak yakin bagaimana / mengapa Anda memiliki sistem biner IA64 ...


Tampaknya ada masalah dengan 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)

Tetapi di tab PE Stuff:

Tangkapan layar (IMAGE_FILE_MACHINE_AMD64
Klik untuk ukuran penuh

Bob
sumber
Berlayar di perahu yang sama! Selain itu, Alat Lain-Lain -> Alat Lain-lain / Info sistem -> Arsitektur prosesor mengatakan 'Berbasis Intel (x86)'
Jones
5

Sebagai komentar pertama pada catatan Q, tidak ada IA64 membangun Windows 7. Untuk versi IA64 Anda harus menggunakan server.

Mungkin cara yang paling dapat diandalkan untuk menentukan informasi ini adalah dengan WMI dan kelas-kelas Win32_OperatingSystem dan Win32_ComputerSystem .

Menggunakan PowerShell dan gwmialias untuk Get-WmiObject:

PS> gwmi win32_computersystem -computer one, two, localhost | ft __SERVER, tipe sistem

__SERVER systemtype
-------- ----------
SATU PC berbasis X86
DUA PC berbasis x64
TIGA PC berbasis x64

jadi Satu bukan 64bit, dan dua lainnya keduanya x64, tidak ada yang IA64. 1 Kemudian:

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

__SERVER keterangan
-------- -------
ONE Microsoft® Windows Server® 2008 Standard
DUA Microsoft Windows Server 2008 R2 Standard
TIGA Microsoft Windows 7 Ultimate

Jadi Satu adalah Win2k8 32bit, Dua adalah Win2k8R2 64bit dan Tiga (localhost) adalah Win7 64bit.


1 Saya tidak memiliki sistem IA64 untuk memeriksa nilai SystemTypebidang apa yang akan dimiliki.

Richard
sumber
3

Arsitektur IA64 benar-benar berbeda dari arsitektur x86-64 (alias AMD64), yang merupakan arti kebanyakan orang ketika mereka mengatakan 64-bit. Jadi, bahkan jika ada versi Windows 7 yang kompatibel dengan IA64 (yang, seperti yang ditunjukkan orang lain, tidak ada 1 ), itu akan memerlukan prosesor Itanium , Anda tidak akan dapat menginstalnya pada Core 2 Duo atau sistem x86-64 lainnya.

Sunting: juga, cara alternatif untuk mendapatkan arsitektur prosesor dengan WMI (dari command prompt atau PS):

wmic CPU get Architecture

CPUadalah alias untuk kelas Win32_Processor , dan nilai yang dimungkinkan 2 adalah (artinya dalam tanda kurung):

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

1 Versi klien terakhir yang mendukung IA64 adalah Windows XP; Windows Server 2008 R2 akan menjadi versi server terakhir .
2 Ada beberapa yang lain, untuk arsitektur seperti MIPS, Alpha dan PowerPC, tetapi kebanyakan ada karena alasan warisan; lihat artikel MSDN di atas untuk detail lengkap.

Indrek
sumber
@ William.Ebe CPU x86-64 standar, seperti yang diharapkan. Masalahnya mungkin terletak pada ProtectionID. Senang saya bisa membantu. Harap ingat untuk menerima jawaban yang paling membantu Anda dengan mengklik outline tanda centang hijau di sebelahnya.
Indrek
-1

Buka jendela Command dan jalankan yang berikut:

C:\>set | findstr ARCH

PROCESSOR_ARCHITECTURE=x86

sumber
2
Mendaftarkan semua variabel kemudian memfilter satu variabel tidak efisien bila Anda sudah tahu namanya. Cukup gunakan variabel lingkungan secara langsung, seperti yang saya jelaskan pada jawaban saya.
Bob