Windows11环境下PowerShell无法正确加载SAP B1 DiAPI问题咨询
解决Win11下PowerShell加载SAP DI-API后无法识别类方法的问题
排查方向1:PowerShell位数与DI-API版本不匹配
- SAP Business One的DI-API分32位和64位版本,若你安装了两个版本,当前用64位PowerShell时,要确保加载对应64位的SDK文件。默认路径中,64位SDK通常在
C:\Program Files\SAP\SAP Business One\SAPBusinessOneSDK.dll,32位在C:\Program Files (x86)\SAP\SAP Business One\SAPBusinessOneSDK.dll,确认加载路径对应位数。 - 可切换到32位PowerShell(通过
%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe启动),加载32位SDK测试,排查位数兼容问题。
排查方向2:Win11文件阻止策略
- Win11默认会阻止外部复制/下载的文件(比如SDK安装包解压后的文件),右键点击
SAPBusinessOneSDK.dll选择属性,查看底部是否有“解除锁定”按钮,点击后再尝试加载。 - 也可通过PowerShell命令解除锁定:
Unblock-File -Path "C:\Program Files\SAP\SAP Business One\SAPBusinessOneSDK.dll"
排查方向3:DI-API组件注册问题
- 系统升级可能导致COM组件未正确注册,尝试重新注册对应组件:
- 以管理员身份启动CMD,64位系统执行:
regsvr32 "C:\Program Files\SAP\SAP Business One\SAPbouiCOM.dll" - 32位系统执行:
regsvr32 "C:\Program Files (x86)\SAP\SAP Business One\SAPbouiCOM.dll"
- 以管理员身份启动CMD,64位系统执行:
- 注册完成后重启PowerShell,再尝试加载SDK并调用类方法。
排查方向4:PowerShell安全设置
- Win11默认PowerShell执行策略较严格,可尝试设置为
RemoteSigned允许本地脚本运行:- 管理员身份启动PowerShell,执行:
Set-ExecutionPolicy RemoteSigned,按提示确认。
- 管理员身份启动PowerShell,执行:
- 同时检查是否在杀毒软件隔离模式等受保护环境中运行PowerShell,暂时关闭杀毒软件测试。
排查方向5:DI-API版本冲突与兼容性
- 安装两个DI-API版本可能引发冲突,卸载其中一个,保留与脚本兼容的版本,重新注册组件后测试。
- 确认当前DI-API版本是否支持Win11,旧版本可能未针对Win11优化,建议升级到最新兼容版本。
内容的提问来源于stack exchange,提问作者Phil
相关产品推荐
相关产品推荐

