Как я могу правильно вывести свой try-catch в текстовый файл? - PullRequest
0 голосов
/ 22 января 2019

Я работаю над сценарием powershell, который позволил бы мне увидеть, работают ли мои DHCP-серверы нормально и каково их текущее состояние (сколько осталось адресов, сколько из них используется ...).

Пока все хорошо.Я получаю всю информацию, которая мне нужна, но первый тест здесь состоит в том, чтобы проверить, отвечает ли сервер в значительной степени.

Для этого я использую try-catch и хочу вывести в.txt все серверы, которые не отвечают.Проблема: я выдаю только последний сервер, который не ответил, я не получаю предыдущий, который не ответил так же.

Пробовал |вне файла |сет-контент и |add-content Похоже, что поиск ничего не дал.

$DHCPSRV=""
$myError=0
$myArray=@( Import-Csv .\CSV\DHCP_list.csv)
foreach ($element in $myArray) {

try {

Write-Output ""
$DHCPSRV=$element.FQDN
$Message = "Server DHCP: " + $DHCPSRV
Write-Output $Message
Write-Output ""
$srv=get-dhcpserverv4statistics -ComputerName $DHCPSRV 
$Message ="Server start time : "  + $srv.ServerStartTime 
Write-Output $Message
$Message ="Number of address : "  + $srv.TotalAddresses
Write-Output $Message
$Message ="Address used : "  + $srv.AddressesInUse
Write-Output $Message
$Message ="% remaining : "  + $srv.PercentageAvailable + " %"
Write-Output $Message     
Get-DhcpServerSetting -ComputerName $DHCPSRV
Write-Output ""

}
catch{

  Write-host "Server not responding "  $DHCPSRV -BackgroundColor red      -ForegroundColor White 
 $myerror=$error+1 
  $test =  $DHCPSRV   

   }    
}

 if ($myError -eq 0){
   Write-Output ""
 Write-host "All DHCP are working good"  -BackgroundColor green    -ForegroundColor black 

    }

$test | Set-Content '.\Output\dhcp_failed.txt'
 $test | Add-Content '.\Output\dhcp_failed.txt'
 Write-Output ""
Write-Output ""
 Write-Output "------------------------------------------------"
pause 

Я хотел бы вывести все серверы, которые не прошли тест try-catch, в моем txt!

1 Ответ

0 голосов
/ 22 января 2019

решено bluuf - Спасибо!

Просто нужно было добавить - append в мой улов

catch{
  Write-host "Server not responding "  $DHCPSRV -BackgroundColor red -ForegroundColor White 
 $myerror=$error+1 
 $DHCPSRV | out-file '.\path\file.txt' -append   
   }   

также добавил clear-content '.\path\file.txt' в начале скрипта, чтобы мой файл очищался при каждом запуске!

...