首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Power Shell服务器实时ping状态

Power Shell服务器实时ping状态
EN

Stack Overflow用户
提问于 2018-09-18 22:44:48
回答 1查看 292关注 0票数 -1

日安!

我与多个客户端一起工作,我的一个客户端有自己的收费,显示实时服务器ping状态,这是非常有帮助的在打补丁活动,因为后续的重启等。我想设计一个这样的工具或任何其他工具或手段,我可以看到我的域中的服务器的实时ping统计。我可以使用Power Shell来做这件事吗?有没有办法可以刷新我的Power Shell页面或输出HTML页面,它可以更新各自服务器的ping统计数据!我对编程语言一无所知,但我想把它作为我的宠物项目来做,我不能向我的客户询问所有这些细节。非常感谢您的帮助!

谢谢大家,我已经尝试了以下两个代码:

代码语言:javascript
复制
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
}

这为我提供了网格视图中的输出,它还成功地刷新了输出,但新刷新的输出将显示在新的网格视图窗口中。我开不起太多的窗户。所以我尝试了下面的代码:

代码语言:javascript
复制
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
}

这段代码根本没有给出网格视图输出,它只是在shell中显示ping统计数据,但可以刷新。

我也尝试了下面的代码,在最后使用-NoNewWWindow,这会给出一次输出,然后关闭:

代码语言:javascript
复制
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
}

请帮助我修改我的第一个代码,这样网格视图就不会在每次刷新时都打开!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-19 06:51:16

你有没有尝试过这样的东西:

代码语言:javascript
复制
$collection | out-gridview
sleep $waitseconds
(Get-Process -id $PID).CloseMainWindow()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52389186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档