我们可以使用 Java 在远程 Windows 桌面中执行 .bat 文件吗?批处理文件检查系统服务,如果关闭,则假定与本地计算机中的 Java 程序进行通信,然后应再次执行并运行服务,并再次与 Java 程序联系:
我的批处理文件当前只是检查服务是否启动,然后启动服务:
所以有两个问题:
- 我们可以通过我的 Java 代码远程执行批处理文件吗:
如果可以的话: - 该代码能否根据特定条件与批处理文件进行通信(这里我的条件是服务是否正在运行)?:
请查看下面的批处理文件:
@ECHO OFF
for /f "tokens=3" %%a in ('sc query "aspnet_state"^|find "STATE"') do (
if %%a==4 (goto running)
(sc start aspnet_state goto stopped)
)
:stopped
msg * stopped but now it is running
goto :eof
:running
msg * running
最佳答案
对于如何在远程 Windows 计算机上执行 .bat 文件,您有什么自己的想法吗?您是否考虑过将批处理文件传送到远程 Windows 计算机?考虑过获得运行这样的脚本所需的管理权限吗?来回通信过程中考虑过防火墙问题吗?
您正在设计的内容看起来类似于木马恶意软件。他们的工作方式 - 他们感染目标计算机(交付阶段),然后代理会不时与服务器计算机进行通信(通信阶段),以查看服务器计算机是否需要代理来完成任何工作。这是最可靠的,因为出站连接通常是允许的,而入站连接(服务器连接到代理)几乎总是被禁止。收到命令日志后,代理将执行命令(exec 阶段),然后将结果发布回服务器(comms back 阶段)。
类似这样的事情。
PS:Java 不是缩写词。
关于java - 登录远程 Windows 服务器并执行 .bat 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10384702/