我怎么知道什么时候文件的新版本被复制

我正在使用Windows Server 2012 R2。 现在我有以下情况:

  1. 在IIS中我有一个.dll文件,名为project.dll。创build于2016年1月1日,最后修改于1/7/2016。
  2. 我拿了这个文件的副本。 把它保存在一个安全的地方
  3. 现在我想testing这个.dll文件的新版本。 所以我从我们的testing服务器复制/粘贴project.dll文件的更新版本到我们的前置服务器。 我指定要replace当前的.dll。
  4. 所以现在更新的.dll有以下信息。 创build于1/1/2016和上次修改于2016年1月11日。
  5. 现在经过testing。 我意识到有一些错误,所以我想返回旧的.dll
  6. 所以我从安全的地方复制.dll,并将其粘贴到IIS相关文件夹中。 我selectreplace当前文件。

现在我的问题是我怎么知道什么时候点6号的操作发生? 因为.dll将具有原始信息; 创build于1/1/2016和修改于2016年1月7日。 但是我需要知道什么时候发生了6次操作。 换句话说,当更新的.dll被replace为原始的.dll时? 因为我需要检查一些日志,以查看是否在更新的.dll文件不在位时删除错误。

只是一些可能性…

您可以查看USN日志。 (Powershell模块Powerforensics对此有一个很好的cmdlet, Get-ForensicUsnJrnl 。每次在NTFS卷上触及一个文件时,都会在该日志中logging它。

或者你可以使用.NET文件系统监视器 。

还有其他的可能性,但有一些让你开始。

  1. 要监视文件的更改,可以使用tripwire或其开源对应的OSSSEC。 这只会在文件更改并不再与“基准”匹配的情况下进行监视和提醒。
  2. 您可以将文件添加到版本控制系统,如subversion或git。 这将允许您维护文件集合,并在您的testing用例不起作用的情况下恢复到旧版本。
  3. 木偶,puppet只是为了确保一个DLL文件符合你的“好”版本,但它允许你定义一个源文件,你想以其当前forms存在于其他服务器上。 如果DLL文件在远程服务器上发生变化,puppet将比较MD5散列并查看更改,然后将其replace为“good”版本。 当您对新版本感到满意时,您将replacepuppet服务器上的文件,puppet将愉快地将其部署到远程服务器。