如何在PowerShell中检查要安装的可执行文件是32位还是64位?

戈皮

如何在PowerShell中检查要安装的可执行文件是32位还是64位?

在powershell中是否有任何预定义功能可以做到这一点?

wOxxOm

有许多用于PowerShell的高级PE标头解析器。

这是一个仅读取“机器类型”字段的简单函数

function Is64bit([string]$path) {
    try {
        $stream = [IO.File]::OpenRead($path)
    } catch {
        throw "Cannot open file $path"
    }
    $reader = [IO.BinaryReader]$stream

    if ($reader.ReadChars(2) -join '' -ne 'MZ') { throw 'Not an executable' }

    $stream.position = 0x3C
    $stream.position = $reader.ReadUInt32() # go to COFF
    if ($reader.ReadUInt32() -ne 0x00004550) { throw 'Not a PE executable' }

    return $reader.ReadUInt16() -eq 0x8664 # machine type
}

用法:

Is64bit C:\Windows\explorer.exe

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果可执行文件不存在,如何安装32位或64位可执行文件?

如何在32位或64位配置中以编程方式运行ANY CPU .NET可执行文件?

如何安装build-essential:i386以在64位系统上编译32位可执行文件?

gfortran:在64位系统中编译32位可执行文件

在Windows / Linux上使用python3脚本检查可执行文件是32位还是64位

为什么我的64位可执行文件比32位可执行文件大3倍?

在64位可执行文件中执行64位计算

我如何在Windows PE 32位可执行文件中为代码洞穴腾出空间

在32位和64位计算机上的C / C ++可执行文件

无法在64位Ubuntu上运行32位动态可执行文件

在64位Debian Jessie上运行32位可执行文件

如何将64位和32位可执行文件绑定为一个?

在64位Linux中,是否可以在同一可执行文件中同时使用64位和32位指令?

如何使用mingw-w64编译和链接32位Windows可执行文件

为什么32位可执行文件不能在WoW64下运行?

无法以32位可执行文件(在64位操作系统上)以编程方式访问EFS文件

如何将 32 位共享库(.so 文件)链接到 32 位可执行文件?

在Ubuntu 13.10中运行32位可执行文件

C ++可执行文件无法在Windows 7中运行-64位不兼容

将函数调用添加到64位Visual C ++可执行文件中

在Ubuntu中哪里可以找到IntelliJ IDEA 64位可执行文件?

Ubuntu 12.02 32位打印机程序可执行文件无法在Ubuntu 14.04 64位中正常运行

如何检查安装的 wxPython 是 32 位还是 64 位?

如何检查已安装的Anaconda是32位还是64位?

Windows 说 64 位可执行文件是“不受支持的 16 位应用程序”

在 X86-64 Ubuntu 20.04 上,为什么我的 32 位可执行文件不是?

如何在Linux中检查执行文件是否为64位?

没有设置可执行位时,如何从CD运行可执行文件?

如何安装可执行文件