获取数据而不使用数组用于多个条目

时间:2015-08-10 09:03:12

标签: arrays powershell events logging

我们使用数组从日志中获取数据,并且需要花费大量时间,因为它会搜索所有日志。我们想要每个来源的最新2个日志。这是我们现在正在使用的powershell代码。

$arraylist = Get-Content C:\sources\sourceLFE2.csv; 
foreach($list in $arraylist)
{
$source1 = $list.Trim();

if([string]::IsNullOrEmpty($source1))
{
continue;

}
if(($source1 -eq $b))
{
continue;

}
if(($source1 -eq $c))
{
continue;

}
else
{
$sourcelist = Get-EventLog -computer $computer4 -logname "lync server" -Source $source1  -EntryType "Error" ,"warning","information" -newest 1 -ErrorAction SilentlyContinue |format-table -wrap |fl  
$arraysource = $arraysource + $sourcelist; 

}
}
$arraysource | out-file -filepath $Eventfrontend;

此代码从文本文件中获取输入,我想手动编写这些代码以减少时间,以便我们只为文件中提到的每个源获取最新的2个事件。

如何减少时间,以便我们可以获取实时应用程序的日志?请帮忙。

1 个答案:

答案 0 :(得分:-1)

这应该效果更好

$arraysource = @()

$arraylist = Get-Content C:\sources\sourceLFE2.csv; 

foreach($list in $arraylist)

{

$source1 = $list.Trim()

if([string]::IsNullOrEmpty($source1)) { continue }

if(($source1 -eq $b)) { continue }

if(($source1 -eq $c)) { continue }

$arraysource += Get-EventLog -computer $computer4 -logname "lync server" -Source $source1  -EntryType "Error" ,"warning","information" -newest 2 -ErrorAction SilentlyContinue |format-table -wrap |fl  

}

$arraysource | out-file -filepath $Eventfrontend