VBScript在远程服务器上执行批处理文件

时间:2014-01-27 16:07:23

标签: batch-file vbscript automation remote-server jscript

朋友们请帮助我使用VBscript代码或批处理脚本或在远程桌面上执行批处理文件的任何可能方式。

我尝试了很多但是没有成功。

注意:未提供psexec或任何其他外部工具。

2 个答案:

答案 0 :(得分:1)

我建议使用psexec的批处理文件。下载psexec,将其复制/粘贴到批处理文件中,并根据需要编辑变量。我在几个夜间的Control-M工作中使用了类似的过程。

@ECHO OFF

REM ***** Set path to PSEXEC.exe *****
SET PSEXEC="H:\Utilities\PsTools\psexec.exe"

REM ***** Set path to batch file on remote server (unc paths work)
SET BATCHFILE="C:\path\to\batch.bat"

REM ***** Set server to execute batch on
SET REMOTESERVER="\\testserver"

REM ***** PRODUCTION SERVERS *****

ECHO Executing %BATCHFILE% on %REMOTESERVER%
%PSEXEC% %REMOTESERVER% %BATCHFILE%

答案 1 :(得分:0)

我已通过使用Windows Scheduler调度批处理文件来实现此解决方案,并触发Windows Scheduler使用以下代码运行批处理文件

 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();