You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

远程导入PowerShell模块失败:BadImageFormatException错误求助

解决远程导入MSOnline模块时的BadImageFormatException错误

问题描述

远程导入MSOnline模块时触发以下错误,但本地32位、64位PowerShell均可正常导入该模块:

Import-Module : Could not load file or assembly 'file:///C:\Users\CAC-Dev\Documents\WindowsPowerShell\Modules\MSOnline\1.1.183.66\Microsoft.Online.Administration.Automation.PSModule.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
At line:1 char:1

  • Import-Module MSOnline
  • CategoryInfo : InvalidOperation: (:) [Import-Module], BadImageFormatException
  • FullyQualifiedErrorId : FormatXmlUpdateException,Microsoft.PowerShell.Commands.ImportModuleCommand

核心原因

错误源于PowerShell远程会话架构与模块DLL架构不匹配:远程会话默认使用的32位/64位PowerShell版本,和MSOnline模块的编译架构不一致。

解决步骤

  1. 检查当前远程会话架构
    在远程会话中执行命令,确认当前会话的位数:

    [Environment]::Is64BitProcess
    

    返回True为64位会话,False为32位会话。

  2. 启动对应架构的远程会话

    • 若模块为64位,从本地发起远程连接时指定64位配置:
      Enter-PSSession -ComputerName <远程主机名> -ConfigurationName Microsoft.PowerShell64
      
    • 若模块为32位,指定32位配置:
      Enter-PSSession -ComputerName <远程主机名> -ConfigurationName Microsoft.PowerShell32
      

    进入对应架构的会话后,重新尝试导入模块即可。

  3. 验证模块DLL的架构
    若不确定模块位数,可在远程主机执行以下命令(需先安装PE模块:Install-Module -Name PE):

    Get-Item "C:\Users\CAC-Dev\Documents\WindowsPowerShell\Modules\MSOnline\1.1.183.66\Microsoft.Online.Administration.Automation.PSModule.dll" | Get-PEHeader | Select-Object MachineType
    
    • 返回IMAGE_FILE_MACHINE_AMD64表示64位模块
    • 返回IMAGE_FILE_MACHINE_I386表示32位模块
  4. 确认远程主机模块路径配置
    检查远程主机的模块路径是否包含目标模块目录,避免加载其他位置的错误版本:

    $env:PSModulePath
    

    若目标路径不在其中,可临时添加:

    $env:PSModulePath += ";C:\Users\CAC-Dev\Documents\WindowsPowerShell\Modules\"
    

内容的提问来源于stack exchange,提问作者Anantha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:50:27