PowerShell Write-EventLog 未写入所需的事件日志
Posted
技术标签:
【中文标题】PowerShell Write-EventLog 未写入所需的事件日志【英文标题】:PowerShell Write-EventLog Not Writing to Desired Event Log 【发布时间】: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 日志:
【问题讨论】:
【参考方案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).以上是关于PowerShell Write-EventLog 未写入所需的事件日志的主要内容,如果未能解决你的问题,请参考以下文章
powershell PowerShell:启动PowerShell作为其他用户提升
powershell [提示输入powershell] #powershell #input #prompt