我已经在 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