Windows Server 2012 启动时运行服务失败

Windows Server 2012 启动时运行服务失败

我有一个装有 Windows Server 2012 R2 且具有所有最新更新的 EC2 实例。

我首先创建了一个服务,然后创建了一个任务来运行批处理文件以创建 Microsoft Word 报告(使用我的自定义 C# 程序)。我将任务设置为以最高权限运行并以管理员身份运行。虽然我的批处理文件确实被调用,但它失败了。我的批处理文件:

C:/WordGenerator.exe C:/report.docx > C:/word.log 2>&1

由于 exe 出现异常而出错:

Failure
System.NullReferenceException: Object reference not set to an instance of an object.
    at InteropFunctions.Save(String opath)
    at Reporting.Report.generate()
    at Reporting.WordGenerator.run()

如果我手动运行批处理文件,它就可以正常完成。

当 C# Word 互操作函数尝试打开已制作的报告进行进一步处理时,会发生上述异常(因此它实际上没有权限 - 无法找到它)。

  1. 到目前为止我了解到的是,Windows 可能仍以本地系统帐户运行所有服务,并动态登录到给定的用户(如果有)。

  2. 我还了解到服务可能在与常规管理员命令不同的会话/安全环境中运行。

有人能帮忙找到一个可行的解决方案吗?我需要在启动时以管理员身份运行批处理文件(无需登录)。我愿意模拟登录。由于这实际上不是以管理员身份运行的(我给出的只是一个简单的案例),我们遇到了其他问题。设置图片:

在此处输入图片描述

答案1

失败的原因在于 Windows 中的 DCOM。我将我的设置为以管理员身份运行(在“身份”部分)。

https://stackoverflow.com/a/11359745/234307

相关内容