В итоге я создал небольшой PHP-скрипт под Bash для Windows, чтобы сделать эту работу. Он вызывает wmic
чтобы получить список сервисов, а затем сохраняет его в текстовом файле с версией, используя git. Это называется один раз в день в хрон.
Затем я могу использовать что-то вроде tig
чтобы просмотреть изменения с течением времени.
Вот сценарий, если кто-то заинтересован в том, чтобы сделать что-то подобное (это немного глупо, но работает):
<?php
$wmicPath = '/mnt/c/Windows/System32/wbem/WMIC.exe';
$logDir = $_SERVER['HOME'] . '/var/log/win_services_mon';
@mkdir($logDir, 0755, true);
chdir($logDir);
$logFile = $logDir . '/services.log';
if (!file_exists($logDir . '/.git')) {
exec('git init');
}
exec($wmicPath . ' service get name,caption,startmode > ' . $logFile);
$content = file_get_contents($logFile);
if (strpos($content, 'ÿþ') === 0) {
$content = substr($content, 2); // Remove BOM
}
$content = str_replace("\0", '', $content); // Convert two bytes per character to one (definitely the wrong way to do this, but can't get iconv to work)
file_put_contents($logFile, $content);
exec('git add .');
exec('git commit -m "' . date('Ymd-His') . '"');