我正在尝试获取Windows Server中定义的所有用户的列表,以及上次登录服务器或映射/访问文件共享的日期时间。 为此,我尝试了以下脚本:
Get-ADUser -Filter * -SearchBase "dc=whatever,dc=local" -ResultPageSize 0 -Prop CN,samaccountname,LastLogonTimestamp | Select CN,samaccountname,@{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogonTimestamp)}}
为我提供了以下输出:
CN samaccountname LastLogon
-- -------------- -----------
Administrador Administrador 08/02/2019 17:30:00
Invitado Invitado 01/01/1601 1:00:00
krbtgt krbtgt 01/01/1601 1:00:00
Maite maite 01/01/1601 1:00:00
Mari Carmen mcarmen 01/01/1601 1:00:00
Emilio emilio 01/01/1601 1:00:00
Erica erica 01/01/1601 1:00:00
事实上,我知道管理员以外的用户已经访问了服务器文件共享(其中有些用户每天都将它们映射为驱动器),但是列表中唯一获得的有效登录日期是针对Adminstrator的。
似乎该命令仅在用户实际通过RDP或控制台登录服务器时报告。
每次用户访问任何服务器共享时,如何获得类似的查询来报告?
答案 0 :(得分:0)
您对文件共享的访问将创建一个不影响LastLogon
属性(分别为{{1})的网络登录(登录类型3)。在这种情况下,您将必须从域控制器事件日志中获取信息,该日志记录了所有登录信息。以下脚本将输出任何用户的最后登录日期,其登录类型为过去24小时。
LastLogonTimestamp