我在 powershell 中有一个脚本来访问列表中的每个服务器并检查它是否在线。由于这很耗时,我编写了一个线程逻辑来调用该脚本,我的脚本工作正常。但是我想将我的好/坏服务器分成两个不同的文本文件,我不能在我的脚本中对其进行硬编码,因为显然资源可能被另一个线程使用。如果我在线程逻辑中编写它,我的输出(好的和坏的)将在同一个文件中。我怎样才能很好地格式化只需要的输出?
### Start-MultiThread.ps1 ###
$Servers =Get-Content -Path "C:\Scripts\Servers.txt"
#Start all jobs
ForEach($Server in $Servers){
Start-Job -FilePath "C:\Scripts\ChkOnline.PS1" -ArgumentList $Server
}
#Wait for all jobs
Get-Job | Wait-Job
#Get all job results
Get-Job | Receive-Job |Out-File -FilePath "C:\Scripts\Output.txt"
##ChkOnline.PS1###
Param($Server = "ServerNameHolder")
$PingStatus= Test-Connection $Server -Quiet
If ($PingStatus -eq 1)
{
Return $Server " is online!!"
}
Else
{
Return $Server " is offline!"
}