我正在尝试从evtx文件中获取已存档事件的列表,并在修改格式后使用REST发布数据。

这是我在Windows 7 x64系统上得到的结果:

Measure-Command {Get-WinEvent -ea SilentlyContinue -path "C:\evtx\arindam_security_1.evtx" -Oldest -MaxEvents 500|select *,@{ Name="Event Data"; Expression={([xml]$_.ToXml()).Event.EventData.Data }} }

TotalSeconds      : 2.3954976
TotalMilliseconds : 2395.4976 

有什么办法可以改善吗?

我已经尝试使用filterhashtable进行相同操作,并且花费了大约5秒钟-几乎是最后结果的两倍。

当我使用REST发布数据时:

Measure-Command {Invoke-WebRequest -Uri https://[ip:port]/events -Body $content -Method Post -ContentType "application/json" -ErrorAction SilentlyContinue}

PS C:\Windows\system32> C:\Users\sarindam\Documents\testrest.ps1


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 24
Milliseconds      : 365
Ticks             : 243658910
TotalDays         : 0.000282012627314815
TotalHours        : 0.00676830305555556
TotalMinutes      : 0.406098183333333
TotalSeconds      : 24.365891
TotalMilliseconds : 24365.891 

24秒使用REST发送相同批次的500个事件。 这个查询可以做些什么来提高性能吗?

我在一些博客中读到,当Invoke-WebRequest在32位上运行时,其效果会更好。 尚未测试。

===============>>#1 票数:0 已采纳

我们能够解决此问题。 面临类似问题的任何人都应该考虑使用C#而不是Powershell编写它。

我们编写了一个自定义dll,它将使用evt / evtx文件并将其转换为我们的平台可以理解的格式。 我们使用了自定义dll作为powershell脚本的一部分来遍历evt / evtx文件。

我们取得的业绩是100+ EPS。 我们从Powershell获得的初始EPS约为18 EPS,而使用多线程,我们可以达到80 EPS。

  ask by Arindam translate from so

未解决问题?本站智能推荐:

3回复

Powershell 2.0 - 从脚本块中提取参数

有没有办法从PS 2.0中的脚本块外部提取脚本块的参数列表? 说我们有 在Powershell 3.0中,我们可以做到这一点 然而,Ast属性包含在powershel 3.0中,因此上述内容在PS 2.0中不起作用https://msdn.microsoft.com/en-
1回复

powershell脚本从csv文件中提取特定列并存储在数组中

我的csv文件如下所示 我的脚本应读取此文件并提取SvnDirectory列,并将其值(导出,导入,服务)存储在数组中。 稍后,我将用它来从svn签出。 该脚本是 问题是,它以无法使用svn签出的方式存储值。 所以当我尝试使用此结帐时 svn url是
1回复

Powershell脚本故障排除

我正在处理一个脚本,该脚本将检查文件夹并返回上次修改文件日期的时间戳。 然后它将比较当前系统时间,并找出两者之间的时差;如果时间大于20分钟,则将发送电子邮件通知。 调试/运行它时,出现以下错误: New-TimeSpan:找不到接受参数'$ null'的位置参数。 在C:\
1回复

在Powershell中提取一个substrng

我在变量$ path中有路径D:\\ Test \\ IL_2014-07 \\ Dev 。 我只想从上述路径中提取07 。 我已经使用Select-String cmdlet尝试了各种选项,但是没有任何效果。 有人可以建议提取07的可能命令吗?
1回复

没有输出Powershell脚本

运行它时,此脚本没有输出。 我认为它显而易见但是虽然它创建了test.txt,但是没有数据放在它删除的文件中! 提前致谢
1回复

Powershell关于异常的继续脚本

我是超级新手。 我写了这个小脚本来查找服务器列表中的DNS条目。 当我使用多个计算机名运行时,它工作正常,没有任何问题。 当它处理无效的主机名时,它会被catch块捕获,但是脚本只是终止而不是继续下一个主机名。 我在这里做错了什么?
1回复

为日志调整PowerShell脚本

我编写了以下脚本,用于通过分析IIS日志来生成有关SSRS,Excel和性能点的报告: 这里的问题是文件夹的大小为19.3 GB,并且该位置中有671个文件: \\ Server_logs \\ IC1-PS502 \\ IIS-exports运行此脚本时,通常需要大约3-4天的时间来生
1回复

使用.bat启动Powershell脚本

我可以在powershell中成功执行以下脚本,但是当我尝试从.bat运行脚本时,我却没有成功。.bat文件是否会以某种方式调用powershell脚本,因为它不断失败。 我将如何创建.bat脚本来运行下面的powershell脚本。 请帮助大家非常感谢
1回复

在注销时弹出的PowerShell脚本

我对PowerShell有基本的了解。 我希望获得将在注销时运行的PowerShell脚本。 该脚本需要在注销前警告用户其USB存储设备仍处于插入状态,并且必须确认该事实,然后选择“确定”,然后继续注销 我知道脚本需要放置在具有正确权限的可访问位置,并且可以使用GPO来强制执行
1回复

PowerShell脚本Hangman游戏

我正在尝试在PowerShell中开发the子手游戏。 我的脚本一切顺利,但游戏中存在逻辑错误。 我想检查一下,当用户两次输入相同的单词时。 简单给出错误! 例如:单词“足球”。 如果用户输入字母“ F”超过1次,则应给出错误消息。 这是我的代码: