.net 将Office安装到Windows容器(servercore:ltsc2019)失败,错误代码为17002 错误消息

.net 将Office安装到Windows容器(servercore:ltsc2019)失败,错误代码为17002 错误消息,.net,azure,docker,containers,odt,.net,Azure,Docker,Containers,Odt,ODT(Office部署工具)在安装到Windows容器(服务器核心)时记录报告的错误:C2R客户端返回失败的错误代码,错误代码:17002 环境 安装桌面体验的Windows Server 2019(1809)中的行为。 ODT安装结果:成功 test-o365.ps1:成功 容器中的行为(mcr.microsoft.com/windows/servercore:ltsc2019) ODT安装结果:否定(C2R客户端返回失败错误代码,错误代码:17002) test-o365.ps1:

ODT(Office部署工具)在安装到Windows容器(服务器核心)时记录报告的错误:C2R客户端返回失败的错误代码,错误代码:17002

环境
  • 安装桌面体验的Windows Server 2019(1809)中的行为。
    • ODT安装结果:成功
    • test-o365.ps1:成功
  • 容器中的行为(mcr.microsoft.com/windows/servercore:ltsc2019)
    • ODT安装结果:否定(C2R客户端返回失败错误代码,错误代码:17002)
    • test-o365.ps1:阴性:HRESULT:0x80040154(REGDB_E_CLASSNOTREG)
Dockerfile startup.cmd o365.xml



  • 我已经为此挣扎了一段时间,终于让它起作用了。我发现17002错误的解决方案是在以交互方式运行docker映像的同时运行setup.exe/configure config.xml,然后提交该容器。这在windows:1809图像上对我有效

    完全写入

    我将下载的office文件分别复制到docker映像中,因为我在从docker文件内部下载时遇到问题。因此,我的文件夹
    Office
    与docker文件处于同一级别,其内容为
    setup.exe/download config.xml
    。然后,下面的docker文件构建一个基本映像。我运行了
    docker run-it{IMAGEID}powershell
    ,导航到C:\\odtsetup,并使用交互式控制台运行
    setup.exe/configure config.xml
    ,退出容器并运行

    docker stop {CONTAINERID}
    docker commit {CONTAINERID}` 
    
    我现在有一个安装了docker的基本windows服务器映像,可以在我的应用程序的dockerfile中使用它。如果我需要更新服务器映像或excel版本,我需要再次手动更新,但我很感谢它能正常工作

    DOCKERFILE

    FROM mcr.microsoft.com/windows:1809
    WORKDIR C:\\odtsetup
    ADD https://download.microsoft.com/download/2/7/A/27AF1BE6-DD20-4CB4-B154-EBAB8A7D4A7E/officedeploymenttool_13426-20308.exe odtsetup.exe
    RUN odtsetup.exe /quiet /norestart /extract:C:\\odtsetup
    ADD config.xml .
    ADD Office Office\\
    
    config.xml

    <Configuration>
      <Add OfficeClientEdition="64" Channel="PerpetualVL2019">
        <Product ID="O365ProPlusRetail">
          <Language ID="MatchOS" />
          <ExcludeApp ID="Access" />
          <ExcludeApp ID="Groove" />
          <ExcludeApp ID="Lync" />
          <ExcludeApp ID="OneDrive" />
          <ExcludeApp ID="OneNote" />
          <ExcludeApp ID="Outlook" />
          <ExcludeApp ID="PowerPoint" />
          <ExcludeApp ID="Publisher" />
          <ExcludeApp ID="Teams" />
          <ExcludeApp ID="Word" />
        </Product>
      </Add>
      <Updates Enabled="FALSE" />
      <Display Level="None" AcceptEULA="TRUE" />
      <Property Name="AUTOACTIVATE" Value="1"/>
      <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
      <Remove All="TRUE">
      </Remove>
    </Configuration>
    
    
    
    有更新吗?我也面临着同样的问题,以交互方式运行它对我也有好处。但我只对windows:1809基本映像有这个问题。对于windows:1903,在docker构建期间,安装工作正常。对于windows:2004,当我尝试在成功安装新对象-comobject Word.application后检查Word是否正常工作时,我获得“检索CLSID为组件的COM类工厂{000209FF-0000-0000-C000-0000000000 46}”由于以下错误而失败:80070520指定的登录会话不存在。它可能已被终止。(HRESULT的异常:0x80070520)。“实际上,我担心我必须添加一些其他内容:1809中的安装在交互模式下不成功,它不会抛出非零退出代码。如果您检查%temp%文件夹中的日志,您将看到它在94%停止,并在17002退出。C:\Program Files\Microsoft Office\Office16文件夹中的所有内容都已丢失(可能还会丢失更多?),因此,例如,无法通过KMS激活缺少的opps.vbs脚本。我不知道还缺少什么,Word、Excel和PowerPoint在某种程度上都可以工作。
    FROM mcr.microsoft.com/windows:1809
    WORKDIR C:\\odtsetup
    ADD https://download.microsoft.com/download/2/7/A/27AF1BE6-DD20-4CB4-B154-EBAB8A7D4A7E/officedeploymenttool_13426-20308.exe odtsetup.exe
    RUN odtsetup.exe /quiet /norestart /extract:C:\\odtsetup
    ADD config.xml .
    ADD Office Office\\
    
    <Configuration>
      <Add OfficeClientEdition="64" Channel="PerpetualVL2019">
        <Product ID="O365ProPlusRetail">
          <Language ID="MatchOS" />
          <ExcludeApp ID="Access" />
          <ExcludeApp ID="Groove" />
          <ExcludeApp ID="Lync" />
          <ExcludeApp ID="OneDrive" />
          <ExcludeApp ID="OneNote" />
          <ExcludeApp ID="Outlook" />
          <ExcludeApp ID="PowerPoint" />
          <ExcludeApp ID="Publisher" />
          <ExcludeApp ID="Teams" />
          <ExcludeApp ID="Word" />
        </Product>
      </Add>
      <Updates Enabled="FALSE" />
      <Display Level="None" AcceptEULA="TRUE" />
      <Property Name="AUTOACTIVATE" Value="1"/>
      <Property Name="FORCEAPPSHUTDOWN" Value="TRUE" />
      <Remove All="TRUE">
      </Remove>
    </Configuration>