首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell Get-EventLog (简介)

Powershell Get-EventLog (简介)
EN

Stack Overflow用户
提问于 2017-12-19 18:34:19
回答 2查看 143关注 0票数 0

对不起,我刚刚开始编写一个PowerShell脚本。当事件(错误)遇到事件查看器时,我试图使用脚本发送电子邮件。我不想使用事件查看器中包含的特性,因为它并不适用于所有操作系统。下面是我的脚本中的内容,但我无法从剪切的错误中导入消息或数据。

代码语言:javascript
复制
$event = Get-EventLog -LogName Application -Source "My Script-1" | where {$_.eventID -eq 1}

if ($event.EntryType -eq "Error")
{
    [string]$EmailBody = Event.Data
    $EmailFrom = "Test@google.com"
    $EmailTo = "lmill130@kent.edu"
    $EmailSubject = "This was sent from a PowerShell Script"
    $SMTPServer = "Example Server SMTP"
    Write-host "Sending Email Test"
    Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSubject -Body $EmailBody -SmtpServer $SMTPServer
}
else 
{
    write-host "No error found"
    write-host "Here is the log entry that was inspected:"
    $event
}

如果我将自己的字符串放入$EmailBody中,那么它没有问题,但是当我试图从事件中获取数据时,我就没有运气了。

这是我用来创建测试事件的脚本。

代码语言:javascript
复制
#New-EventLog -LogName Application -Source "My Script-1" 
Write-EventLog -LogName Application -Source "My Script-1" -EntryType Error -
EventId 1 -Message "This is a test Entry." 

我创建了一个任务,当该事件发生时,它将运行第一个脚本。

我在网上到处搜索,没有运气。请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-19 19:01:00

这可能是因为Event.Data没有返回任何东西。

它必须是$event.Data,但我认为您应该使用$event.Message来获取错误的信息。

所以这一切看起来都是这样的:

代码语言:javascript
复制
$event = Get-EventLog -LogName Application -Source "My Script-1" | where {$_.eventID -eq 1}

if ($event.EntryType -eq "Error")
{
    [string]$EmailBody = $event.Data
    #or [string]$EmailBody = $event.Message

    $EmailFrom = "Test@google.com"
    $EmailTo = "lmill130@kent.edu"
    $EmailSubject = "This was sent from a PowerShell Script"
    $SMTPServer = "Example Server SMTP"
    Write-host "Sending Email Test"
    Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSubject -Body $EmailBody -SmtpServer $SMTPServer
}
else 
{
    write-host "No error found"
    write-host "Here is the log entry that was inspected:"
    $event
}
票数 0
EN

Stack Overflow用户

发布于 2017-12-19 19:02:38

替换[string]$EmailBody = Event.Data

[string]$EmailBody = $Event.Data

使用消息总是比使用数据更好,因为您更担心错误消息,而不是将要被捕获的数据。

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47893186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档