如何计算用户登录到计算机的次数?
来源:互联网 发布:软件快捷方式打不开 编辑:程序博客网 时间:2024/05/17 01:20
问:
您好,脚本专家!如何计算用户登录到计算机的次数?
-- DE
答:
您好,DE。您是如何计算用户登录到计算机的次数?问得好,但最终的回答可能是:没办法计算。不过,我们至少可以对一些可能的解决方法进行研究,看其中的某些方法是否有助于解决问题。
首先,我们要弄清楚登录到计算机和登录到域之间的区别。如果运行了 Active Directory,就可以确定用户登录到域的次数;因为该用户帐户对象包含一个“LogonCount”属性,它可对这一情况进行跟踪。
但它有一个局限性,就是不能在域控制器间复制 LogonCount 属性。这重要吗?如果只有一个域控制器,这根本无关紧要。不过,如果有多个域控制器,就需要绑定到其中的每个计算机,检索登录次数,然后将这些数字相加,才能得出用户登录到域的次数。换句话说,Ken Myer 可能由域控制器 A 验证了 5 次,由域控制器 B 验证了 3 次。您需要将这两个数字(5 和 3)相加,才能确定 Ken 登录到域的次数为 8 次。
顺便提一句,以下脚本绑定到域控制器 atl-dc-01 并回显用户 Ken Myer 的 LogonCount 值:
Set objUser = GetObject _ ("LDAP://atl-dc-01/cn=ken myer, ou=Finance, dc=fabrikam, dc=com")Wscript.Echo objUser.LogonCount
同样,您需要分别为每个域控制器运行一次这个脚本,才能得出 Ken Myer 的准确登录次数。
当然啦,您提出的问题是计算用户登录到计算机的次数。这就有一点棘手了,遗憾的是,WinNT 提供程序(用于管理本地用户帐户和 Windows NT 4.0 域帐户)不支持 LogonCount 属性。因此,据我们所知,计算用户登录次数的唯一方法就是查询安全事件日志。如果启用了用户登录审核,每次用户成功登录到计算机时,都会在安全事件日志中记录一个事件(使用事件代码 528)。要了解 Ken Myer 登录到计算机的次数,只需在安全事件日志中查询所有“EventCode”等于 528 且“User”为 fabrikam//kmyer 的事件(是的,查询中必须使用两个 /):
strComputer = "."Set objWMIService = GetObject("winmgmts:{(Security)}//" & _ strComputer & "/root/cimv2")Set colEvents = objWMIService.ExecQuery _ ("SELECT * FROM Win32_NTLogEvent WHERE LogFile = 'Security' AND " & _ "EventCode = 528 AND User = 'fabrikam//kmyer'") Wscript.Echo colEvents.Count
以上脚本可以达到预期效果,但有一些需要注意的地方。首先,如果没有启用审核功能,则不会将这些记录写入到安全事件日志中。其次,每次清除事件日志时,都会清除所有事件。结果,相当于将所有用户的所有登录次数都重置为 0。如果想保留用户登录的连续记录,只有两个办法:永远都不要清除事件日志(不建议这样做),或者每次在真的要清除事件日志时做记录。这项任务并非难到真的无法完成,但也并非像您多半以为的那样简单。不过,这几乎是我们可以选择的唯一方法了。
- 如何计算用户登录到计算机的次数?
- 如何禁止其他用户域用户登录计算机
- 六、统计用户登录的次数
- JS记录用户登录次数的代码
- 判断用户登录次数
- 如何计算一个数n从0到n中0到9出现的次数
- 如何使用不同的用户登录到共享文件夹
- 取得每个用户登录次数和最后登录的时间
- Linux如何通过PAM限制用户登录失败次数
- JS记录用户登录次数
- PHPCMSV9增加用户登录次数
- centos 下 限制同一用户在同一时间的登录次数
- jsp之记录用户登录的总次数以及记录用户最后一次登录的时间
- asp.net如何让未登录用户登录后能自动跳转到登录前访问的页面
- 如何在登录到计算机之前运行批处理文件
- 计算从1到N中,1出现的次数
- 计算从1到N中1的出现次数
- 计算0到n中数字2出现的次数
- 用VC模拟ucos2.8 源码
- 嵌入式(标准C环境下)下通用的内存池的实现---前言
- Reorganization
- keil警告提示
- Effective C#之24:Prefer Declarative to Imperative Programming
- 如何计算用户登录到计算机的次数?
- 如何计算某个域中的计算机数?
- SQL操作大全
- FTP收藏
- 如何从本地管理员组中删除管理员和域管理组之外的一切成员?
- PPC技巧
- 如何列出 Active Directory 中的所有站点及这些站点内的所有服务器?
- 个人站长不要把理想和青春赌到网站上
- 简单入门正则表达式 - 第二章 正则表达式应用范围