如何在远程服务器上执行bat文件?

时间:2012-10-01 06:37:08

标签: c# batch-file

我有两台物理机器。第一台机器想要在第二台机器上执行bat文件。我在第二台服务器上创建一个共享位置,并尝试从第一台机器运行它,但它不起作用。 bat文件可以在本地计算机上正常运行。

这是bat文件中的代码示例。它只是一个创建文件的蝙蝠。

echo. 2>EmptyFile.txt

这是我用来执行bat文件的代码。

private static void ExecuteBatFile()
{
    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    System.Security.SecureString ssPassword = new System.Security.SecureString();

    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.FileName = @"\\my_remote_server\my_bat.bat";
    proc.StartInfo.Domain = "my_domain";
    proc.StartInfo.UserName = "my_username";

    Console.Write("Enter your password: ");
    string password = Console.ReadLine();

    for (int x = 0; x < password.Length; x++)
    {
        ssPassword.AppendChar(password[x]);
    }

    proc.StartInfo.Password = ssPassword;
    proc.Start();
}

我想知道如何在远程服务器上运行bat文件?

3 个答案:

答案 0 :(得分:3)

您可以使用PsExec在远程计算机上执行命令。我用它来执行批处理文件并将参数传递给它们。

答案 1 :(得分:2)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "psexec \\my_remote_server -u my_username -p " & password & " my_bat.bat"

或者,如果您需要指定域名:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "psexec \\my_remote_server -u my_domain\my_username -p " & password & " my_bat.bat"

psexec知道如何在远程计算机上执行程序的唯一方法。

答案 2 :(得分:1)

这可以通过命令提示符或bat文件轻松完成

wmic /node:MachineName> process call create "cmd.exe c:\Test\Test.bat"

如需帮助类型:

wmic /?