我想运行一个脚本来检查是否有 5 个服务器启动并基于特定的服务正在运行。如果该服务正在运行,那么我们知道该服务器已启动并且可以访问。如果它没有回复回复,那么我希望它不断检查它。这是我到目前为止所得到的:
Get-Service LANMANSERVER -ComputerName JOHNJ1
Get-Service LANMANSERVER -ComputerName JOHNJ2
Get-Service LANMANSERVER -ComputerName JOHND1
Get-Service LANMANSERVER -ComputerName JOHNM
Get-Service LANMANSERVER -ComputerName JOHNI
start-sleep 90
最佳答案
是的,您只需要查看 Status
返回对象上的属性,如下所示:
$servers = "JOHNJ1", "JOHNJ2"
foreach ($server in $servers) {
$status = (get-service -Name lanmanserver -ComputerName $server).Status
if ($status -eq "Running") {
"Its Up!"
} else {
"Its Down!"
}
}
更新 以下是如何等待服务器联机的示例:
$servers = "JOHNJ1", "JOHNJ2"
foreach ($server in $servers) {
while ( (get-service -Name lanmanserver -ComputerName $server).Status -ne "Running" ) {
"Waiting for $server ..."
Start-Sleep -Seconds 10
}
"$server is Up!"
}
关于powershell 循环以连续检查服务器是否已启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9098102/