使用C#本身在远程服务器上执行批处理文件

时间:2019-05-22 13:51:31

标签: c#

我需要在远程服务器本身上执行批处理文件。我使用下面的代码作为示例,但是批处理文件正在应用程序服务器本身而不是远程服务器上执行。如果我需要使用远程服务器上的批处理文件创建日志文件,则会引发错误,指出找不到文件路径。感谢您的事先帮助

Number of teams with both home and away broadcasts: 11
Week  1: broadcast team  1 at team 10
Week  2: broadcast team 10 at team 11
Week  3: broadcast team  5 at team  8
Week  4: broadcast team  8 at team  4
Week  5: broadcast team  6 at team  9
Week  6: broadcast team 11 at team  3
Week  7: broadcast team  4 at team  2
Week  8: broadcast team  9 at team  7
Week  9: broadcast team  7 at team  1
Week 10: broadcast team  2 at team  5
Week 11: broadcast team  3 at team  6

1 个答案:

答案 0 :(得分:0)

在远程服务器本身上执行批处理文件的解决方法是执行Windows Scheduler作业,并通过一些c#代码触发该作业。请找到以下代码来实现

 string job = @"""\JobLocation\JobName""";
            string server = @"XXXXXXXXXXX";
            string user = @"Domian\XXXXXX";
            string pwd = @"XXXXXXXXXXXXXXX";
            string line = @" /run /tn " + job + " /s " + server + " /u " + user + "  /p " + pwd;

            var process = new Process();
            var startInfo = new ProcessStartInfo
            {
                CreateNoWindow = true,
                FileName = @"C:\WINDOWS\SYSTEM32\schtasks.exe",
                WindowStyle = ProcessWindowStyle.Hidden,
                Arguments = line,
                //WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory,
                UseShellExecute = false,
                RedirectStandardError = true,
                RedirectStandardOutput = true
            };
            process.StartInfo = startInfo;
            process.Start();
            process.WaitForExit();
            string output = process.StandardOutput.ReadLine();
            string errors = process.StandardError.ReadLine();code here
相关问题