我有一个要求,我需要在不同的服务器上创建自定义事件日志。我有命令在本地计算机上创建事件日志,但需要它用于远程服务器。在本地计算机上创建事件日志的命令是
powershell -command "if([System.Diagnostics.EventLog]::SourceExists('MySource')){Write 'Eventlog already exists'}else{[System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog')}"
我希望远程服务器也一样。
请尽可能粘贴代码。
感谢。
答案 0 :(得分:2)
来自你在Posh Comm上的帖子
Invoke-command -computername server,server -scriptblock {if([System.Diagnostics.EventLog]::SourceExists('MySource')){Write 'Eventlog already exists'}else{[System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog')}}
或者Shay Levy更优雅:
New-EventLog -LogName application -Source MySource,MyCustomLog -ComputerName PC1 -ErrorAction SilentlyContinue
Write-EventLog -LogName application -Source MySource -EntryType information -Message test -EventId 1234 -Computer PC1
答案 1 :(得分:0)
还有一个CreateEventSource有3个参数,其中最后一个是机器名。这样就可以了:
if([System.Diagnostics.EventLog]::SourceExists('MySource', 'MyMachine'))
{
Write 'Eventlog already exists'
}
else
{
[System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog', 'MyMachine')
}
请注意,带有3个参数的方法已标记为过时。通过更多工作,您可以使用带EventSourceCreationData的变体,您也可以在其中指定机器名称。