Powershell to Event



我尝试制作一个PowerShell脚本,当文件夹中的文本文件超过15分钟时,该脚本会写入事件。

这是我尝试使用的代码:

$targetfile=get-childitem C:UsersuserDesktopbizin*.txt
if ($targetfile.AddMinutes -15 ) 
{
write-eventlog -logname Application -source ESENT -eventID 9999 -entrytype Error -message "No new files in 15min gate is down!" -category 3 
'create event log to say bad things have happened'
}

我总是在运行脚本时得到事件。我只想在文件超过15分钟时获取事件。这将是一项每15分钟运行一次的计划任务。

您需要访问文件的LastWriteTime属性,并将其与DateTime对象进行比较:

$targetFiles = Get-ChildItem -Path 'C:UsersuserDesktopbizin' -Filter *.txt
foreach ($targetFile in $targetFiles)
{
    if ($targetFile.LastWriteTime -lt [DateTime]::Now.AddMinutes(-15))
    {
        # Write the eventlog....
    }
}

注意:您可以使用Get-ChildItem cmdlet的-Filter参数仅检索txt文件。以下是在一行中使用别名和管道的相同示例:

gci -Path 'C:UsersuserDesktopbizin' -Filter *.txt | ? { $_.LastWriteTime -lt [DateTime]::Now.AddMinutes(-15) } | % { <# Write the eventlog... #> }

最新更新