Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iis 如何使用Powershell搜索Exchange日志?_Iis_Powershell_Logging_Smtp_Exchange Server - Fatal编程技术网

Iis 如何使用Powershell搜索Exchange日志?

Iis 如何使用Powershell搜索Exchange日志?,iis,powershell,logging,smtp,exchange-server,Iis,Powershell,Logging,Smtp,Exchange Server,这是一个初步的脚本,它有点难看,需要一些工作(特别是pop3日志部分),但我定期使用它,以使我的生活更轻松。它打算在Powershell ISE中使用,因此我在底部包括了“轻松重新运行”部分。如果您觉得有用,请随时提供建议、修复和清理 确保更新MailServerName和日志文件夹以匹配您的环境 #==首先设置这些== $SearchFilter=“sonic.net” $StartDate=(获取日期).AddDays(-1)#(获取日期2012年1月10日) $EndDate=(获取日期)

这是一个初步的脚本,它有点难看,需要一些工作(特别是pop3日志部分),但我定期使用它,以使我的生活更轻松。它打算在Powershell ISE中使用,因此我在底部包括了“轻松重新运行”部分。如果您觉得有用,请随时提供建议、修复和清理

确保更新MailServerName和日志文件夹以匹配您的环境

#==首先设置这些== $SearchFilter=“sonic.net” $StartDate=(获取日期).AddDays(-1)#(获取日期2012年1月10日) $EndDate=(获取日期).AddDays(-0)#(获取日期2012年1月11日) $mailserver=“MailServerName” $OutputFolder=“$env:userprofile\Desktop\ExchangeLogs\” $IISLogsFolder=“\\$mailserver\c$\inetpub\logs\LogFiles\W3SVC1” $POP3LogsFolder=“\\$mailserver\c$\Program Files\Microsoft\Exchange Server\V14\Logging\POP3”#未测试 $SMTPLogsFolder=“\\$mailserver\c$\Program Files\Microsoft\Exchange Server\V14\TransportRoles\Logs\MessageTracking” $POP3OutFile=“$OutputFolder\ExchangePOP3Logs.csv” $IISOutFile=“$OutputFolder\ExchangeIsLogs(owa、exchange和activesync).csv” $SMTPOutFile=“$OutputFolder\ExchangeSMTPLogs.csv” #==初始化== 功能检查{ $IISFiles=Get ChildItem$IISLogsFolder*.log |其中对象{($\.CreationTime-gt$StartDate)-和($\.CreationTime-lt$EndDate)} $IISHeader=($IISFiles |选择对象-第一个1 |获取内容|选择字符串“#字段”|选择对象-第一个1).ToString().Substring(9).split(“”) $IISLogs=$IISFiles |获取内容|选择字符串$SearchFilter#可能可以执行正则表达式搜索(未测试) $IISLogsCsv=$IISLogs | ConvertFrom Csv-分隔符“”-标题$IISHeader $IISLOGSCV |导出Csv-路径“$IISOutFile” #启动excel“$IISOutFile” } 函数检查-POP3日志{#!!!未测试!!! $POP3Files=Get ChildItem$POP3LogsFolder*.log |其中对象{($\.CreationTime-gt$StartDate)-和($\.CreationTime-lt$EndDate)} $POP3Header=($POP3Files |选择对象-第一个1 |获取内容|选择字符串“#字段”|选择对象-第一个1).ToString().Substring(9).split(“”)ToDo:更新选择字符串、子字符串和split([分隔符]) $POP3Logs=$POP3Files |获取内容|选择字符串$SearchFilter#可能能够执行正则表达式搜索(未测试) $POP3LogsCsv=$POP3Logs | ConvertFrom Csv-分隔符“”-标题$POP3Header#ToDo:更新分隔符 $POP3LogsCSV |导出Csv-路径“$POP3OutFile” #启动excel“$POP3OutFile” } 函数检查SMTPLogs{ $SMTPFiles=Get ChildItem$SMTPLogsFolder*.log |其中对象{($\.CreationTime-gt$StartDate)-和($\.CreationTime-lt$EndDate)} $SMTPHeader=($SMTPFiles |选择对象-第一个1 |获取内容|选择字符串“#字段”|选择对象-第一个1).ToString().Substring(9).拆分(“,”) $SMTPLogs=$SMTPFiles |获取内容|选择字符串$SearchFilter#可能能够执行正则表达式搜索(未测试 $SMTPLogsCsv=$SMTPLogs | ConvertFrom Csv-分隔符“,”-标题$SMTPHeader $SMTPLogsCSV |导出Csv-路径“$SMTPOutFile” #启动excel“$SMTPOutFile” } #==运行== 检查工作 #Check-Pop3Logs还不起作用 检查SMTPLogs 新项目-类型目录$OutputFolder-ErrorAction silentlycontinue 启动$OutputFolder
问题是什么?问题是“如何使用Powershell搜索我的Exchange日志?”我在一个spiceworks论坛上为某人发布了这篇文章,我认为在这里发布这篇文章是有意义的,这样,如果其他人有类似的需求,可以将它作为起点。页面顶部的文章应该是一个问题。这是一种格式:顶部是一个问题,然后人们在下面给出他们的答案。你可以回答自己的问题如果你愿意的话。 # == Begin by setting these == $SearchFilter = "sonic.net" $StartDate = (Get-Date).AddDays(-1) #(Get-Date 10/01/2012) $EndDate = (Get-Date).AddDays(-0) #(Get-Date 11/01/2012) $mailserver = "MailServerName" $OutputFolder = "$env:userprofile\Desktop\ExchangeLogs\" $IISLogsFolder = "\\$mailserver\c$\inetpub\logs\LogFiles\W3SVC1" $POP3LogsFolder = "\\$mailserver\c$\Program Files\Microsoft\Exchange Server\V14\Logging\POP3" # Untested $SMTPLogsFolder = "\\$mailserver\c$\Program Files\Microsoft\Exchange Server\V14\TransportRoles\Logs\MessageTracking" $POP3OutFile = "$OutputFolder\ExchangePOP3Logs.csv" $IISOutFile = "$OutputFolder\ExchangeIISLogs (owa, exchange, and activesync).csv" $SMTPOutFile = "$OutputFolder\ExchangeSMTPLogs.csv" # == Initialization == function Check-IISLogs { $IISFiles = Get-ChildItem $IISLogsFolder *.log|Where-Object {($_.CreationTime -gt $StartDate) -and ($_.CreationTime -lt $EndDate)} $IISHeader = ($IISFiles|Select-Object -First 1|Get-Content|select-string "#fields"|Select-Object -First 1).ToString().Substring(9).split(" ") $IISLogs = $IISFiles|Get-Content|Select-String $SearchFilter # might be able to do RegEx search (untested) $IISLogsCsv = $IISLogs|ConvertFrom-Csv -Delimiter " " -header $IISHeader $IISLogsCSV|Export-Csv -Path "$IISOutFile" #start excel "$IISOutFile" } function Check-Pop3Logs { # !!!UNTESTED!!! $POP3Files = Get-ChildItem $POP3LogsFolder *.log|Where-Object {($_.CreationTime -gt $StartDate) -and ($_.CreationTime -lt $EndDate)} $POP3Header = ($POP3Files|Select-Object -First 1|Get-Content|select-string "#fields"|Select-Object -First 1).ToString().Substring(9).split(" ") #ToDo: update select-string, substring, and split([delimiter]) $POP3Logs = $POP3Files|Get-Content|Select-String $SearchFilter # might be able to do RegEx search (untested) $POP3LogsCsv = $POP3Logs|ConvertFrom-Csv -Delimiter " " -header $POP3Header #ToDo: update Delimiter $POP3LogsCSV|Export-Csv -Path "$POP3OutFile" #start excel "$POP3OutFile" } function Check-SMTPLogs { $SMTPFiles = Get-ChildItem $SMTPLogsFolder *.log|Where-Object {($_.CreationTime -gt $StartDate) -and ($_.CreationTime -lt $EndDate)} $SMTPHeader = ($SMTPFiles|Select-Object -First 1|Get-Content|select-string "#fields"|Select-Object -First 1).ToString().Substring(9).split(",") $SMTPLogs = $SMTPFiles|Get-Content|Select-String $SearchFilter # might be able to do RegEx search (untested $SMTPLogsCsv = $SMTPLogs|ConvertFrom-Csv -Delimiter "," -header $SMTPHeader $SMTPLogsCSV|Export-Csv -Path "$SMTPOutFile" #start excel "$SMTPOutFile" } # == Run == Check-IISLogs #Check-Pop3Logs # doesn't work yet Check-SMTPLogs New-Item -Type Directory $OutputFolder -ErrorAction silentlycontinue start $OutputFolder <# -- Easy rerun $SearchFilter = "username" #$StartDate = (Get-Date).AddDays(-1) #(Get-Date 10/01/2012) #$EndDate = (Get-Date).AddDays(-0) #(Get-Date 11/01/2012) Check-IISLogs #Check-Pop3Logs # doesn't work yet Check-SMTPLogs start $OutputFolder #>