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,如需转载请自行联系原作者
相关文章
|
5月前
|
XML 存储 搜索推荐
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
98 7
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
|
5月前
|
Ubuntu 数据库 虚拟化
Windows 环境下 Odoo 安装保姆级教程
本教程详细介绍了在 Windows 系统上通过虚拟机部署 Odoo 的完整流程。首先确认硬件需求,确保 CPU、内存和磁盘空间满足最低配置;接着安装 VMware Workstation Pro 并创建 Ubuntu 虚拟机,配置桥接网络以实现主机与虚拟机的通信;随后借助微聚云快速安装预配置好的 Odoo 环境,简化复杂环境搭建;最后通过浏览器访问虚拟机 IP,完成 Odoo 数据库初始化及基础设置。整个过程清晰易懂,适合新手快速上手 Odoo 部署。
679 4
|
6月前
|
存储 运维 监控
提升Windows Server环境安全性:ADAudit Plus的五大关键优势
在Windows Server环境中,内置的安全审计工具虽有用,但存在专业门槛高、耗时及功能缺失等问题。第三方工具ADAudit Plus应运而生,其五大优势包括:日志聚合、关键活动检测、定制化报告、灵活安全配置和长期日志保留,有效提升系统监控与合规能力。选择ADAudit Plus,助力企业更高效应对审计挑战,强化安全性。
152 2
|
9月前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
10月前
|
Dart 搜索推荐 IDE
Windows下Zed编辑器配置Dart环境
本文介绍了Dart编程语言及其主要框架Flutter的优势,并推荐使用轻量级编辑器Zed进行Dart开发。详细步骤包括Dart环境的安装与配置,Zed编辑器的安装与个性化设置,以及如何在Zed中编写并运行Dart的HelloWorld程序。通过自定义任务实现Dart文件的快速运行,提高了开发效率。
|
11月前
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
11月前
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
153 2
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
12月前
|
Python Windows
python之windows脚本启动bat
python之windows脚本启动bat
|
11月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
441 0