none
WMI Events и -Action RRS feed

  • Вопрос

  • День добрый.

    Вопрос по заданиям и их длительностям, чтоли.

    допустим есть такой скрипт:

    $myFunc =
    
    {
    
    	$computername = $Event.SourceEventArgs.NewEvent.TargetInstance.InsertionStrings[2]
    
    	$str = $executioncontext.InvokeCommand.NewScriptBlock("psexec -c -d \\$computername kk.exe -y -a -z")
    
    	$job = Start-Job -ScriptBlock $str 
    
    	Wait-Job $job
    
    	Remove-Job $job
    
    }
    
    Register-WmiEvent -Query "select * from __instancecreationevent within 2 where targetinstance isa 'win32_ntlogevent' `
    
    and targetinstance.eventcode = '680' and targetinstance.EventType='5'" -SourceIdentifier CatchEvent2 -Action $myFunc

    если запустить этот скрипт из консоли powershell, т.е. запустили powershell, cd в папку со скриптом и там ./script.ps1, то хостом является эта консоль, она подвисает и скрипт выполняется какое-от время. стартуют процессы и тд. если запустить из windows explorer по правой кнопке мыши - запустить в powershell, консоль через какое-то время закрывается, видимо, с ним закрвырается сессия и обработка ошибок прекращается. А как добиться того, чтобы запустил один раз, и оно постоянно наблюдает за событием, и срабатывает на него, при этом не открывая окна.
    11 января 2010 г. 9:32

Ответы

  • >А как добиться того, чтобы запустил один раз, и оно постоянно наблюдает за событием, и срабатывает на него, при этом не открывая окна.
    powershell.exe -NoExit -WindowStyle Hidden -File c:\myscript.ps1

    >Если скриптблок -Action занимается оповещением админа о каком-то событии. Как долго это будет происходить, тобишь как долго будет активна подписка и скриптблок.
    До тех пор пока будет активен подписчик, то есть в данном случае хост PowerShell.exe. Если вам нужно выполнять команду лишь по событиям в журнале событий, но постоянно, то можно воспользоваться возможностями Windows Server 2008 где можно удобно привязывать задачи планировщика к событиям. Или вот такое решение для более старых систем - http://xaegr.wordpress.com/2009/05/27/isa-ids-setup/ http://xaegr.wordpress.com/2009/05/28/isa-ids-script/ (только привязать скрипт к событию с помощью eventcreate.exe)
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    11 января 2010 г. 16:18
    Модератор

Все ответы

  • Аналогично, допустим для оповещений. Если скриптблок -Action занимается оповещением админа о каком-то событии. Как долго это будет происходить, тобишь как долго будет активна подписка и скриптблок.
    11 января 2010 г. 11:54
  • >А как добиться того, чтобы запустил один раз, и оно постоянно наблюдает за событием, и срабатывает на него, при этом не открывая окна.
    powershell.exe -NoExit -WindowStyle Hidden -File c:\myscript.ps1

    >Если скриптблок -Action занимается оповещением админа о каком-то событии. Как долго это будет происходить, тобишь как долго будет активна подписка и скриптблок.
    До тех пор пока будет активен подписчик, то есть в данном случае хост PowerShell.exe. Если вам нужно выполнять команду лишь по событиям в журнале событий, но постоянно, то можно воспользоваться возможностями Windows Server 2008 где можно удобно привязывать задачи планировщика к событиям. Или вот такое решение для более старых систем - http://xaegr.wordpress.com/2009/05/27/isa-ids-setup/ http://xaegr.wordpress.com/2009/05/28/isa-ids-script/ (только привязать скрипт к событию с помощью eventcreate.exe)
    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    11 января 2010 г. 16:18
    Модератор
  • По поводу 2008-го тут все ясно, а вот:
    только привязать скрипт к событию с помощью eventcreate.exe
    Это как. Или eventcreate какой-то особенный нужен? Или я чего-то не понял?
    Вернигора Андрей MCP, MCDBA, MCSA, MCSE
    11 января 2010 г. 21:52
  • Ой, это я напутал. eventtrigers.exe конечно же.


    AKA Xaegr, MCSE: Security, Messaging; MCITP: Server\Enterprise Administrator; Блог: http://xaegr.wordpress.com
    11 января 2010 г. 22:36
    Модератор