当然,一个班轮只会发射一次。您使用WMI而不是内置PowerShell cmdlet的任何原因 - GET-服务 ?
我的建议是使用WMI事件观察程序,使用您已经拥有的内容但是以服务和任何相关服务为目标,并在状态运行时通知您该事件。
使用PowerShell监视和响应服务器上的事件
本文使用PowerShell和VBScript来执行此操作,但您可以使用所有PowerShell执行此操作。
您可以拥有临时或永久观察者。
PowerShell和事件:WMI临时事件订阅
那些可能会有点深入,所以,如果它们不适合你,你可以在服务上线后停止的Do循环中使用你的一行。
基本示例:
$TargetHost = $env:COMPUTERNAME do { $TargetOperation = Get-WmiObject Win32_Service -ComputerName $TargetHost | Where-Object {$_.Name -eq "AppReadiness"} "Checking host $TargetHost for service/process $($TargetOperation.Name)" Start-Sleep -Seconds 3 } until (($TargetOperation).State -eq 'Running') "Validation of host $TargetHost for service/process $($TargetOperation.Name) complete" # Results Checking host WS70 for service/process AppReadiness Checking host WS70 for service/process AppReadiness Checking host WS70 for service/process AppReadiness Validation of host WS70 for service/process AppReadiness complete
您当然可以使用操作逻辑添加任意数量的服务或进程。
以上所有内容几乎适用于您想观看的内容。服务,流程,文件夹。
或者只是在循环中使用此脚本。
获取远程登录状态 - Powershell 此脚本将返回本地或远程的登录状态 机。返回类型包括“未登录”,“已锁定”,“已记录” 在“,和”离线。 最有用的部分是检查计算机是否在 锁定状态,虽然其他返回类型也可能有用。 这是一个简单的功能,可以很容易地包含在更大的功能中 脚本。返回类型可以更改为调用的数字 脚本更容易解析返回值。 的 下载:GetRemoteLogonStatus.ps1 强>
获取远程登录状态 - Powershell
此脚本将返回本地或远程的登录状态 机。返回类型包括“未登录”,“已锁定”,“已记录” 在“,和”离线。
最有用的部分是检查计算机是否在 锁定状态,虽然其他返回类型也可能有用。
这是一个简单的功能,可以很容易地包含在更大的功能中 脚本。返回类型可以更改为调用的数字 脚本更容易解析返回值。
的 下载:GetRemoteLogonStatus.ps1 强>