如何使用Windows PowerShell中的日志解析器,通过使用每个循环来查询来自多个Exchange服务器的日志?

问题描述 投票:0回答:1

我想通过使用for each循环在windows powershell中使用下面提到的命令。如果您对此查询有任何想法,请与我们联系。

因为我有点想为FROM参数输入多个值,因为我需要从给定位置搜索来自不同服务器的日志。

我想提供如下所示的FROM的值,但我没有完整的想法来创建整个PowerShell脚本结构。

\\server1\d$\Program Files\Microsoft\Exchange\V15\Logging\HttpProxy\Mapi\*.*
\\server2\d$\Program Files\Microsoft\Exchange\V15\Logging\HttpProxy\Mapi\*.*

我为个人服务器创建的命令:

LogParser.exe "
    SELECT DateTime,AuthenticatedUser,UserAgent 
    FROM 'd:\Program Files\Microsoft\Exchange\V15\Logging\HttpProxy\Mapi\*.*' 
    WHERE AuthenticatedUser LIKE '%user1%' 
        AND UserAgent LIKE '%Microsoft Office%'" -i:CSV -o:csv > "C:\Log parser\server1\1.csv"
exchange-server powershell-v3.0
1个回答
0
投票

假设您可以访问远程服务器上的管理共享,您可以执行以下操作:

$servers = 'server1', 'server2', ...
$servers | ForEach-Object {
    LogParser.exe -i:csv -o:csv -q "SELECT DateTime,AuthenticatedUser,UserAgent
        FROM '\\${_}\D$\Program Files\Microsoft\Exchange\V15\Logging\HttpProxy\Mapi\*.*'
        WHERE AuthenticatedUser LIKE '%user1%' 
            AND UserAgent LIKE '%Microsoft Office%'" |
        Out-File "C:\Log parser\${_}.csv"
}
© www.soinside.com 2019 - 2024. All rights reserved.