Ха sh Таблица для L oop - пинг IP-адрес для установки Длительность - PullRequest
0 голосов
/ 10 апреля 2020

Я застрял в этом маленьком проекте, над которым я работал.

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

#Output Hash Table as CSV $IPAddressHash.GetEnumerator()

Я также думаю, что у меня есть некоторая недостающая информация здесь ... $IPAddressHash.Add($IPAddressToPing)

Спасибо в аванс

#Place holder
$InputText1 = #unused
$InputText2 = "TestSite" ##Popup input box


$DateTime = $(get-date -Format yyyyddmm_hhmmtt)

#Set Output File
$OutputCSVFilePath = "C:\MSP_PingLogs\ $($InputText2) $($DateTime).csv"

#Set Information
$IPAddress = "192.168.0.147"
$SecondsToRun = 5
 
#Hash Table to hold results
$IPAddressHash = @(
   $IPAddress)

$outList = foreach ($IPAddress in $IPAddressToPing){
}

#Test Ping
for ($i = 0; $i -lt $SecondsToRun; $i++){
$Pingable = Test-Connection -ComputerName $IPAddressToPing -Count 1 -Quiet
if ($Pingable)
    {
    Write-Host "Seccess" $($IPAddressToPing) at $(Get-Date), $responseTime -ForegroundColor Green
    #$IPAddressHash.($IPAddressToPing.("IPAddressToPing"),1)
}
else {
    Write-Host "FAILED PING " $($IPAddressToPing) at $(Get-Date), $responseTime -ForegroundColor Red
    #$IPAddressHash.($IPAddressToPing.("IPAddressToPing"),0)
}
Start-Sleep -Seconds 1
    }


$outList = @(
    [pscustomobject]@{
        Address= $IPAddressToPing
        Date= $DateTime
        Pingable = $Pingable
    }
    )

$outList | Export-Csv -path $OutputCSVFilePath -NoTypeInformation


#Show where file is
Write-Host "Output can be found at: $($OutputCSVFilePath)"

1 Ответ

0 голосов
/ 11 апреля 2020

вот как я бы сделал то, что я думаю вы пытаетесь сделать ... [ ухмылка ]

что он делает ...

  • создает список систем для проверки связи
    заменяет весь материал #region/#endregion вызовом Get-Content или каким-либо другим способом загрузки списка в виде имен системы в виде простого текста.
  • устанавливает различные константы
  • перебирает список систем
  • перебирает счетчик тестов
  • получает $False/$True ответ от Test-Connection
  • записывает "pingable" информацию на экран
  • создает [PSCustomObject] с желаемыми свойствами
  • отправляет это в $Results collection
  • отображает коллекция на экране
  • сохраняет коллекцию в файл CSV

вот код ...

#region >>> fake reading in a text file
#    in real life, use Get-Content
$ComputerList = @(
    'LocalHost'
    '10.0.0.1'
    '127.0.0.1'
    'BetterNotBeThere'
    )
#endregion >>> fake reading in a text file

$TestCount = 3
$DateTimeFormat = 'yyyy-MM-dd HH:mm:ss.ff'
$LogDir = $env:TEMP
$PingLog = 'PingLog_-_{0}.csv' -f (Get-Date).Date.ToString('yyyy-MM-dd')
$FullPingLog = Join-Path -Path $LogDir -ChildPath $PingLog

$Results = foreach ($CL_Item in $ComputerList)
    {
    foreach ($TC_Item in 1..$TestCount)
        {
        $Pingable = Test-Connection -ComputerName $CL_Item -Count 1 -Quiet
        if ($Pingable)
            {
            Write-Host ('Ping of {0} was successful.' -f $CL_Item) -ForegroundColor 'Green'
            }
            else
            {
            Write-Warning ('    Unable to Ping {0} ...' -f $CL_Item)
            }
        }
    [PSCustomObject]@{
        ComputerName = $CL_Item
        Pingable = $Pingable
        TimeStamp = Get-Date -Format $DateTimeFormat
        }
    }

# show on screen
$Results |
    # this forces things to show immediately
    #    otherwise the "Write-*" calls might interleave with the output stream
    Out-Host

# send to CSV
$Results |
    Export-Csv -LiteralPath $FullPingLog -NoTypeInformation

вывод на экран ...

Ping of LocalHost was successful.
Ping of LocalHost was successful.
Ping of LocalHost was successful.
WARNING:     Unable to Ping 10.0.0.1 ...
WARNING:     Unable to Ping 10.0.0.1 ...
WARNING:     Unable to Ping 10.0.0.1 ...
Ping of 127.0.0.1 was successful.
Ping of 127.0.0.1 was successful.
Ping of 127.0.0.1 was successful.
WARNING:     Unable to Ping BetterNotBeThere ...
WARNING:     Unable to Ping BetterNotBeThere ...
WARNING:     Unable to Ping BetterNotBeThere ...

ComputerName     Pingable TimeStamp             
------------     -------- ---------             
LocalHost            True 2020-04-10 19:47:33.98
10.0.0.1            False 2020-04-10 19:47:45.62
127.0.0.1            True 2020-04-10 19:47:45.65
BetterNotBeThere    False 2020-04-10 19:47:45.68

содержимое файла PingLog_-_2020-04-10.csv ...

"ComputerName","Pingable","TimeStamp"
"LocalHost","True","2020-04-10 19:47:33.98"
"10.0.0.1","False","2020-04-10 19:47:45.62"
"127.0.0.1","True","2020-04-10 19:47:45.65"
"BetterNotBeThere","False","2020-04-10 19:47:45.68"
...