Windows环境下并发处理远程脚本

简介:
[背景]公司最近上了百余台服务器,为了给cacti监控而开启了snmp,要更改snmp的共同体和可以接受来自那些机子的SNMP包.如果手工加的话,效率可想而知.所以就想到了用脚本WMI(snmp.vbs),但是在用psexec远程执行这个脚本也是很慢,因为它们是顺序性的,所以处理效率还是慢.所以,想到了批处理的并发(pro.bat和psexec.bat),这样不是更好嘛!
[过程]
snmp.vbs
const HKEY_LOCAL_MACHINE = &H80000002   
strComputer = "."
IP1="x.x.x.x"
IP2="x.x.x.x"
COMM="xxxx"
Set objRegistry=GetObject("winmgmts://"&strComputer&"/root/default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers"
strValueName = "1"
objRegistry.Delet.ue HKEY_LOCAL_MACHINE, strKeyPath, strValueName
dwValue1=IP1
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dwValue1
dwValue2=IP2
strValueName1 = "2"
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName1, dwValue2
strKeyPath1 = "SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities"
strValueName = "public"
objRegistry.Delet.ue HKEY_LOCAL_MACHINE, strKeyPath1, strValueName
dwValue3="4"
strValueName1 = COMM
objRegistry.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath1, strValueName1, dwValue3

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name='SNMP'")
For each objService in colServiceList
errReturn = objService.StartService()
Next
W..Sleep 20000
Set colServiceList = objWMIService.ExecQuery("Associators of " _
& "{Win32_Service.Name='SNMP'} Where " _
& "AssocClass=Win32_DependentService " & "Role=Dependent" )
For each objService in colServiceList
objService.StartService()
Next
 
pro.bat
for /l %%i in (1,1,254) do (start /min cmd /c psexec.bat x.x.x.%%i)
psexec.bat
psexec  \\%1 -u admin -p pass cmd /c c:/snmp.vbs
if %errorlevel%==0 (echo %1 OK>>log.txt) else (echo %1 fail>>log.txt)
[结果]
     这样在客户端只要执行pro.bat,在客户端就会打开254个cmd端口,就像个多进程样去执行snmp.vbs.至于结果可以看log.txt文件.


本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/112443,如需转载请自行联系原作者
相关文章
|
1月前
|
Java 开发工具 Windows
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
|
3月前
|
Ubuntu 网络协议 Linux
如何在无公网IP环境使用Windows远程桌面Ubuntu
如何在无公网IP环境使用Windows远程桌面Ubuntu
58 0
|
3月前
|
Windows
windows环境下根据端口号查询进程编号并杀掉此进程
windows环境下根据端口号查询进程编号并杀掉此进程
|
1月前
|
Unix 编译器 开发者
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之windows环境编译
|
3月前
|
应用服务中间件 Linux 网络安全
windows+linux环境下nginx部署环境
windows+linux环境下nginx部署环境
|
3月前
|
NoSQL Redis Windows
windows环境启动redis-server.exe出现闪退问题解决方案(亲测有效)
windows环境启动redis-server.exe出现闪退问题解决方案(亲测有效)
207 0
|
6天前
|
Windows
【Windows】 手写脚本更快编辑hosts文件
【Windows】 手写脚本更快编辑hosts文件
9 0
|
1月前
|
存储 JavaScript 开发工具
Windows 10环境下Git安装之简易指南
该指南教小白在Windows 10上安装Git,介绍Git设置的基础知识,为你的开发项目做准备!
|
2月前
|
Windows 网络安全
Windows【工具 05】使用freeSSHd搭建sftp环境(安装+配置+避坑)freeSSHd version 1.3.1安装包网盘分享
【2月更文挑战第2天】使用freeSSHd搭建sftp环境(安装+配置+避坑)freeSSHd version 1.3.1安装包网盘分享
341 0
Windows【工具 05】使用freeSSHd搭建sftp环境(安装+配置+避坑)freeSSHd version 1.3.1安装包网盘分享
|
2月前
|
消息中间件 Kafka Apache
【Kafka专栏】windows搭建Kafka环境 & 详细教程(01)
【Kafka专栏】windows搭建Kafka环境 & 详细教程(01)