Java 将自定义Windows事件查看器日志从csv导入sql表
我有一个powershell命令,从远程windows服务器获取事件查看器日志,并将其放入csv文件中,然后显示它并将其添加到数据库(sql server) 这段代码运行powershell命令并将输出转换为csv文件,然后我需要将该输出转换为单独的字段并放入数据库设置中,如下所示:Java 将自定义Windows事件查看器日志从csv导入sql表,java,sql-server,powershell,windows-server-2012-r2,event-viewer,Java,Sql Server,Powershell,Windows Server 2012 R2,Event Viewer,我有一个powershell命令,从远程windows服务器获取事件查看器日志,并将其放入csv文件中,然后显示它并将其添加到数据库(sql server) 这段代码运行powershell命令并将输出转换为csv文件,然后我需要将该输出转换为单独的字段并放入数据库设置中,如下所示: [TimeGenerated] [varchar](50) NOT NULL, [EventID] [varchar](50) NOT NULL, [Message] [varchar](500) NOT NULL
[TimeGenerated] [varchar](50) NOT NULL,
[EventID] [varchar](50) NOT NULL,
[Message] [varchar](500) NOT NULL,
[Source] [varchar](50) NOT NULL,
[EntryType] [varchar](50) NOT NULL,
[PSComputerName] [varchar](50) NOT NULL,
[LogName] [varchar] (50) NOT NULL
要么我需要找出Java来正确地将其放入数据库,要么我需要找到更好的方法。我面临的主要问题是,事件的消息部分位于多行上
提前感谢您的帮助我无法测试这一点,但我可以看到您的输出线路存在问题
Out文件
无法生成正确的CSV,还可能引入编码问题。另外,看起来您正在重新读取文件。如果是这种情况,我们可以完全跳过这一步,只需使用设计用于处理从Get EventLog
输出的对象的。因此我将命令的最后一行改为
+ " | ConvertTo-Csv -NoTypeInformation
这会给你一份你正在寻找的工作副本。如果我在正确的轨道上,你仍然有问题,我需要你为我调试 非常感谢你回答这个问题。我会在一小时内检查并调试。再次感谢。这对修复未格式化的csv文件起到了作用,现在我的主要问题是,如何获取该csv并将字段输入到sql表中,我不介意重新创建该sql表,我只希望sql表中的每个事件。请帮我解决这个问题。我已成功地将数据导入CSV,然后再导入SQL。但是,我无法让PowerShell将日志名添加到CSV。我正在运行这个命令:Invoke命令-ComputerName Baron服务器-Credential$cred-Authentication Default-ScriptBlock{Get EventLog-LogName System-EntryType Error |选择对象-Property PSComputerName,Site,TimeGenerated,EventID,Message,Source,EntryType}|导出Csv-NoTypeInformation-Path C:/output.Csv
+ " | Out-File " + serverClicked + "." + logName + entryType + "." + curDate + ".csv; cat " + serverClicked + "." + logName + entryType + "." + curDate + ".csv";
+ " | ConvertTo-Csv -NoTypeInformation