我是PowerShell的新手,我一直在研究这个问题,但我还没有找到我想要的东西。该网站仍在使用PowerShell 2,无法升级。
我有一个服务器列表,我想ping它以验证它们已启动,我正在使用文本文件来填充名称。我有脚本的ping部分工作和电子邮件部分工作正常。现在,我正在尝试将两者结合起来,以发送有关失败的特定服务器的电子邮件。
我使用以下内容:
Test-Connection -ComputerName (Get-Content Computers.txt) -Delay 5 -Quiet
这将返回每台计算机的布尔值true或false。
我知道Get-Content
会自动创建一个数组。那么将结果写为关联数组的最佳方法是,还是有办法让Test-Connection
一次循环一个通过Computers.txt数组,然后只是在发生故障时发送电子邮件它在特定的服务器上?
答案 0 :(得分:1)
试试这个:
Get-Content Computers.txt | ForEach-Object {
if (Test-Connection -ComputerName $_ -Delay 5 -Quiet) {
#Send email that it was a success
} else {
#Computer unreachable
}
}
基本上,您将计算机列表传递给foreach-object循环,并遍历列表,ping每台计算机并发送电子邮件。