admin 管理员组文章数量: 887038
序:
先说说这个场景,其实我想的是不用远程连接服务器。通过其他活着的服务搞事情,理论上应该是所有的命令都可以执行的。我这里只是试验性的,可行性,所以我就做了个每次执行一条命令的。
一、先说说使用的执行器
这里没有使用第三方的jar,直接使用的是jdk提供的Process。先看我写的工具类吧,我这里因为服务器是windows,所以用的编码是gkb2312的。不过保留了支持多命令同时执行,没有验证。
工具类
public class ProcessUtil {
public static String runShell(String[] shStrArr) throws Exception {
StringBuffer sb = new StringBuffer();
sb.append("-----------result--------------");
sb.append("\n");
Process process = null;
//List<String> processList = new ArrayList<String>(); 多命令
try {
if(!ArrayUtils.isEmpty(shStrArr)) {
String sh = "";
for(int i = 0;i < shStrArr.length;i++) {
String tmpSh = shStrArr[i];
sh += tmpSh;
if(i != shStrArr.length - 1) {
sh += "&&"; //网上说多条命令使用这个符号连起来
}
}
process = Runtime.getRuntime().exec(sh);
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream(),"gb2312"));
String line = "";
while ((line = input.readLine()) != null) {
//processList.add(line);
sb.append(line);
sb.append("\n");
}
process.waitFor();
input.close();
}
} catch (Exception e) {
//e.printStackTrace();
sb.append(e.getCause().getMessage());
}
/*if(CollectionUtils.isNotEmpty(processList)) {
for (String line : processList) {
//System.out.println(line);
sb.append(line);
sb.append("\n");
}
}*/
return sb.toString();
}
二、ajax方法返回结果
因为初衷就是试验用活着的服务启其他服务,所以提供一个对外的Ajax接口。
ajax方法代码
@ResponseBody
@RequestMapping(value = "/shellComand" , method = RequestMethod.POST)
public void shellComand(@RequestParam("shellComand") String shellComand, HttpServletRequest request, HttpServletResponse response) throws IOException {
String rs = "";
try{
String[] shArr = new String[1];
shArr[0] = shellComand;
rs = ProcessUtil.runShell(shArr);
}catch(Exception e){
rs ="操作失败,请稍后重试!";
e.printStackTrace();
}
//返回数据对象
writeToPage(rs, response);
}
三、测试
这里用postman测试。
看到没,下面就是返回结果。另外要说的就是如果执行的是cmd/bat命令,那会显示一直请求,实际上已经执行了,这个ajax方法跟工具类方法大家可以自行优化下。
要执行cmd/bat命令,实际上就是cmd后面的参数改下,例如
cmd.exe /k start D:\application\push\zookeeper-3.4.14\bin\zkServer.cmd
亲测可行,linux基本也是这个逻辑,然后这个能也可以做坏事,你懂的。如果这个 接口不登录就可以调用,不做安全校验,那就是很微信的,毕竟可以执行好多命令的。下面补充可以执行的命令,补充内容来源网络,大家自己试。
cmd /c dir 是执行完dir命令后关闭命令窗口。
cmd /k dir 是执行完dir命令后不关闭命令窗口。
cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。
可以用cmd /?查看帮助信息。
★CMD命令★
1. gpedit.msc-----组策略
2. sndrec32-------录音机
3. Nslookup-------IP地址侦测器
4. explorer-------打开资源管理器
5. logoff---------注销命令
6. tsshutdn-------60秒倒计时关机命令
7. lusrmgr.msc----本机用户和组
8. services.msc---本地服务设置
9. oobe/msoobe /a----检查XP是否激活
10. notepad--------打开记事本
11. cleanmgr-------垃圾整理
12. net start messenger----开始信使服务
13. compmgmt.msc---计算机管理
14. net stop messenger-----停止信使服务
15. conf-----------启动netmeeting
16. dvdplay--------DVD播放器
17. charmap--------启动字符映射表
18. diskmgmt.msc---磁盘管理实用程序
19. calc-----------启动计算器
20. dfrg.msc-------磁盘碎片整理程序
21. chkdsk.exe-----Chkdsk磁盘检查
22. devmgmt.msc--- 设备管理器
23. regsvr32 /u *.dll----停止dll文件运行
24. drwtsn32------ 系统医生
25. rononce -p ----15秒关机
26. dxdiag---------检查DirectX信息
27. regedt32-------注册表编辑器
28. Msconfig.exe---系统配置实用程序
29. rsop.msc-------组策略结果集
30. mem.exe--------显示内存使用情况
31. regedit.exe----注册表
32. winchat--------XP自带局域网聊天
33. progman--------程序管理器
34. winmsd---------系统信息
35. perfmon.msc----计算机性能监测程序
36. winver---------检查Windows版本
37. sfc /scannow-----扫描错误并复原
38. taskmgr-----任务管理器(2000/xp/2003
39. winver---------检查Windows版本
40. wmimgmt.msc----打开windows管理体系结构(WMI)
41. wupdmgr--------windows更新程序
42. wscript--------windows脚本宿主设置
43. write----------写字板
44. winmsd---------系统信息
45. wiaacmgr-------扫描仪和照相机向导
46. winchat--------XP自带局域网聊天
47. mem.exe--------显示内存使用情况
48. Msconfig.exe---系统配置实用程序
49. mplayer2-------简易widnows media player
50. mspaint--------画图板
51. mstsc----------远程桌面连接
52. mplayer2-------媒体播放机
53. magnify--------放大镜实用程序
54. mmc------------打开控制台
55. mobsync--------同步命令
56. dxdiag---------检查DirectX信息
57. drwtsn32------ 系统医生
58. devmgmt.msc--- 设备管理器
59. dfrg.msc-------磁盘碎片整理程序
60. diskmgmt.msc---磁盘管理实用程序
61. dcomcnfg-------打开系统组件服务
62. ddeshare-------打开DDE共享设置
63. dvdplay--------DVD播放器
64. net stop messenger-----停止信使服务
65. net start messenger----开始信使服务
66. notepad--------打开记事本
67. nslookup-------网络管理的工具向导
68. ntbackup-------系统备份和还原
69. narrator-------屏幕“讲述人”
70. ntmsmgr.msc----移动存储管理器
71. ntmsoprq.msc---移动存储管理员操作请求
72. netstat -an----(TC)命令检查接口
73. syncapp--------创建一个公文包
74. sysedit--------系统配置编辑器
75. sigverif-------文件签名验证程序
76. sndrec32-------录音机
77. shrpubw--------创建共享文件夹
78. secpol.msc-----本地安全策略
79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
80. services.msc---本地服务设置
81. Sndvol32-------音量控制程序
82. sfc.exe--------系统文件检查器
83. sfc /scannow---windows文件保护
84. tsshutdn-------60秒倒计时关机命令
3. 84. tsshutdn-------60秒倒计时关机命令
85. tourstart------xp简介(安装完成后出现的漫游xp程序)
86. taskmgr--------任务管理器
87. eventvwr-------事件查看器
88. eudcedit-------造字程序
89. explorer-------打开资源管理器
90. packager-------对象包装程序
91. perfmon.msc----计算机性能监测程序
92. progman--------程序管理器
93. regedit.exe----注册表
94. rsop.msc-------组策略结果集
95. regedt32-------注册表编辑器
96. rononce -p ----15秒关机
97. regsvr32 /u *.dll----停止dll文件运行
98. regsvr32 /u zipfldr.dll------取消ZIP支持
99. cmd.exe--------CMD命令提示符
100. chkdsk.exe-----Chkdsk磁盘检查
101. certmgr.msc----证书管理实用程序
102. calc-----------启动计算器
103. charmap--------启动字符映射表
104. cliconfg-------SQL SERVER 客户端网络实用程序
105. Clipbrd--------剪贴板查看器
106. conf-----------启动netmeeting
107. compmgmt.msc---计算机管理
108. cleanmgr-------垃圾整理
109. ciadv.msc------索引服务程序
110. osk------------打开屏幕键盘
111. odbcad32-------ODBC数据源管理器
112. oobe/msoobe /a----检查XP是否激活
113. lusrmgr.msc----本机用户和组
114. logoff---------注销命令
115. iexpress-------木马捆绑工具,系统自带
116. Nslookup-------IP地址侦测器
117. fsmgmt.msc-----共享文件夹管理器
118. utilman--------辅助工具管理器
119. gpedit.msc-----组策略
120. explorer-------打开资源管理器
版权声明:本文标题:java调用执行windows命令 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726532325h979803.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论