Рейтинг:0

Запись записей журнала Windows в хранилище с помощью задания планировщика задач и powershell

флаг id

я создал задачу в Taskplaner, которая всякий раз, когда создается новая запись журнала, выполняет следующий PS-скрипт, который должен записывать вновь созданную запись журнала событий в CSV-файл на хранилище.

$date = дата получения
$pdate = Get-Date -UFormat %Y-%d-%m
$Name = 'Microsoft-Windows-TerminalServices-Gateway/Operational'
$Log = [System.Diagnostics.EventLog]$Имя

$Действие = {
    # получить исходную запись события, вызвавшего это событие
    $entry = $event.SourceEventArgs.Entry
    # сделать что-то на основе события
    $ запись | выберите TimeCreated, Id, LevelDisplayName, сообщение | Export-Csv -Путь c:\TestLog.csv -append

К сожалению, файл не обновился, даже планировщик задач сказал, что скрипт был вызван, и ошибки не произошло. Задача запускается от имени администратора домена, и у пользователя есть права на запись в файл. Запуск скрипта вручную работает, даже вывод не записывается, поскольку при запуске вручную объект logitem не существует.

Скрипт вроде нормально работает при ручном использовании (поскольку его вообще можно протестировать)

Может кто-нибудь пожалуйста. указать мне на ошибку, которую я сделал?

Спасибо.

Вот настройки в планировщике заданий

введите описание изображения здесь

введите описание изображения здесь

Pimp Juice IT avatar
флаг ch
Вот что я хотел бы сделать, чтобы устранить неполадки дальше.Добавьте `Start-Transcript -Path C:\SomeFolder\SomeFile.txt` в процесс и убедитесь, что он записывает в этот файл стенограммы, и посмотрите, как он выглядит, когда вы запускаете его вручную, и он работает. Теперь запустите процесс и проверьте его, когда он не работает. Затем установите запланированную задачу для запуска как «СИСТЕМА» и выберите «Вход в систему или нет». Теперь запустите процесс и проверьте стенограмму. Если проблема решена, закомментируйте команды Start-Transcript и Stop-Transcript. Я нахожу это простым и обычно эффективным способом устранения неполадок в таких случаях.
Chris9834 avatar
флаг id
Я думаю, что весь код для отлова события просто не работает. Нужно найти другой пример или какое-то объяснение, как поймать событие, которое запускает планировщик задач в этой задаче.
Рейтинг:0
флаг id

Код, перехватывающий событие, похоже, не работает. Я решил это гораздо более простым способом, просто прочитав последний элемент события.

Это код PS, который работает сейчас

$Name = 'Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational'

$entry = Get-WinEvent -LogName Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational -MaxEvents 1
$ запись | выберите TimeCreated, Id, LevelDisplayName, сообщение | Export-Csv -Путь c:\RDPLog.csv -Append   

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.