我在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但我需要它作为网络服务时才能正常工作。
缺少什么!!!
答案 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);