【问题标题】:PowerShell Write-EventLog Not Writing to Desired Event LogPowerShell Write-EventLog 未写入所需的事件日志
【发布时间】:2015-10-25 15:00:06
【问题描述】:

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

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

我的 PowerShell 函数 sn-p:

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。

事件查看器的屏幕截图

获取驱动器日志:

Windows Powershell 日志:

【问题讨论】:

    标签: .net visual-studio powershell


    【解决方案1】:

    让我们看看你的 EventLog 是否被创建,这个命令将列出你在本地计算机上的所有事件日志:

    获取事件日志列表

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

    New-EventLog -LogName "Get-Drives" -source "Get-Drives"

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

    获取事件日志列表

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

    【讨论】:

    • 我已经更新了我的条目。谢谢。此外,即使以交互方式运行它也会产生相同的问题。仅在 Windows Powershell 日志而不是 Get-Drives 中创建事件日志。
    • 很奇怪,在我的win10上完美运行。你能链接你完整的功能吗?
    • 让我知道这个链接是否有效(以前从未使用过这个网站):codeshare.io/Z2bmx
    • 没问题,也可以在我的系统上运行。您的客户端的操作系统版本是多少?完全修补?
    • 尝试为 -LogName 指定一个静态名称,我不确定,但问题可能与 -LogName 的扩展名有关,即上面打印屏幕中的 .ps1(Get-Drives .ps1).
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2022-11-18
    • 2013-05-23
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多