我在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
会显示以下输出:
在条目下,Get-Drives
日志的值为1,但它仅显示在Windows Powershell日志中,该日志的值也为1.
事件查看器的屏幕截图
答案 0 :(得分:1)
让我们看看您的EventLog是否已创建,此命令将列出本地计算机上的所有事件日志:
Get-EventLog -list
如果您的EventLog不在列表中,请尝试使用此命令创建它而不是您的功能(以管理员身份运行PS控制台):
New-EventLog -LogName“Get-Drives”-source“Get-Drives”
然后再次运行以查看您的EventLog是否已创建。
Get-EventLog -list
如果您的新EventLog出现在列表中,那么运行您的函数以查看他现在是否能够在正确的EventLog中写入