这个问题是在我调查昨晚随机重启的一台服务器时出现的。我查看了事件日志,想看看是否有人手动重启了系统,但没有发现任何异常。
我去了C:\用户并且没有一个个人资料的修改日期是在几年内。当去用户配置文件通过系统属性窗口,我发现今天最近登录了几个帐户。这些相同的名称与C:\用户,但修改日期不一致。这是为什么?
答案1
因为配置文件文件夹的修改日期与其内部文件的修改日期完全分开,并且配置文件的修改日期文件夹与用户实际资料的修改不一定有任何关联。
确定用户配置文件修改日期的方法不同,取决于您使用的 Windows 版本。
在 Windows 2000、XP 和 Server 2003 上,这是通过检查每个特定用户根文件夹内文件的修改日期来完成的NTUSER.DAT
。正如您在下方的评论所表明的那样,这并不是特别准确,因为该文件可能会被系统进程、服务等修改,并且可能无法很好地指示用户上次登录的时间。
在 Server 2008/Vista 及更高版本中,它是通过 WMI 完成的,具体来说LastUseTime
Win32_UserProfile
类的属性。这就是系统属性窗口获取信息的地方,您也可以通过命令行来获取信息。同样,这是因为用户配置文件文件夹的修改日期不一定与用户配置文件本身的修改相关。例如,我可以重命名用户的配置文件文件夹、更改日期戳等,而无需对配置文件本身进行任何更改,同样,我可以修改配置文件而不更改其所在文件夹的任何内容。
当然,您可以自己手动运行这个查询。例如,在 PowerShell 中,它看起来像:
gwmi win32_userprofile
这将列出计算机上的所有用户配置文件并包含所有属性。如果您只关心,例如LastUseTime
,那么您可以这样做:
gwmi win32_userprofile | select localpath, lastusetime
列出所有用户配置文件,但仅列出本地路径(以便您可以确定哪个配置文件属于哪个用户)和您感兴趣的属性。