脚本转到主机文件上的每个IP,然后执行脚本

时间:2016-05-08 19:48:15

标签: powershell scripting

我一直在做很多研究,但是找不到一种方法来获取PowerShell脚本来查看主机文件,然后转到每个主机名并拉出日志并将它们保存在一个地方,我有一个脚本去这将拉日志,但仅限本地主机。如何让脚本转到每台机器并执行我的脚本?

多了其中的东西我还有其他步骤将它放入文件只是想知道如何使用你提到的命令跳转到每台机器并收集这些文件。

$computers = get-content C:\MyScripts\MachineNames.txt

foreach ($computer in $computers) 
{
$Date = [DateTime]::Now.AddDays(-7)
$Date.tostring("MM-dd-yyyy"), $env:Computername
Get-EventLog "Security" -After $Date 

| Where -FilterScript {$_.EventID -eq 4624 -and $_.ReplacementStrings[4].Length -gt 10 -and $_.ReplacementStrings[5] -notlike "*$"} `
| foreach-Object 
$row = "" | Select UserName, LoginTime
$row.UserName = $_.ReplacementStrings[5]
$row.LoginTime = $_.TimeGenerated
$row # this will put the current row to the pipeline 
} | Export-Csv 'c:\output.csv

现在我得到:在线:9 char:1 + | Where -FilterScript {$ .EventID -eq 4624 -and $ .ReplacementStrings [4] .Length ... +〜 不允许使用空管道元素。 在行:15 char:3 +} | Export-Csv' c:\ output.csv +〜 不允许使用空管道元素。 在行:15 char:16 +} | Export-Csv' c:\ output.csv + ~~~~~~~~~~~~~~ 该字符串缺少终结符:'。     + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException     + FullyQualifiedErrorId:EmptyPipeElement

2 个答案:

答案 0 :(得分:0)

使用psexec.exe或扩展代码以读取远程计算机

您想分享您的脚本,以便有人可以查看它并扩展功能吗?

答案 1 :(得分:0)

这是使用正确的脚本

$computers = get-content C:\MyScripts\MachineNames.txt

$Result = foreach ($computer in $computers)  {

$Date = [DateTime]::Now.AddDays(-1)
$Date.tostring("MM-dd-yyyy"), $env:Computername
Get-EventLog "Security" -After $Date | Where-object -FilterScript {$_.EventID -eq 4624 -and $_.ReplacementStrings[4].Length -gt 10 -and $_.ReplacementStrings[5] -notlike "*$"} |
foreach-Object {
$row = "" | Select UserName, LoginTime
$row.UserName = $_.ReplacementStrings[5]
$row.LoginTime = $_.TimeGenerated
$row # this will put the current row to the pipeline 

                 } 
}
$Result | Export-Csv C:\MyScripts\output.csv