【发布时间】:2014-01-27 16:07:22
【问题描述】:
请朋友们帮我提供一个 VBscript 代码或一个批处理脚本或任何在远程桌面上执行批处理文件的可能方式。
我尝试了很多,但没有成功。
注意:不提供 psexec 或任何其他外部工具。
【问题讨论】:
标签: batch-file vbscript automation remote-server jscript
请朋友们帮我提供一个 VBscript 代码或一个批处理脚本或任何在远程桌面上执行批处理文件的可能方式。
我尝试了很多,但没有成功。
注意:不提供 psexec 或任何其他外部工具。
【问题讨论】:
标签: batch-file vbscript automation remote-server jscript
我建议使用带有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%
【讨论】:
我已经通过使用 windows 调度程序调度批处理文件来实现此解决方案,并且我触发 windows 调度程序使用以下代码运行批处理文件
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();
【讨论】: