相关疑难解决方法(0)

如何在Windows事件日志中存储对象?

最近,我们为所有脚本添加了选项,以便在Windows事件日志中记录其消息.这对于短消息非常有用,但我们似乎无法找到以结构化方式保存事件的方法,以便以后可以使用它们创建对象.

可以存储多个对象属性的事件示例: 服务控制经理

如何使用PowerShell完成此操作?

我们已经尝试过如下所述,但没有运气:

Write-EventLog -LogName HCScripts -Source 'Test (Brecht)' -EventId 4 -Message "<Data Name=""MyKey1"">MyValue1</Data>"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这篇文章中还有其他选项描述,但我们似乎无法弄清楚如何正确地做到这一点.

阅读事件的方法是:

Function Get-WinEventDataHC {
    Param (
        [Parameter(Mandatory,ValueFromPipeline,ValueFromPipelineByPropertyName)]
        [System.Diagnostics.Eventing.Reader.EventLogRecord[]]$Event
    )

    Process {
        foreach ($E in $Event){
            $XML = [XML]$E.ToXml()

            # Some events use other nodes, like 'UserData' on Applocker events...
            $XMLData = $null
            if ($XMLData = @($XML.Event.EventData.Data)){
                For ($i=0; $i -lt $XMLData.count; $i++){
                    $Params = @{
                        InputObject       = $E
                        NotePropertyName  = $EventXML.Event.EventData.Data[$i].Name
                        NotePropertyValue = $EventXML.Event.EventData.Data[$i].’#text’
                    }
                    Add-Member @Params
                }
            }

            $E …
Run Code Online (Sandbox Code Playgroud)

powershell events logging

11
推荐指数
1
解决办法
1244
查看次数

标签 统计

events ×1

logging ×1

powershell ×1