vbs脚本——检测U盘插入拨出并通过邮件报警
自己复制粘贴和修改的,很多做网管的朋友应该会用得上,里面锁定操作的小程序是自己用VB写的,很不完善,就不拿出来献丑了~~~ 报警邮件内容包括电脑的IP、计算机名、域用户名'############################################################### ' 检测U盘接入和拨出行为并触发邮件报警 ' 同时可以锁定计算机操作,产生卡机现像,拨出U盘或15分钟后解除 '############################################################### OnErrorResumeNext '获取当前IP、计算机名、登录用户 strIPPattern = "((192\.168|172\.([1][6-9]|[2]\d|3[01]))(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}|10(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){3})" Set objNet = createobject("Wscript.Network") Set objRegExp = New RegExp objRegExp.Pattern = strIPPattern Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set IPConfigSet = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE") For Each IPConfig in IPConfigSet If Not IsNull(IPConfig.IPAddress) Then For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress) If InStr(IPConfig.Caption(i),"VMware Network") = 0 And InStr(IPConfig.Caption(i),"Microsoft") = 0 Then If InStr(IPConfig.Caption(i),"VirtualBox") = 0 And InStr(IPConfig.Caption(i),"TAP") = 0 Then If InStr(IPConfig.Caption(i),"169.254") = 0 And InStr(IPConfig.Caption(i),"0.0.0.0") = 0 Then If objRegExp.Test(IPConfig.IPAddress(i)) = True Then IP = IPConfig.IPAddress(i) End If End If End If End If Next End If Next Hostname = objNet.ComputerName Set oADSystemInfo = CreateObject("ADSystemInfo") strUserDN = Replace(oADSystemInfo.UserName,"/","\/") Set objUser = GetObject("LDAP://" & strUserDN) User = Mid(objUser.Name,4)Constf="***@163.com" '发件人邮箱 Constsmtp="smtp.163.com" 'SMTP地址 Constu="***@163.com" '发件人发件账号 Constp="***" '发件人发件密码 Constt="***@abc.com;***@abc.com" '收件人邮箱,分号隔开 Constm_in="检测到U盘接入" '邮件主题 Constm_out="检测到U盘拨出" '邮件主题 'Constj="附件地址"'需要发送附件则反注释掉此行 DimobjShell,objWMIService,msg msg="IP地址:"&IP&vbCrLf&"计算机名:"&Hostname&vbCrLf&"用户名:"&User '邮件内容 NameSpace="http://schemas.microsoft.com/cdo/configuration/" SetobjShell=CreateObject("Wscript.Shell") Setfs=wscript.createobject("scripting.filesystemobject") setwfolder=fs.getspecialfolder(0)'将锁定操作.exe从共享复制到d盘根目录下,默认关闭了 'fs.copyfile"\\192.168.0.8\工具软件\锁定操作.exe","d:\",true'每10秒循环检测U盘接入 strComputer="." SetobjWMIService=GetObject("winmgmts:\\"&strComputer&"\root\cimv2") SetcolEvents=objWMIService.ExecNotificationQuery_ ("Select*From__InstanceOperationEventWithin10Where"_ &"TargetInstanceisa'Win32_LogicalDisk'")'接入与拨出都会发送邮件 DoWhileTrue SetobjEvent=colEvents.NextEvent IfobjEvent.TargetInstance.DriveType=2Then SelectCaseobjEvent.Path_.Class Case"__InstanceCreationEvent" SetEmail=createObject("CDO.Message") Email.From=f Email.To=t Email.Subject=m_in Email.Textbody=msg 'Email.AddAttachmentj'需要发送附件则反注释掉此行 WithEmail.Configuration.Fields .Item(NameSpace&"sendusing")=2 .Item(NameSpace&"smtpserver")=smtp .Item(NameSpace&"smtpserverport")=25 .Item(NameSpace&"smtpauthenticate")=1 .Item(NameSpace&"sendusername")=u .Item(NameSpace&"sendpassword")=p .update EndWith Email.Send'运行d:\锁定操作.exe,默认关闭 'objShell.Run"d:\锁定操作.exe"Case"__InstanceDeletionEvent" SetEmail=createObject("CDO.Message") Email.From=f Email.To=t Email.Subject=m_out Email.Textbody=msg 'Email.AddAttachmentj'需要发送附件则反注释掉此行 WithEmail.Configuration.Fields .Item(NameSpace&"sendusing")=2 .Item(NameSpace&"smtpserver")=smtp .Item(NameSpace&"smtpserverport")=25 .Item(NameSpace&"smtpauthenticate")=1 .Item(NameSpace&"sendusername")=u .Item(NameSpace&"sendpassword")=p .update EndWith Email.Send'拨出U盘后杀死锁定操作.exe进程,恢复电脑操作 SetobjWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") SetarrProcesses=objWMIService.ExecQuery("select*fromwin32_processwhereName='锁定操作.exe'") ForEachproccessInarrProcesses proccess.Terminate0 NextEndSelect EndIf Loop
转载于:https://blog.51cto.com/willron/1561119
vbs脚本——检测U盘插入拨出并通过邮件报警相关推荐
- Qt检测U盘插入拔出Demo
要做这个,要先知道Qt的QAbstractNativeEventFilter类,虚函数nativeEventFilter.这个类的主要作用是捕获全局windows消息. 先看一下效果: 基本注意以下两 ...
- Windows下使用Qt检测U盘插入和拔出的示例Demo程序
本文转载自Qt检测U盘插入拔出Demo 要做这个,要先知道Qt的QAbstractNativeEventFilter类,虚函数nativeEventFilter.这个类的主要作用是捕获全局window ...
- WINDOWS检测U盘插入,拔出
检测U盘的插入或拔出状态,然后根据状态做出相关操作. 检测U盘是否被插入是通过监听WM_DEVICECHANGE消息来实现的. 判断-U盘拔出和插入-获取它盘符 2010-05-04 10:59 加入 ...
- WPF中检测U盘插入、拔出 实例
类代码: /// <summary>/// 声明一个委托,用于代理一系列自定义方法/// </summary>public delegate void FlashDiskDel ...
- 批处理 检测U盘插入并自动备份文件
复制如下代码,在文本文档中以ANSI编码另存,改后缀为bat,运行即可 :start @echo off ::若检测到U盘插入,则自动拷贝文件到U盘 ::pt为自动备份的目录路径 setlocal e ...
- qt启动后检测u盘插入和拔掉
工作中,需要检测u盘的插入和拔掉.其余逻辑可以简化. 查了半天,感谢@q62290798 链接在 https://blog.csdn.net/q62290798/article/details/115 ...
- Python检测U盘插入、自动复制文件并写入新文件
技术要点: 1)如何检测有U盘插入: 2)如何复制目录树: 3)如果U盘可写,如何写入新文件. 思考一下,然后到文末查看参考代码. ----------相关阅读---------- 教学课件 1900 ...
- QT:检测U盘插入和拔出(windows)
1.先检测驱动器: 2.可以使用GetDriveType函数来获取驱动器的类型,以下是函数的链接: https://docs.microsoft.com/zh-cn/windows/win32/api ...
- 检测U盘插入并自动备份自定义文件下的文件(支持增量更新)
偶然听到一个功能 插入U盘或者硬盘后自动拷贝电脑上的文件,当时就挺感兴趣的但是没有任何思路.后面上网查了一下资料发现使用bat批处理介意实现但是后面我发现越走越偏,不过大致还是能实现这个功能,花了好几 ...
最新文章
- 用户自定义类型(User-defined Type)参数的传递
- P1019 单词接龙 (DFS)
- DNS(三)--子域授权和视图
- JavaScript中的原型和继承
- 心脏为什么长在左边?原来是因为这个消失的器官
- leetcode - 22. 括号生成
- Genymotion 启动app闪退解决方案
- java comparator_Java 集合排序策略接口 Comparator
- STM32CubeMX使用(二)之串口通信
- 安国主控AU6989SN-GTC/AU6998SN [F500] - F/W FD04 U盘量产工具无法识别方法
- Python 的RS485 串口通讯
- nltk.stem 词干提取(stemming)
- noip2018提高组广东省成绩
- HYSBZ 2818 Gcd
- select函数用法详解
- solaris 9 一般安全设置
- Hive 自定义UDF函数讲解
- riak教程 java_riak-java-client
- AD原理图编译错误:Details Duplicate pins in component Pin ×× and Pin ××
- 字体号数,像素,榜值对应关系