1

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 で実行されている Web サイトで実行しようとすると、タスクが追加されません。また、IIS でホストされていないサイトでも動作します。

編集 I:サイトのアプリ プール ID が LocalSystem に設定されている場合に機能しますが、ネットワーク サービスとして機能する必要があります。

何が欠けている!!!

4

1 に答える 1

0

使用されるのは/uおよび/pではありません。リモートマシンからアクセスする場合は、/ruと/rpを指定し、管理者権限を持つユーザーに属している必要があります。コマンドは次のとおりです。

            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);
于 2013-02-27T10:33:27.377 に答える