powershell 循环以连续检查服务器是否已启动

标签 powershell powershell-2.0

我想运行一个脚本来检查是否有 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/

相关文章:

regex - 删除Powershell中具有非英语字符的行

Powershell:在 FileSystemAccessRule 中结合 ContainerInherit 和 ObjectInherit?

Powershell,交互式调用静态方法

powershell - 从 ADUser DistinguishedName 获取 CN 值

powershell - 如何使用 -split 运算符,同时仍然保留用于拆分字符串的子字符串?

string - Powershell字符串分割差异

arrays - Powershell 阵列范围;为什么我的数组是空的?

windows - 任务运行时等待?/任务完成后跳转下一行?

c# - 如何使用 Add-Type 添加带有 System.Windows.Forms 命名空间的 C# 代码?

powershell - 在 Powershell 中获取 ADFS token