我正在使用Windows Server 2012 R2。 现在我有以下情况:
- 在IIS中我有一个.dll文件,名为project.dll。创build于2016年1月1日,最后修改于1/7/2016。
- 我拿了这个文件的副本。 把它保存在一个安全的地方
- 现在我想testing这个.dll文件的新版本。 所以我从我们的testing服务器复制/粘贴project.dll文件的更新版本到我们的前置服务器。 我指定要replace当前的.dll。
- 所以现在更新的.dll有以下信息。 创build于1/1/2016和上次修改于2016年1月11日。
- 现在经过testing。 我意识到有一些错误,所以我想返回旧的.dll
- 所以我从安全的地方复制.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文件系统监视器 。
还有其他的可能性,但有一些让你开始。
- 要监视文件的更改,可以使用tripwire或其开源对应的OSSSEC。 这只会在文件更改并不再与“基准”匹配的情况下进行监视和提醒。
- 您可以将文件添加到版本控制系统,如subversion或git。 这将允许您维护文件集合,并在您的testing用例不起作用的情况下恢复到旧版本。
- 木偶,puppet只是为了确保一个DLL文件符合你的“好”版本,但它允许你定义一个源文件,你想以其当前forms存在于其他服务器上。 如果DLL文件在远程服务器上发生变化,puppet将比较MD5散列并查看更改,然后将其replace为“good”版本。 当您对新版本感到满意时,您将replacepuppet服务器上的文件,puppet将愉快地将其部署到远程服务器。