0

我有两台物理机。第一台机器想在第二台机器上执行一个 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 文件?

4

3 回答 3

3

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

于 2012-10-01T06:42:26.990 回答
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是我知道如何在远程计算机上执行程序的唯一方法。

于 2012-10-02T05:04:55.357 回答
1

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

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

对于帮助类型:

wmic /?
于 2015-10-21T13:35:13.707 回答