访问共享文件夹相关[已解决]
本帖最后由 ppaiyy520 于 2017-5-16 21:59 编辑各位大虾:
我想做一个程序达到以下效果
我这有一个共享文件夹,比如D:\shared_folder,当别人在访问这个文件夹时候,我这边可以检测到是哪台电脑使用什么域账户进行访问的,什么时候登录的。可以做一个list文本出来,存在本地电脑其它地方,供查看。每条信息包括,计算机名(@ComputerName),登录userID(@UserName)登录时间,IP地址等。
我是初学者,有哪位大虾能帮我解决下么? net seesion WMI 会话 學習一下
正好碰到這個問題 學習一下
正好碰到這個問題 回复 3# 502762378
WMI会话?什么意思?能说具体点么? 回复 2# ila
我搜索了下,有个_Net_Share_SessionGetInfo定义函数,我尝试写了一下,无法获取信息~ 回复ila
我搜索了下,有个_Net_Share_SessionGetInfo定义函数,我尝试写了一下,无法获取信息~
ppaiyy520 发表于 2015-6-18 13:27 http://www.autoitx.com/images/common/back.gif
net seesion是批处理命令。dos命令回显看置顶的大全。
百度部分资料:
Net Session
列出或断开本地计算机和与之连接的客户端的会话。
net session [\computername]
参数
无
键入不带参数的 net session 可以显示所有与本地计算机的会话的信息。
\computername
标识要列出或断开会话的计算机。
/delete
结束与 \computername 计算机会话并关闭本次会话期间计算机的所有打开文件。如果省略
\computername 参数,将取消与本地计算机的所有会话。 接着8楼,给个图,现在还没测试多台访问,所以楼主自己测试一下
看看是什么效果~ 我用_net_share_connectionEnum函数写了下面程序,然后用_filewritelog保存到本地。可是执行起来只能显示一行信息,而且是最后一个信息,比如memowrite写的最后一条是ComputerName,文本里就只有这个信息,其他的信息不能显示。代码如下:
#include <GUIConstantsEx.au3>
#include <NetShare.au3>
#include <WindowsConstants.au3>
#include <File.au3>
Example()
Func Example()
Local $aInfo
$server=("\\srdmwprlab0067")
$share=("Ms data")
$aInfo=_Net_Share_ConnectionEnum($server,$share)
MemoWrite("Error ...................: " & @error)
;MemoWrite("Entries read ............: " & $aInfo)
For $iI = 1 To $aInfo
MemoWrite("Connection ID ...........: " & $aInfo[$iI])
MemoWrite("Connection type..........: " & _Net_Share_ResourceStr($aInfo[$iI]))
MemoWrite("Number of files open ....: " & $aInfo[$iI])
MemoWrite("Number of users .........: " & $aInfo[$iI])
MemoWrite("Connection time .........: " & $aInfo[$iI])
MemoWrite("User name ...............: " & $aInfo[$iI])
MemoWrite("Computer name ...........: " & $aInfo[$iI])
;MemoWrite()
Next
EndFunc
Func MemoWrite($message="")
$sLogPath="D:\Test For Au3\test"
_FileCreate($sLogPath & "\" & @MON & "月" & @MDAY & "日" & ".txt")
_FileWriteLog($sLogPath & "\" & @MON & "月" & @MDAY & "日" & ".txt",$message & @CRLF)
EndFunc
各位大侠帮忙看看如何解决?谢谢~~ _Net_Share_SessionGetInfo 本帖最后由 luren666 于 2015-7-15 20:42 编辑
把 _FileCreate 放到 Example() 前面不就好了吗?
您每次执行MemoWrite 都 _FileCreate 不觉得很奇怪吗?
还有,个人感觉最好把_FileCreate换成 FileOpen 。 回复 13# luren666
因为我需要每天产生的log都要保存下来的。。。 让你把_FileCreate 放到Example() 前面是因为,你每次_FileCreate 都创建了一个新文件,把之前的文件覆盖掉了,所以你的日志文件里面只有最后一行。
如果程序是长期运行在服务器上,一直长期运行不重启话,您想把每一天的日志文件单独保存到对应的日志文件,建议您加个判断日期的函数,如果发现日期变了,则创建一个对应的新文件。
还有不用一直写日志文件,可以把第一次取得的结果保存到文件,另外存一个副本到变量里面,然后判断本次取得的结果和上次的结果是否一样,如果不一样,则写入到文件,如果一样就没必要一直往文件里面写了,毕竟一直往里面写重复的内容没有意义,而且会使日志文件越来越大。
页:
[1]
2