当我调查昨晚随机重启的服务器时,出现了这个问题。 我正在查看事件日志,看是否有人手动重新启动系统,但没有发现任何东西。
我去了C:\用户 ,并没有一个configuration文件在几年内有一个修改date。 当通过“ 系统属性”窗口转到“ 用户configuration文件”时 ,我发现最近的一些帐户已经login。 这些相同的名称与C:\ Users相匹配,但修改date不匹配。 为什么是这样?
由于configuration文件夹的修改date与其中的文件的修改date完全分离,configuration文件夹的修改date与修改用户的实际configuration文件不一定相关。
根据您拥有的Windows版本,确定用户configuration文件的修改date是不同的。
在Windows 2000,XP和Server 2003上,这是通过检查每个特定用户的根文件夹中的NTUSER.DAT文件上的修改date来完成的。 如下面的注释所示,这不是特别准确,因为该文件可以通过系统进程,服务等进行修改,并且可能不是用户上次login时的良好指示。
在Server 2008 / Vista及更高版本下,它已经完成了WMI,特别是Win32_UserProfile类的LastUseTime属性 。 这就是系统属性窗口从中获取信息的地方,你也可以通过命令行来完成。 再一次,这是因为用户简档文件夹的修改date根本不需要与用户简档本身的修改相关联。 例如,我可以重命名用户的个人档案文件夹,更改date标记等等,而不必对档案本身进行任何更改,同样,我也可以修改档案而不更改所在文件夹的内容。
当然,这是一个您可以自己手动运行的查询。 在PowerShell中,例如,它看起来像:
gwmi win32_userprofile

这将列出机器上的所有用户configuration文件,并包括所有的属性。 如果你只关心,说LastUseTime ,那么你会这样做:
gwmi win32_userprofile | select localpath, lastusetime

列出所有用户configuration文件,但仅列出本地path(以便您可以确定哪个用户属于哪个configuration文件)以及您感兴趣的属性。