Batch file VBScript在远程服务器上执行批处理文件
朋友们,请帮助我使用VBscript代码或批处理脚本,或任何可能在远程桌面上执行批处理文件的方法 我试了很多,但没有成功Batch file VBScript在远程服务器上执行批处理文件,batch-file,vbscript,automation,remote-server,jscript,Batch File,Vbscript,Automation,Remote Server,Jscript,朋友们,请帮助我使用VBscript代码或批处理脚本,或任何可能在远程桌面上执行批处理文件的方法 我试了很多,但没有成功 注意:不提供psexec或任何其他外部工具。我建议使用批处理文件。下载psexec,将其复制/粘贴到批处理文件中,并根据需要编辑变量。我在几个每晚的Control-M作业上使用了类似的过程 @ECHO OFF REM ***** Set path to PSEXEC.exe ***** SET PSEXEC="H:\Utilities\PsTools\psexec.exe"
注意:不提供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();
WMI;