我首先要解释一下我想要实现的目标 .
对于他们想要监控PC试验组的项目 . 他们想要以下信息:
-
已登录的唯一身份用户总数
-
总登录
-
每个用户每个会话的时间
所以我继续创建了一个登录和注销脚本 . 这些脚本的输出每月都是一个txt文件 .
例如:文件 01-2017.txt
包含:
25-01-2017,09:29,lky9,WS257737,Logon
25-01-2017,10:37,lky9,WS257737,Logoff
25-01-2017,10:01,1f57,WS157954,Logon
25-01-2017,10:29,7df6,WS248751,Logon
25-01-2017,10:34,7df6,WS248751,Logoff
25-01-2017,10:48,1f57,WS157954,Logoff
现在我(不成功地)尝试使用 Get-Content
在数组中获取所有这些内容 . 因为当我能做到这一点时,我可以进一步尝试 . PowerShell技能仍然很差,但我可以管理数组没关系 . 所以问题是;
任何人都可以向我解释我是如何得到这个数组?
2 回答
我会用一种完全不同的方法 . 事件查看器使用用户ID保存登录和注销时间戳(我认为它是用户的sid) . 然后,您只需要跟踪意外的重新启动,以确保对于那些仅具有该时间的登录事件的会话,这是您的截止点 .
然后,您可以在计划任务的任何给定时间运行脚本 . 您不必在登录/注销期间运行,这可能会影响登录时间(不多但仍然如此) .
您需要的是使用
Import-CSV
cmdlet导入CSV,因为这将为您提供所有记录作为对象数组:Output:
举例说明如何使用它来回答您的问题: