Добрый день!
Я работаю с несколькими клиентами, и у одного из моих клиентов есть свои собственные сборы, которые отображают статистику проверки связи с сервером в режиме реального времени, и это очень полезно во время действий по исправлению из-за последующих перезагрузок и т. Д. Я хочу создатьинструмент, подобный этому или любому другому инструменту или средству, где я могу видеть статистику пинга серверов в моем Домене.Могу ли я сделать это с помощью Power Shell случайно?Есть ли способ, которым я мог бы обновить свою страницу Power Shell или выходную страницу HTML, которая обновляет статистику пинга соответствующих серверов, пожалуйста!Я понятия не имею о языках программирования, но я хочу сделать это как свой любимый проект, и я не могу спросить моего клиента обо всех этих деталях.Помощь очень ценится!
Спасибо, ребята, я попробовал ниже два кода:
param(
[int]$waitseconds = 3
)
while($true) {
$servers = Get-Content .\servers.txt
$collection = $()
foreach ($server in $servers)
{
$status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s) }
if (Test-Connection $server -Count 1 -ea 0 -Quiet)
{
$status["Results"] = "Up"
}
else
{
$status["Results"] = "Down"
}
New-Object -TypeName PSObject -Property $status -OutVariable serverStatus
$collection += $serverStatus
}
$collection | out-gridview; sleep $waitseconds
}
Это дает мне вывод в виде сетки, а также успешно обновляет вывод, но новый обновленвывод будет представлен в новом окне просмотра сетки.Я не могу позволить себе открывать многочисленные окна.Поэтому я попробовал приведенный ниже код:
param(
[int]$waitseconds = 3
)
while($true) {
$servers = Get-Content .\servers.txt
$collection = $()
foreach ($server in $servers)
{
$status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s) }
if (Test-Connection $server -Count 1 -ea 0 -Quiet)
{
$status["Results"] = "Up"
}
else
{
$status["Results"] = "Down"
}
New-Object -TypeName PSObject -Property $status -OutVariable serverStatus
$collection += $serverStatus
}
Start-Process -FilePath powershell.exe -ArgumentList "-WindowStyle -NoNewWindow -Command &{ $collection | out-gridview; sleep $waitseconds; exit }" -Wait
}
Этот код вовсе не выводит данные gridview, он просто отображает статистику пинга в самой оболочке, но может обновляться.
Я пробовал приведенный ниже кодтакже с -NoNewWWindow в конце, и это дает вывод один раз, а затем закрывается:
param(
[int]$waitseconds = 3
)
while($true) {
$servers = Get-Content .\servers.txt
$collection = $()
foreach ($server in $servers)
{
$status = @{ "ServerName" = $server; "TimeStamp" = (Get-Date -f s) }
if (Test-Connection $server -Count 1 -ea 0 -Quiet)
{
$status["Results"] = "Up"
}
else
{
$status["Results"] = "Down"
}
New-Object -TypeName PSObject -Property $status -OutVariable serverStatus
$collection += $serverStatus
}
Start-Process -FilePath powershell.exe -ArgumentList "-WindowStyle -Command &{ $collection | out-gridview; sleep $waitseconds; exit }" -Wait -NoNewWindow
}
Помогите мне с любыми изменениями в моем первом коде, чтобы представление сетки не открывалось при каждом обновлении, пожалуйста!