PowerShell Write-EventLog不写入所需的事件日志

时间:2015-10-25 15:00:07

标签: .net visual-studio powershell

我在PowerShell函数(名为Create-EventLog)中有以下代码(片段)。最终结果应如下:

  • 名为Get-Drives的新事件日志是PowerShell为此应用程序写入所有异常消息。 Get-Drives事件日志已创建但由于某种原因 实际消息只会写入默认的Windows PowerShell事件日志中。如何让PowerShell将消息写入" Get-Drives"事件日志而不是" Windows PowerShell"事件簿?我在Visual Studio 2013中使用PowerShell 4并使用PowerShell工具。

我的PowerShell功能代码段:

if (!$EventLogExists) {
    New-EventLog -LogName "Get-Drives" -source "Get-Drives"
    Write-EventLog -LogName "Get-Drives" -source "Get-Drives" -EventId 1 -message "There was an error"
    return
} else {
    Write-EventLog -LogName "Get-Drives" -source "Get-Drives" -EventId 1 -message "There was an error"
    return
}

运行Get-EventLog -List会显示以下输出:

enter image description here

在条目下,Get-Drives日志的值为1,但它仅显示在Windows Powershell日志中,该日志的值也为1.

事件查看器的屏幕截图

Get-Drives日志: enter image description here

Windows Powershell日志: enter image description here

1 个答案:

答案 0 :(得分:1)

让我们看看您的EventLog是否已创建,此命令将列出本地计算机上的所有事件日志:

  

Get-EventLog -list

如果您的EventLog不在列表中,请尝试使用此命令创建它而不是您的功能(以管理员身份运行PS控制台):

  

New-EventLog -LogName“Get-Drives”-source“Get-Drives”

然后再次运行以查看您的EventLog是否已创建。

  

Get-EventLog -list

如果您的新EventLog出现在列表中,那么运行您的函数以查看他现在是否能够在正确的EventLog中写入