在另一台服务器上以管理员身份运行批处理文件

时间:2018-05-14 17:11:35

标签: c# batch-file server admin runas

我正在尝试使用放置在不同服务器上的C#脚本运行批处理文件。 我的C#脚本位于一个生产服务器X上批处理文件位于另一台生产服务器Y上。

我的C#脚本使用我已添加到服务器Y的服务帐户以及管理员放置在任务计划程序上,并且我已授予批处理文件的安全权限。

我的代码中是否有任何遗漏:

private static void runE(string file)//function to run the E as admin
    {
        Process proc = null;
        try
        {
            string batDir = string.Format(@"\\ServerY_IP\d$\E\D\");
            proc = new Process();
            proc.StartInfo.WorkingDirectory = batDir;
            proc.StartInfo.FileName = file;
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.Verb = @"runas";
            proc.StartInfo.Domain = "ServerY_IP";
            proc.StartInfo.LoadUserProfile = true;
            proc.Start();
            Console.WriteLine(file + " is being executed");
            WriteLog(file + " is being executed");
            proc.WaitForExit(); //wait forever
            Thread.Sleep(TimeSpan.FromMinutes(30));
            Console.WriteLine(file + " file completed.");
            WriteLog(file + " file completed.");
        }
        catch (Exception ex)
        {
            WriteLog("Process finished with Errors" + ex.Message);
        }
     }

我正在通过" kick.bat"将file作为参数值。这个文件是我需要以管理员身份运行的文件。 为了解决这个问题,我还在同一个文件夹中创建了另一个批处理文件,它运行但是这个" kick.bat"没有运行。

我通过在测试中运行它找到了它的可能问题。在测试中运行任务后,我收到弹出的窗口提示我说是或否以管理员身份运行该文件。如何在C#脚本中为提示嵌入yes?

0 个答案:

没有答案