在IIS上运行的ASP站点中执行schtasks

时间:2013-02-25 12:45:31

标签: c# iis schtasks.exe

我在IIS上运行了一个站点。我需要从网站运行schtasks.exe。我尝试了以下

Process proc = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = @"C:\Windows\System32\schtasks.exe";
proc.StartInfo.Arguments = "/create /tn mylbat /tr MYLExe.exe /s xxx /u xxx\xxx /p xxx /sc daily;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
proc.Start();
proc.WaitForExit();

在cmd上执行的命令工作正常,但是当我尝试在IIS上运行的网站上执行它时,没有添加任务。此外,它还在非IIS上托管的网站上工作。

编辑I:当网站的应用程序池标识设置为LocalSystem但我需要它作为网络服务时才能正常工作。

缺少什么!!!

1 个答案:

答案 0 :(得分:0)

不使用/ u和/ p。从远程计算机访问时,它应指定/ ru和/ rp,它们应属于具有admin权限的用户。命令如下:

            startInfo.UseShellExecute = false;
            startInfo.WorkingDirectory = @"C:\Windows\System32";
            startInfo.FileName = @"C:\Windows\System32\schtasks.exe";
            startInfo.Arguments = "/create /tn <taskname> /tr <theEXE> /ru <user> /rp <password> /sc daily ";
            startInfo.RedirectStandardError = true;
            startInfo.RedirectStandardOutput = true;
            startInfo.CreateNoWindow = false;
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;
            proc = Process.Start(startInfo);