1

我需要使用 ASP.net 和 C# (Windows Server 2003) 以编程方式创建 Windows 任务。当我使用以下代码时:

Process p = new Process();
p.StartInfo.FileName = "schtasks.exe";
p.StartInfo.Arguments = " /create /tn MyTask /tr notepad.exe /sc DAILY /st 10:00:00 /ru myUsername /rp myPassword ";
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.Start();
p.WaitForExit();

它成功创建任务,但任务不执行并说“无法启动”</p>

同样在日志文件中它说:“MyTask.job”(notepad.exe)10/9/2012 10:00 PM ** 错误 ** 为指定任务检索帐户信息的尝试失败;因此,该任务没有运行。发生错误,或者该任务不存在帐户信息。具体错误是:0x8004130f:在指示的任务的任务计划程序安全数据库中找不到帐户信息。

当我通过控制面板/计划任务并右键单击我的任务并再次设置我的密码时,我的任务将在下次成功运行。我能怎么做?另外,当我将代码更改为:

    Process p = new Process();
    p.StartInfo.FileName = "schtasks.exe";
    p.StartInfo.Arguments = " /create /tn MyTask /tr notepad.exe /sc DAILY /st 10:00:00 /s system /u myUsername /p myPassword ";
    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    p.Start();
    p.WaitForExit();

它使这个错误:

错误:在本地连接上传递用户凭据

4

1 回答 1

0

我宁愿使用托管的Task Scheduler Wrapper,IMO 它比盯着另一个进程更干净,在 ASP.NET 应用程序的情况下更是如此。

但是,如果您仍然喜欢使用 schtasks.exe,请参阅这个 SO 答案:

https://stackoverflow.com/a/702852/351383

于 2012-10-09T10:22:35.570 回答