strComputer = "."
Set objWMIService = GetObject( _
"winmgmts://" & strComputer & "/root/cimv2")
strCondition = "FALSE"
While true
if strCondition = "FALSE" Then
WScript.Sleep(3000)
else
WScript.Sleep(60*1000)
strCondition = "FALSE"
end if
Set colItems = objWMIService.ExecQuery( _
"Select * from Win32_ServerConnection")
For Each objItem in colItems
if objItem.ShareName = "IPC$" Then
else
Wscript.Echo "警告:有人正在访问你共享" & VBNewLine _
& "远程机器: " & objItem.ComputerName & VBNewLine _
& "访问用户: " & objItem.UserName & VBNewLine _
& "共享文件夹: " & objItem.ShareName
strCondition = "TRUE"
end if
Next
wend
就这么简单,就是有个问题还没解决,若不点掉弹出的提示框,程序就不再往下走,也就是说在此之后,若有用户访问,则不得而知。
一开始想用多线程来着,结果发现VBscript貌似没这功能。
不过要是把脚本嵌入到.cmd里边,或许用几个start语句能行。
[3-15]
今天本想用C++来实现类似功能的(WMIC有相应C++开发接口)
不料VC6.0版本太低,编译时总提示
wbemuuid.lib(wbemcli_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module
Error executing link.exe.
查了下,说是SDK版本太高,不支持6.0,悲剧。。。
要是改设置,只能在release模式下编译通过。哎