Voici une solution Powershell, sans dépendances externes ni rien. Ouvrez Powershell, collez-y la fonction (appuyez deux fois sur Entrée pour revenir à l'invite), puis utilisez-la comme dans mes exemples sous la fonction :
function Test-is64Bit {
param($FilePath=“$env:windir\notepad.exe”)
[int32]$MACHINE_OFFSET = 4
[int32]$PE_POINTER_OFFSET = 60
[byte[]]$data = New-Object -TypeName System.Byte[] -ArgumentList 4096
$stream = New-Object -TypeName System.IO.FileStream -ArgumentList ($FilePath, 'Open', 'Read')
$stream.Read($data, 0, 4096) | Out-Null
[int32]$PE_HEADER_ADDR = [System.BitConverter]::ToInt32($data, $PE_POINTER_OFFSET)
[int32]$machineUint = [System.BitConverter]::ToUInt16($data, $PE_HEADER_ADDR + $MACHINE_OFFSET)
$stream.Close()
$result = "" | select FilePath, FileType, Is64Bit
$result.FilePath = $FilePath
$result.Is64Bit = $false
switch ($machineUint)
{
0 { $result.FileType = 'Native' }
0x014c { $result.FileType = 'x86' }
0x0200 { $result.FileType = 'Itanium' }
0x8664 { $result.FileType = 'x64'; $result.is64Bit = $true; }
}
$result
}
Voici un exemple de sortie :
D:\> Test-is64bit
FilePath FileType Is64Bit
-------- -------- -------
C:\Windows\notepad.exe x64 True
D:\> Test-is64bit 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
FilePath FileType Is64Bit
-------- -------- -------
C:\Program Files (x86)\Mozilla Firefox\firefox.exe x86 False
0 votes
Cette question est similaire Cependant, il faut un peu de travail pour le vérifier.
4 votes
@Guillaume : Les images exécutables ne sont pas des processus. Le gestionnaire de tâches n'affiche que les processus.
0 votes
Comment puis-je déterminer si une application que j'installe est 32 ou 64 bits ?
0 votes
C'est bizarre que le clic droit sur le fichier > Propriétés ne donne pas cette information.