自己复制粘贴和修改的,很多做网管的朋友应该会用得上,里面锁定操作的小程序是自己用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盘插入拨出并通过邮件报警相关推荐

  1. Qt检测U盘插入拔出Demo

    要做这个,要先知道Qt的QAbstractNativeEventFilter类,虚函数nativeEventFilter.这个类的主要作用是捕获全局windows消息. 先看一下效果: 基本注意以下两 ...

  2. Windows下使用Qt检测U盘插入和拔出的示例Demo程序

    本文转载自Qt检测U盘插入拔出Demo 要做这个,要先知道Qt的QAbstractNativeEventFilter类,虚函数nativeEventFilter.这个类的主要作用是捕获全局window ...

  3. WINDOWS检测U盘插入,拔出

    检测U盘的插入或拔出状态,然后根据状态做出相关操作. 检测U盘是否被插入是通过监听WM_DEVICECHANGE消息来实现的. 判断-U盘拔出和插入-获取它盘符 2010-05-04 10:59 加入 ...

  4. WPF中检测U盘插入、拔出 实例

    类代码: /// <summary>/// 声明一个委托,用于代理一系列自定义方法/// </summary>public delegate void FlashDiskDel ...

  5. 批处理 检测U盘插入并自动备份文件

    复制如下代码,在文本文档中以ANSI编码另存,改后缀为bat,运行即可 :start @echo off ::若检测到U盘插入,则自动拷贝文件到U盘 ::pt为自动备份的目录路径 setlocal e ...

  6. qt启动后检测u盘插入和拔掉

    工作中,需要检测u盘的插入和拔掉.其余逻辑可以简化. 查了半天,感谢@q62290798 链接在 https://blog.csdn.net/q62290798/article/details/115 ...

  7. Python检测U盘插入、自动复制文件并写入新文件

    技术要点: 1)如何检测有U盘插入: 2)如何复制目录树: 3)如果U盘可写,如何写入新文件. 思考一下,然后到文末查看参考代码. ----------相关阅读---------- 教学课件 1900 ...

  8. QT:检测U盘插入和拔出(windows)

    1.先检测驱动器: 2.可以使用GetDriveType函数来获取驱动器的类型,以下是函数的链接: https://docs.microsoft.com/zh-cn/windows/win32/api ...

  9. 检测U盘插入并自动备份自定义文件下的文件(支持增量更新)

    偶然听到一个功能 插入U盘或者硬盘后自动拷贝电脑上的文件,当时就挺感兴趣的但是没有任何思路.后面上网查了一下资料发现使用bat批处理介意实现但是后面我发现越走越偏,不过大致还是能实现这个功能,花了好几 ...

最新文章

  1. 用户自定义类型(User-defined Type)参数的传递
  2. P1019 单词接龙 (DFS)
  3. DNS(三)--子域授权和视图
  4. JavaScript中的原型和继承
  5. 心脏为什么长在左边?原来是因为这个消失的器官
  6. leetcode - 22. 括号生成
  7. Genymotion 启动app闪退解决方案
  8. java comparator_Java 集合排序策略接口 Comparator
  9. STM32CubeMX使用(二)之串口通信
  10. 安国主控AU6989SN-GTC/AU6998SN [F500] - F/W FD04 U盘量产工具无法识别方法
  11. Python 的RS485 串口通讯
  12. nltk.stem 词干提取(stemming)
  13. noip2018提高组广东省成绩
  14. HYSBZ 2818 Gcd
  15. select函数用法详解
  16. solaris 9 一般安全设置
  17. Hive 自定义UDF函数讲解
  18. riak教程 java_riak-java-client
  19. AD原理图编译错误:Details Duplicate pins in component Pin ×× and Pin ××
  20. 字体号数,像素,榜值对应关系

热门文章

  1. Kubernetes+SpirngCloud+SkyWalking实现链路追踪
  2. Flink SQL 自定义 Sink
  3. java编程实现素数环_回溯法解决素数环
  4. DBeaver,一款好用的通用数据库管理器
  5. 前端练习1-月全食效果
  6. Android Studio 制作微信界面 下
  7. Windows共享文件夹设置
  8. JS-node节点知识点详解
  9. jq中ajax的res是什么意思,关于jquery ajax中返回值的问题
  10. 公务员备考(十六)行测 判断推理