【问题标题】:c# : Create windows scheduled task as a different userc#:以不同用户身份创建windows计划任务
【发布时间】:2019-07-11 19:01:00
【问题描述】:

我正在使用内置 TaskService 和 TaskDefinition 库从 c# 动态创建 Windows 计划任务。

但是对于其中一些,我们需要创建然后以不同的用户(本地服务或网络服务)运行。由于任务是动态创建和删除的,我们无法手动编辑所有任务来更改用户。我们需要通过代码来实现。 有可能吗?

我尝试了以下设置:

TaskDefinition.Principal.Id = "NETWORK SERVICE";
TaskDefinition.Principal.LogonType = TaskLogonType.ServiceAccount;

但这在创建任务时给了我非常描述性的错误:

System.Runtime.InteropServices.COMException: '(52,4):Task:'

如果没有这两行,它可以工作,但会将它们创建为登录用户。

【问题讨论】:

  • 您是否尝试将 Principal 的 UserId 属性设置为 NT AUTHORITY\NETWORK SERVICE
  • 感谢您的建议。我现在已经尝试过了,它给出了一个错误:'System.Runtime.InteropServices.COMException: '(18,8):UserId:' 如果没有域,它会给出一个 'E_ACCESSDENIED' 错误。
  • 只是为了确定:你是否已经逃脱了反斜杠,例如TaskDefinition.Principal.UserId = "NT AUTHORITY\\NETWORK SERVICE";?
  • 是的,我有。如果没有转义字符,它也会产生编译错误。

标签: c# scheduled-tasks taskservice


【解决方案1】:

我已经使用了一些任务计划程序,并复制了您的问题。我相信我已经找到了一些东西,也许他们可以提供帮助。

1. 首先,如果您使用服务帐户在调试器中创建任务,您需要确保您的 Visual Studio 或其他 IDE 以管理员身份启动,以确保您拥有执行此操作的正确权限任务。

2.我不确定您是否稍后在代码中执行此操作,但为了使任务保存并作为网络服务运行,我必须在两者中将 Network Service 标识为 NT AUTHORITY\\NETWORKSERVICE RegisterTaskDefinition方法的原理及说明:

TaskService tService = new TaskService();
TaskDefinition tDefinition = tService.NewTask();
tDefinition.Principal.Id = "NT AUTHORITY\\NETWORKSERVICE";
tDefinition.Principal.LogonType = TaskLogonType.ServiceAccount;
tDefinition.RegistrationInfo.Description = "Testing";

tDefinition.Triggers.Add(new DailyTrigger {DaysInterval = 2});
tDefinition.Actions.Add(new ExecAction("notepad.exe"));
tService.RootFolder.RegisterTaskDefinition(@"Test", tDefinition, TaskCreation.CreateOrUpdate, 
                                            "NT AUTHORITY\\NETWORKSERVICE", null, 
                                            TaskLogonType.ServiceAccount);

我使用上面的代码制作了一个测试任务,该任务成功添加到我的调度程序中,名称为Network Service,如下所示:

我猜以上几点可能会阻止添加任务,希望对您有所帮助

【讨论】:

    猜你喜欢
    • 2018-03-22
    • 2016-12-08
    • 1970-01-01
    • 2021-03-31
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多