Если служба или приложение Windows пишет логи не в Event Viewer (.evt и .evtx файлы), а в текстовые лог-файлы, вам иногда необходимо выводить и отслеживать новые события в реальном времени.
В Linux, например, для вывода содержимого логов в реальном времени используется команда tail -f /var/log/syslog
. Команда выводит на экран терминала любые новые записи, которые добавляются в этот файл.
В качестве аналога команды tail в Windows можно использовать командлет Get-Content.
Следующая команда выведет содержимое всего текстового лог-файла и будет выводить новые строки:
Get-Content "C:\Users\user1\AppData\Local\Temp\MicrosoftEdgeUpdate.log" -Wait
Если файл лога большой, и вы не хотите выводить его целиком на экран, можно вывести только последние 10 строк:
Get-Content "C:\Users\user1\AppData\Local\Temp\MicrosoftEdgeUpdate.log" -Wait -Tail 10
Можно перенаправить вывод команды в файл:
Get-Content C:\MicrosoftEdgeUpdate.log -Wait -Tail 5 > C:\PS\new_edgeupdate.log
Если вам нужно выводить на экран только строки, которые содержат ключевое слово (например, ERROR):
Get-Content C:\MicrosoftEdgeUpdate.log -Wait -Tail 100 | where { $_ -match "ERROR"}
Можно одновременно выводить логи на экран и записывать полученные строки в новый файл:
Get-Content C:\MicrosoftEdgeUpdate.log -Wait -Tail 100 | where { $_ -match "FAILED"} | Tee-Object -FilePath C:\PS\new_edgeupdate.log