1

我有一个需求,我需要在其他服务器上创建自定义事件日志。我有命令在本地机器上创建事件日志,但需要它用于远程服务器。创建本地计算机上的事件日志的命令是使用PowerShell在远程服务器上创建自定义事件日志

powershell -command "if([System.Diagnostics.EventLog]::SourceExists('MySource')){Write 'Eventlog already exists'}else{[System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog')}" 

我想远程服务器相同。

如果可能,请粘贴该代码。

谢谢。

+0

什么是ASP.Net标签在这里做什么?因为你的powershell命令只是纯粹的.Net调用,所以直接在ASP.Net中执行会更容易。那么为什么要使用PowerShell呢? – 2011-05-31 17:22:09

回答

0

还有一个CreateEventSource带有3个参数,其中最后一个是机器名称。所以这将使它:

if([System.Diagnostics.EventLog]::SourceExists('MySource', 'MyMachine')) 
{ 
    Write 'Eventlog already exists' 
} 
else 
{ 
    [System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog', 'MyMachine') 
} 

请注意,具有3个参数的方法被标记为过时。通过一些更多的工作,您可以使用需要EventSourceCreationData的变体,您也可以在其中指定机器名称。从您的文章在辣妹通讯

Invoke-command -computername server,server -scriptblock {if([System.Diagnostics.EventLog]::SourceExists('MySource')){Write 'Eventlog already exists'}else{[System.Diagnostics.EventLog]::CreateEventSource('MySource','MyCustomLog')}} 

还是吉文利维的更优雅

1

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 
相关问题