在系统帐户下运行 Windows 计划任务时出错

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

我想创建一个计划任务在“LOCAL SERVICE”帐户下运行。该任务将调用 C# 程序 (.NET 4.5)。为了进行 POC,我使 C# 程序保持简单 - 一个仅将文本写入控制台的程序。

taskscheduler 任务设置为在未登录时运行。我已确保 c# 可执行文件具有本地服务的权限(读取、读取和执行)。

当我运行计划任务时,我在事件日志中收到以下错误:

Task Scheduler failed to start instance "{e719a65e-d4fb-4515-9fc9-3635fe69e378}" of "\Testing LOCAL SERVICE"  task for user "NT AUTHORITY\LOCAL SERVICE" . Additional Data: Error Value: 2147942405.

但是,如果我通过指向 mspaint 或记事本等已知程序在本地服务下运行相同的任务,则该任务运行不会出现错误。我不确定 C# 程序的权限有什么特殊之处。

欣赏对此的一些想法。

c# scheduled-tasks .net-4.5
4个回答
3
投票

用于运行任务的用户必须对托管 .exe 文件的文件夹拥有正确的权限。 右键单击该文件夹>属性>安全>编辑>添加>并尝试添加“完全控制”权限。


0
投票

从这里:任务计划程序无法启动。附加数据:错误值:2147943726。这是什么意思?

更改密码会导致该错误。

最快的修复方法:

在任务计划程序中,打开计划作业属性,转到设置。

最后列出的选项应为“如果任务已在运行,则应用以下规则:”

选择“停止现有实例”,单击确定并退出。

这应该可以解决问题。


0
投票

更改用户时出现相同的错误代码“2147942405”。最后,我通过启用“以最高权限运行”解决了这个问题


0
投票

我在其他两个主题中找到了解决方案。 首先,授予您的帐户权限: 转至管理工具 -> 本地安全策略 -> 本地策略 -> 用户权限分配 -> 作为批处理作业登录。在此包含您的用户。

然后,更改任务中的帐户: 转到任务属性 在“常规”选项卡下,单击“更改用户或组...” 在“输入要选择的对象名称”字段中输入用户名 这将要求身份验证,提供您的凭据

对我有用!

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