无法通过 Ansible 远程创建 Word.Application COM 对象

问题描述 投票:0回答:1

我有一个在 Windows 10 主机上运行 PowerShell 脚本的 Ansible 任务。在此 PowerShell 脚本中,它打开 Microsoft Word 文档,然后将其导出为 PDF。

脚本尝试创建

Word.Application
COM 对象失败:

$word = New-Object -COMObject Word.Application

它抛出这个错误:

由于以下错误,检索 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80080005 服务器执行失败(HRESULT 异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))。

当我登录并从控制台手动运行它时,这才有效。

我发现this post有同样的错误,并尝试了建议的解决方案中的步骤(打开

dcomcnfg
并打开COM安全中的所有访问、启动和激活权限),但我仍然收到相同的错误.

有谁知道我如何才能实现此功能或者是否有更好的方法通过 PowerShell 将 Word 文档转换为 PDF 而不使用 COM?

powershell ansible com
1个回答
0
投票

参见:PowerShell 脚本在手动运行时可以工作,但在 Ansible 启动时无法创建 word.application 对象?

Word.Application
COM 对象需要交互式会话才能正常运行,这在通过 Ansible 远程运行脚本时可能不可用。调整 Ansible playbook 中的登录类型参数:

- name: Running my-script.ps1
  win_shell: |
    D:\\Repos\\my-repo\\my-script.ps1
  vars:
    ansible_become: true
    ansible_become_method: runas
    ansible_become_user: '{{ ansible_user }}'
    ansible_become_password: '{{ ansible_password }}'
    ansible_become_flags: logon_type=new_credentials logon_flags=netcredentials_only

试试这个,如果有帮助请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.