因为老板一个电话,我的国庆节就没了。。。。,老板要我写个东西,能批量执行500台windows的命令并返回结果,虽然完成以后是非常的简单,但是因为我走了很多弯路,一开始想用powershell来写,后来又改成VBS的,最后还是用了最简单的CMD的命令的来完成,代码如下:
@echo off
set user=test
for /f "tokens=1,2" %%i in (iplist.txt) do (
echo -------%date%--%time%------------%%i------------------- >> %%i.txt
wmic /node:%%i /user:%user% /password:%%j process call create "sc sdset PatrolAgent D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;LCRPWP;;;AU)(A;;CCLCSWLOCRRC;;;IU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)" >> %%i.txt 2>&1
if not errorlevel 0 echo %%i ERROR!!! >> error.log
)
echo on
你妹的,就这么几行命令,竟然搞了3天时间。。。。,其实很简单,就是调用WMI远程执行一个sc的命令,赋予patrolAgent这个服务相关的权限,IP和密码的信息从iplist.txt 这个文件里提取,iplist.txt 的格式是每行一个主机的信息,列之间用空格或制表符分隔,好了,贴出来给大家共享,不要像我一样浪费3天的假期。。。。。