通过任务计划程序作业和 powershell 将 Windows 日志条目写入存储

通过任务计划程序作业和 powershell 将 Windows 日志条目写入存储

我已经在 Taskplaner 中创建了一项任务,每当创建一个新的日志条目时,它就会执行以下 PS 脚本,该脚本应将新创建的事件日志条目写入存储中的 csv 文件中。

$date = Get-Date
$pdate = Get-Date -UFormat %Y-%d-%m
$Name = 'Microsoft-Windows-TerminalServices-Gateway/Operational'
$Log = [System.Diagnostics.EventLog]$Name

$Action = {
    # get the original event entry that triggered the event
    $entry = $event.SourceEventArgs.Entry
    # do something based on the event
    $entry | select TimeCreated, Id, LevelDisplayName, message  | Export-Csv -Path c:\TestLog.csv -append

不幸的是,即使任务调度程序显示已调用脚本且未发生错误,文件仍未更新。任务以 Domainadmin 身份运行,用户对文件具有写访问权限。手动启动脚本有效,甚至没有输出,因为手动运行时不存在 logitem-object。

该脚本在手动使用时似乎运行良好(因为完全可以进行测试)

有人能指出我犯的错误吗?

谢谢。

以下是任务计划程序中的设置

在此处输入图片描述

在此处输入图片描述

答案1

捕获事件的代码似乎不起作用。我通过一种更基本的方法解决了这个问题,只需读取最新的事件项即可。

这是现在可以运行的 PS 代码

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

$entry = Get-WinEvent -LogName Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational -MaxEvents 1
$entry | select TimeCreated, Id, LevelDisplayName, message | Export-Csv -Path c:\RDPLog.csv -Append   

相关内容