Write-EventLog
将错误消息写入 PowerShell 脚本中的 Windows 事件日志。New-EventLog
脚本来创建自定义的LogName
。-LogName
或 -Source
时,您将收到如下异常:PS C:\> try { Write-EventLog -LogName "Application" -Source 'NewApplication' -EventId "400" -Message "TEST MESSAGE" } catch { $_ | Format-List * -Force | Out-String }
PSMessageDetails :
Exception : System.Security.SecurityException: The source was not found, but some or all event logs could not be searched. Inaccessible logs: Security.
at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly, Boolean wantToCreate)
at System.Diagnostics.EventLog.SourceExists(String source, String machineName, Boolean wantToCreate)
at Microsoft.PowerShell.Commands.WriteEventLogCommand.BeginProcessing()
at System.Management.Automation.Cmdlet.DoBeginProcessing()
at System.Management.Automation.CommandProcessorBase.DoBegin()
The Zone of the assembly that failed was:
MyComputer
TargetObject :
CategoryInfo : NotSpecified: (:) [Write-EventLog], SecurityException
FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.PowerShell.Commands.WriteEventLogCommand
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}
所以我想获取脚本可用的
-LogName
和 -Source
的列表。
您可以使用
Get-EventLog -List
或 Get-EventLog -LogName <LogName>
获取事件列表,但其中包含我的脚本不可用的 -LogName
和 -Source
。它还仅包含已记录到事件日志的事件(它不是可用 -LogName
和 -Source
的详尽列表)。
有没有办法在没有管理员权限的情况下获取
-LogName
和 -Source
的详尽列表?不幸的是,如果没有管理权限,您无法使用 New-EventLog 注册新事件源。但是,如果您确定用户已经可用的日志和源,您仍然可以写入现有日志。