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
}
}