audit de changement de file (en particulier pour web.configs)

Nous avons parfois des configurations dans web.config (s) modifiées par l'équipe informatique sur les servers de production en direct. Je voudrais créer une piste d'audit, par exemple, "Le 11 octobre, la propriété" foo "dans le file" bar "a été changée en" banane ".

Ma première pensée était de créer un script PowerShell qui fonctionnerait toutes les heures, et si l'un des files .config a changé, enregistrez-le dans un dossier horodaté. Ma seconde pensée était que ce devait être un problème qui a déjà été résolu.

Idéalement, les changements de files de configuration ne seraient pas autorisés et toute modification nécessiterait un nouveau deployment, mais il est peu probable que je puisse avancer.

Je dis "web.config" mais j'ai quelques files de configuration xml différents: web.config, app.config, nant.configs.

J'ai besoin de savoir exactement ce que ces files de configuration ont changé (approximativement) quand et (idéalement) par qui.

Existe-t-il une sorte d'outil standard ou open source pour effectuer l'logging des changements de files?

Comme mentionné dans les commentaires, il existe probablement des outils tiers qui pourraient vous aider ici. Il n'y a rien embedded dans Windows qui vous permet de faire cela hors de la boîte.

Si je devais le faire moi-même, je ferais quelque chose comme ça:

Écrivez un petit outil pour surveiller les files à surveiller. Cela utiliserait un object FileSystemWatcher. Sur les lecteurs NTFS, une modification d'un file surveillé triggersrait automatiquement un événement.

Le code de l'événement suffit de copyr le file sur un location différent qui est sous contrôle source (par exemple, Git) et de triggersr un commit et peut-être une poussée vers un server distant.

En utilisant ceci, vous pouvez voir ce qui a changé exactement dans le file.

De plus, vous pouvez activer l'audit Windows sur les files pour voir qui a effectué les modifications.

Je n'écrirais pas l'outil dans PowerShell, mais comme un service Windows qui fonctionne en arrière-plan et surveille les changements en time réel.