Windows Docker容器中regsvr32注册DAO350.DLL失败(退出码5)求助
在Windows Docker容器中注册DAO350.DLL失败(退出码5)求助
在Windows Docker容器中执行regsvr32注册DAO350.DLL时失败,返回退出码5。使用的PowerShell命令如下:
$process = Start-Process "regsvr32" -ArgumentList "/s `"C:\Program Files (x86)\Common Files\Microsoft Shared\DAO\DAO350.DLL`"" -PassThru -Wait; $process.ExitCode
测试过的容器镜像包括:
- mcr.microsoft.com/windows:ltsc2019
- mcr.microsoft.com/windows/server:ltsc2020
已尝试的解决方法
已尝试以下方案但未解决问题:
- 修改注册表关闭UAC:
Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorAdmin -Value 0 Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorUser -Value 0 Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLUA -Value 0
- 使用
--isolation=hyperv参数以Hyper-V隔离模式运行容器; - 指定
--user "NT Authority\System"系统账户运行命令; - 将相关注册表节点及子节点权限赋予ContainerAdministrator;
- 用Dependency Walker检查DLL依赖项。
异常现象
奇怪的是,执行命令后注册表项HKEY_CLASSES_ROOT\TypeLib{00025E01-0000-0000-C000-000000000046}\4.0已正确添加,但进程仍返回退出码5。尝试用Add-Type加载该DLL时同样报错,疑似存在依赖缺失。
另外,在安装Microsoft Data Access Objects后执行regsvr32仍返回退出码5;使用RegsvrCli工具得到错误码0x8002801C,对应错误信息为“Error accessing the OLE registry”(访问OLE注册表出错)。原始错误日志显示注册失败,默认终止操作。目前已无其他思路,寻求解决方法。
内容的提问来源于stack exchange,提问作者el-aasi
相关产品推荐
相关产品推荐

