Я пытаюсь найти сопоставления имени / значения данных «Состояние» в сообщении журнала событий «Сетевое подключение»:
Path = Microsoft-Windows-NetworkProfile/Operational
Source = NetworkProfile
Event ID = 10000
Итак, я решил написать пользовательскийЖурнал событий того же поставщика и того же журнала (путь) при изменении значения «Состояние» сообщения, тогда я вижу отображение имени этого значения в средстве просмотра событий.
Например, у меня есть эти значения/ Отображения имен на данный момент:
1 --> 'Connected'
5 --> 'Connected, IPV4 (Local)'
9 --> 'Connected, IPV4 (Internet)'
, и я хочу знать остальные из них.
Итак, я попытался New-WinEvent
CmdLet в PowerShell для записи журналов:
New-WinEvent -ProviderName Microsoft-Windows-NetworkProfile -Id 10000 -Payload @("SSID","Description","{B58F86AB-F35D-4F73-A41E-98EA359E1D08}",0,1,0)
И он был создан, но последние 4 аргумента, которые я передал параметру -Payload
, не вступили в силу.Только {"name" = "SSID"
и "Description" = "Description"}
появлялись в этом событии.Последние 4 аргумента остаются неизменными, независимо от того, как я их изменяю, хотя при выполнении этой строки не было ошибок или предупреждений, -Verbose
также ничего не показывал.
![Custom Event Details](https://i.stack.imgur.com/Z64JY.jpg)
Я передал эти аргументы (особенно последние 3) во всех доступных типах и значениях.Я даже передал аргументы более раннего журнала событий (не зарегистрированного мной) этому параметру, подозревая, что я ошибаюсь в типах данных, но ничего не изменилось.
$a = ((Get-WinEvent -ProviderName Microsoft-Windows-NetworkProfile -MaxEvents 50 | Where-Object {$_.Id -eq 10000})[-1]).properties[3].value
$b = ((Get-WinEvent -ProviderName Microsoft-Windows-NetworkProfile -MaxEvents 50 | Where-Object {$_.Id -eq 10000})[-1]).properties[4].value
$c = ((Get-WinEvent -ProviderName Microsoft-Windows-NetworkProfile -MaxEvents 50 | Where-Object {$_.Id -eq 10000})[-1]).properties[5].value
New-WinEvent -ProviderName Microsoft-Windows-NetworkProfile -Id 10000 -Payload @("SSID","Description","{B58F86AB-F35D-4F73-A41E-98EA359E1D08}",$a,$b,$c)
Затем я попытался Write-EventLog
CmdLet:
Write-EventLog -LogName "Microsoft-Windows-NetworkProfile/Operational" -Source "NetworkProfile" -EventID 10000 -EntryType Information -Message $msg -Category 0
Но я продолжал получать сообщение об ошибке: Write-EventLog : The source name "NetworkProfile" does not exist on computer "localhost".
Хотя источник существует и является источником журнала «Сетевое подключение», как вы можете видеть на скриншоте.
Что я делаю не так с этими 2 CmdLets?