【问题标题】:Execute a batch file on a remote PC using a batch file on local PC使用本地 PC 上的批处理文件在远程 PC 上执行批处理文件
【发布时间】:2015-09-09 14:35:15
【问题描述】:

我想执行一个批处理文件

D:\apache-tomcat-6.0.20\apache-tomcat-7.0.30\bin\shutdown.bat

在我的服务器上inidsoasrv01

我应该如何编写我的.bat 文件?

【问题讨论】:

标签: batch-file cmd


【解决方案1】:

使用微软的远程命令执行工具:PsExec

如果远程主机上没有您的 bat 文件,请先复制它。例如:

copy D:\apache-tomcat-6.0.20\apache-tomcat-7.0.30\bin\shutdown.bat \\RemoteServerNameOrIP\d$\apache-tomcat-6.0.20\apache-tomcat-7.0.30\bin\

然后执行:

psexec \\RemoteServerNameOrIP d:\apache-tomcat-6.0.20\apache-tomcat-7.0.30\bin\shutdown.bat

注意:psexec 的文件路径是远程服务器上的文件路径,而不是您本地的。

【讨论】:

  • 为什么这不是最佳答案?!谢谢。
  • 如何从自己的目录运行bat文件而不是从C:\Windows\system32运行?
  • @FurqanSafdar 我会尝试在开头插入一个 bat 文件 cd 命令,例如d: & cd d:\路径\
【解决方案2】:

您可以使用 WMIC 或 SCHTASKS(这意味着不需要第三方软件):

  1. SCHTASKS:

    SCHTASKS /s remote_machine /U username /P password /create /tn "On demand demo" /tr "C:\some.bat" /sc ONCE /sd 01/01/1910 /st 00:00 SCHTASKS /s remote_machine /U 用户名 /P 密码 /run /TN "按需演示"

  2. WMIC(wmic会返回启动进程的pid)

    WMIC /NODE:"remote_machine" /user:user /password:password 进程调用 create "c:\some.bat","c:\exec_dir"

【讨论】:

  • 我也参与了我收到的类似类型的任务错误:描述 = 访问被拒绝。 ON 从 PC 'A' 命令行执行以下命令以在 PC 'B' (100-SER) 上执行批处理文件 WMIC /user:100 /password:nspl /node:"100-SER" process call create "cmd .exe /c c:\erp\qrgen.bat"
  • @Azad - 尝试以管理员身份执行这些操作。
  • @npocmaka 同样的问题
  • 正确的命令是:WMIC /NODE:"remote_machine" /user:user /password:password process call create "c:\some.bat","c:\exec_dir"
【解决方案3】:

如果你在同一个WORKGROUP shutdown.exe /s /m \\<target-computer-name>应该足够shutdown /?更多,否则你需要软件来连接和控制目标服务器。

更新:

这里的shutdown.bat似乎是用来关闭apache-tomcat的。

所以,您可能对psexec PuTTY: A Free Telnet/SSH Client 感兴趣

原生解决方案可能是wmic

例子:

wmic /node:<target-computer-name> process call create "cmd.exe c:\\somefolder\\batch.bat"

在你的例子中应该是:

wmic /node:inidsoasrv01 process call create ^
    "cmd.exe D:\\apache-tomcat-6.0.20\\apache-tomcat-7.0.30\\bin\\shutdown.bat"

wmic /?wmic /node /? 了解更多

【讨论】:

    【解决方案4】:

    虽然我不建议这样做。

    但是如果目标机器启用了远程关闭并且在同一个工作组中,您可以使用关闭作为客户端。

    例子:

    shutdown.exe /s /m \\<target-computer-name> /t 00
    

    &lt;target-computer-name&gt;替换为目标机器的URI,

    否则,如果您想通过 Apache 触发此操作,则需要将批处理脚本配置为 CGI 脚本,方法是将 AddHandler cgi-script .batOptions +ExecCGI 放入本地 .htaccess 文件或主配置中你的 Apache 安装。

    然后您可以从浏览器中调用包含shutdown.exe 命令的.bat 文件。

    【讨论】:

    • 这并没有解决如何从单独的计算机运行远程批处理文件的整体问题。
    • Tomcat 的 shutdown.bat 文件用于正确关闭 Tomcat,而不是整个服务器。
    猜你喜欢
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多