2016-05-04 2 views

Répondre

0

Peut-être un peu en retard

Mais vous pouvez peut-être utiliser le moniteur de prise: la pêche examinera une faute si elle reçoit un message sur une prise spécifique:

<Agent name="Local"> 
    <Monitor class="Socket"> 
     <Param name="Port" value="6666" /> 
     <Param name="Timeout" value="5000" /> 
    </Monitor> 
</Agent> 

et un exemple (détection de processus Powershell)

$q = "Select * from win32_ProcessStartTrace where processname 'Process.exe'" 
$port=6666 
$remoteHost = "127.0.0.1" 
$message = "[fault]" 
Register-CimIndicationEvent -Query $q -SourceIdentifier test 
while ($true) { 
    Start-Sleep -Seconds 1 
    $var = (Get-Event -SourceIdentifier test -ErrorAction SilentlyContinue | findstr "RunspaceId") 
    if ($var) { 
     echo "Fault detected" 
     $socket = new-object System.Net.Sockets.TcpClient($remoteHost, $port) 
     $data = [System.Text.Encoding]::ASCII.GetBytes($message) 
     $stream = $socket.GetStream() 
     $stream.Write($data, 0, $data.Length) 
     Remove-Event -SourceIdentifier test 
     $var = $null 
    } 
}