以下脚本(当 AppMgmt 服务停止时将停止 IIS 服务)在“PowerGUI 脚本编辑器”中成功运行,但是当从控制台“powershell -file path_to_script”运行它时,它不会在事件触发时执行操作:
function Watch-MyService()
{
$query = "SELECT * FROM __InstanceModificationEvent WITHIN 2 " +
"WHERE TargetInstance Isa 'Win32_Service' " +
"AND TargetINstance.Name = 'AppMgmt'" +
"AND TargetInstance.State = 'Stopped'"
$action =
{
Write-Host "stopping service # 2"
Stop-Service 'W3SVC' -Force
}
Write-Host "registering event"
Register-WMIEvent -query $query -SourceIdentifier "ControllerSvcEvent" -action $action
}
Watch-MyService
在控制台中,我只看到:
注册活动
但停止“AppMgmt”服务时没有其他显示,没有输出到控制台,并且 IIS 服务不受影响。
控制台以管理员权限启动。