这是个要求精确的技术:确定文件或文件夹最后被访问的时间。
在Christopher Brookmyre的小说中有个故事讲到,所有人都沉浸在欢乐和游戏中,直到一天有个人失去了一只眼睛,一个会黑客技术的人物打开了一台计算机,然后检查boot日志来看看计算机上次运行是什么时候以及运行了多长时间。
然后,她检查了访问目录,以便知道上次哪些文件夹被人打开过。这样的情节到底是小说中编造的呢,还是确实存在呢?
该书是在2005年出版的,因此我们假设这台计算机的操作系统是XP。第一部分很简单,不过你应该看的不是boot日志而是系统事件日志。
启动事件阅读器,你可以在控制面板或者开始菜单的管理工具中找到它,然后点击左边窗口中的系统。调整窗口的大小,以便你看到右边窗口的事件栏。
寻找一个6009的条目——它显示PC什么时候关闭或者重启的。有数个事件会记录开机操作,代码是7035,7036和26,还跟很多服务和核对有关。
右键点击一个事件然后选择属性,它会显示一个简短的说明,你可以通过点击事件属性框中的链接来看到更详细的说明。
薛定谔的文件?
确定文件或文件夹什么时候最后被访问更加困难。Windows系统中的每一个文件和文件夹——NTFS格式和FAT格式的文件系统都一样——有三个关联日期。修改的日期是你在Explorer的默认设置下或者Dos情况下输入“dir”后能看到的。这显示了文件最后保存的日期和时间。
如果你打开一个文件然后保存——即使没有修改——你也将发现这些变化。创建日期是文件在硬盘上当前位置被创建时的日期。因此如果你创建了一个新的文件,在时间显示为1月1日的应用程序上保存它,然后把它复制到时间为1月2日的文件夹,那么复制文档的创建日期会是1月2日,但修改日期是1月1日。
一些文件,比如Jpeg图片或者微软Word文档,在高级选项模式下会保存原始创建日期,但是这个是存储在文件本身当中而不是文件系统里。转移,而不是复制的话,通常文件保存的都是创建日期。
如果你不喜欢某些东西在创建前被修改这种概念,那么你会更不喜欢访问日期的概念。如果你右键点击文件然后选择属性,你可以看到文件的全部三个日期。
但是,右键点击这样的操作也会被算作访问文件,因此上次访问的日期会变为当前的日期和时间。察看文件的属性,就是你修改了它们——似乎系统的设计者是受了量子物理的启发。
如果你的系统是Windows ME,2000或者XP,那么你可以在Explorer的详细察看中会看到全部的三个日期。在ME或者2000中,点击察看菜单,然后‘选择栏目’(XP中是察看,选择详细信息)。勾上创建日期和访问日期的选择框,你就可以看到文件和文件夹额外的栏目。
你也可以在Dos命令下察看访问日期。在XP中,输入dir/ta,会显示最后访问日期—/tc和/tw则会显示创建和最后修改的日期。老版本的Dos上,句法略有不同。
/oa 和/od会分别列出文件的访问和修改日期,但是这有一定局限性。与选择顺序无关,两种情况下你看到的日期都是修改日期。要想两个都能看到,可以使用/v(verbose)切换也可以用分类顺序转换。
说了这么多,就是说察看最后访问日期是不大可行的。例如,在Windows ME中,打开文件夹并不改变最后访问日期。XP系统中,打开文件夹确实改变最后访问时间——但不是立刻改变。
更糟糕的是,还有太多其它的东西,比如Windows 桌面搜索索引以及其他服务,也会改变最后访问日期,因此你不可能分清到底文件夹最后是被用户打开的还是操作系统常规访问到的。
引入监听装置
另有其他的办法帮助Brookmyre摆脱XP困境,但是那种方法需要很大的勇气。你可以设置监听装置纪录对各种各样对象——比如文件,文件夹,打印机以及注册键值——的访问。
首先你得以管理员的身份登陆,而后如果你明智的话,创建系统还原点(参见最后一段)。下一步,你要关闭文件共享的功能。XP家庭版用户不得不停在这一步了,因为没有这样的选项可用,但是XP Pro用户可以通过Explorer的工具,文件选项,察看来完成这一步。
现在你得设置监听器。首先,运行gpedit.msc来打开组策略编辑器。左边窗口中按计算机配置\Windows设置\ 安全设置\本地策略\审核策略的路径一路向下。
然后你会看到,在右边窗口中显示出可以监听的动作的列表——默认情况下,这些都是不被监听的。双击审核对象访问然后选中属性框中的‘成功’选项。点击OK退出。
下一步就是设置那些你要监听的对象。跟小说中情节一样,转到你想要记录的文件夹。右键点击,选择属性,然后转到安全选项卡,选择“高级”。在高级安全设置对话框中,选中监听选项卡。点击添加……按钮。
为了尽可能简化操作,在‘输入要选择的对象的名称’框中输入“everyone”(不包括引号)。点击检查名称按钮来确保你指定了正确的对象名称,然后点击OK。这样就会开启监听功能。
选择你要监听的方面——比如‘列出文件夹/读取数据’,然后选择‘应用于’选项:如果你使监听日志整齐点儿,就选择‘只对这个文件夹’或者‘该文件夹及其子文件夹’。点击OK来退出打开的对话框。
现在运行事件阅读器,就像之前讲的那样,然后打开安全分支。每次你指定的文件夹被打开你就会在这里看到很多条目,列出时间,用户和其他信息。如果双击一个条目,你就会获得更进一步的信息,尤其是那个‘映射文件名称’它会告诉你什么程序访问了文件夹。
如果你或者其他用户打开了该文件夹,此项会显示Explorer.exe。但如果是其他进程访问了该文件夹,你会看到不同的可执行文件,比如WindowsSearchFilter.exe表示桌面搜索器访问了该文件。
消失的选项卡
我给你讲个有趣的事情。一位读者受托帮同事解决如下的一个麻烦。后者的屏幕保护装置在计算机30秒没有活动后就会运行。更气人的是,当他察看显示属性时,那里竟没有屏幕保护选项卡。
XP Pro中,可以在组策略编辑器中矫正该问题。运行gpedit.msc,然后打开用户配置, 管理模板, 控制面板, 显示分支,你就会在右边的窗口中看到一个‘隐藏屏幕保护选项卡’的设置。双击它,关闭或者‘不设置’就会把选项卡重新找回来。
还有其他的你可以应用的屏保限制——点击低一点的那个扩展选项就可以看到每一项的说明。尽管XP家庭版没有组策略编辑器,但是两个版本都在注册表中保存了这些限制。
因此,XP家庭版中,以管理员的身份登陆后创建还原点,然后按照Hkey_Current_User\Software\ Microsoft\Windows \CurrentVersion \Policies\System 的路径,在右边窗口中查找叫做NoDispScrSavPage的条目。双击它然后把它的值设为0:这样就可以找回消失的选项卡。
恢复点
我们总是强调创建恢复点的重要性。在标准的XP系统中,从开始菜单点下去,只用5步就可以运行系统恢复。
尽管可以通过%SystemRoot%\System32\restore\rstrui.exe来快速访问,但我们还是建议使用Doug Knox’s SysRestorePoint.exe。双击这个小(20kb)应用,它就会简单地创建系统恢复点。
这个点将被称为自动恢复点——这将它跟Windows创建的叫做系统还原点区分开来。你可以到www.dougknox.com上找到使用方法。