Loops 如何搜索多个域控制器';Powershell中的安全日志和限制日期?
早上好,下午好,晚上好,或者晚安 我正试图承担一个实习项目。脚本的目的是如何在不同的安全日志中搜索特定用户在特定(给定)时间限制内的锁定事件Loops 如何搜索多个域控制器';Powershell中的安全日志和限制日期?,loops,powershell,formatting,Loops,Powershell,Formatting,早上好,下午好,晚上好,或者晚安 我正试图承担一个实习项目。脚本的目的是如何在不同的安全日志中搜索特定用户在特定(给定)时间限制内的锁定事件 $ComputerName = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().FindDomainController().Name $EventList = Get-Eventlog –ComputerName $ComputerName -L
$ComputerName =
[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain().FindDomainController().Name
$EventList = Get-Eventlog –ComputerName $ComputerName -LogName Security
-InstanceID 4740 -Message *Username*
$EventList | Format-List -Property TimeGenerated,Message
因此,我很好奇如何使用date类输出特定日期的错误消息。例如,如果我只想查看2014年5月5日至2014年5月20日期间的错误消息。还包括如何通过网络上的每个域控制器进行循环。我想为它设置某种类型的循环结构是很容易的。(一旦我知道正确的语法)
这是我最初的代码。如果您想为自己的jolly kicks找到一个类似的代码,以找到您想要的任何类型的错误,那么就使用这个
$ComputerName = "REPLACEWITHYOURCOMPUTERNAME"
$EventList = Get-Eventlog –ComputerName $ComputerName -LogName Security -Message *REPLACEWITHYOURUSERNAME*
$EventList | Format-List -Property TimeGenerated,Message
要搜索最多2天前的内容,请执行以下操作:
Get-EventLog -LogName Security -After ((Get-Date).AddDays(-2))
要仅搜索昨天,请执行以下操作:
Get-EventLog -LogName Security -After ((Get-Date).AddDays(-2)) -Before ((Get-Date).AddDays(-1))
我想你现在应该明白了。当然,要使最后一个脚本起作用,您必须将其包装在参数中,等等
编辑:您还询问了如何创建循环
例如:
$ComputerList = Get-Content ComputerList.txt
foreach ($Computer in $Computerlist) {
Get-EventLog -Logname Security -Computername $Computer
Write-host "$Computer has been checked"
}
作为几个DC环境的补充说明,这将是一个令人讨厌的网络杀手脚本。远程解析事件日志通常不是一个好主意。相反,请考虑使用Invoke命令来启动查询,并等待DCs向您发送输出。通过这种方式,它们在本地执行,您只接收一个输出。例如,与Start Job一起使用时,通常速度要快得多