Windows
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 互操作函式嘗試打開生成的報告以進行進一步處理時,會發生上述異常(因此它實際上沒有權限 - 找不到它)。
- 到目前為止,我了解到,Windows 仍可以將所有服務作為本地系統帳戶執行,並即時登錄給定使用者(如果有)。
- 我還了解到,服務可能像正常管理員命令一樣在不同的會話/安全上下文中執行。
任何人都可以幫助找到有效的解決方案嗎?我需要在啟動時以管理員身份執行批處理文件(無需登錄)。我願意去模擬登錄。由於這並沒有真正以管理員身份執行,我們遇到了其他問題(我給出的是一個簡單的案例)。設置圖片:
失敗的原因是 Windows 中的 DCOM。我將我的設置為以管理員身份執行(在身份中)部分。