我们有时会在现场生产服务器上由IT团队更改web.config中的configuration。 我想创build一个审计跟踪,例如,“10月11日,文件”bar“中的”foo“属性改为”banana“。
我的第一个想法是创build一个每小时运行一次的PowerShell脚本,如果其中一个.config文件发生更改,请将其保存在带时间戳的文件夹中。 我的第二个想法是,这一定是一个已经解决的问题。
理想情况下,configuration文件的变化将不被允许,任何改变都需要一个新的部署,但是我不太可能推动。
我说“web.config”,但我有几个不同的XMLconfiguration文件:web.config,app.config,nant.configs。
我需要确切地知道这些configuration文件中(什么时候)和(理想地)由谁更改(大约)。
有什么样的标准方式或开源工具来做文件更改logging?
正如评论中所提到的,最有可能的第三方工具可以帮助这里。 Windows中没有任何东西可以让你做到这一点。
如果我必须自己做,我会做这样的事情:
写一个小工具来监视要观看的文件。 这将使用FileSystemWatcher对象。 在NTFS驱动器上,对已观察文件的更改将自动触发事件。
该事件的代码只是将文件复制到源控制下的其他位置(如Git),并触发提交并可能推送到远程服务器。
使用这个你可以看到文件中的确切变化。
另外,您可以启用对这些文件的Windows审核来查看是谁进行了更改。
我不会在PowerShell中编写这个工具,而是作为一个在后台运行的Windows服务,并实时监控变化。