Je sais que cette question est ancienne mais c'est en fait le premier message du forum sur lequel je suis tombé lorsque j'ai commencé à essayer de faire exactement la même chose il y a deux semaines. J'ai réussi à mettre au point un script qui analysera les journaux d'événements 24 heures en arrière pour les entrées de journaux d'événements de mauvaise connexion, récupérera celles qui ont plus de 10 mauvaises connexions, puis les mettra dans une liste de filtres ipsec à l'aide de la commande netsh. Ensuite, j'ai écrit un fichier batch avec cette ligne powershell .\*scriptname.ps1*
et créé une tâche programmée pour exécuter le fichier batch toutes les 24 heures (pour une raison quelconque, il ne s'exécutait pas directement).
$DATE = [DateTime]::Now.AddDays(-1)
$EVS = Get-EventLog Security -InstanceId 529 -after $DATE
$EVS | select-string -inputobject {$_.message} -pattern "Source Network Address:(.)*\.*\.*\.*" -allmatches | foreach-object {$_.Matches} | foreach-object {$_.Value} | foreach-object {$_.replace("Source Network Address:", "")} | group-object -property $_ | where-object {$_.count -gt 10} | select-object -property name | format-list | out-file c:\rdpblock.txt
get-content -path c:\rdpblock.txt | foreach-object {$_.replace("Name :", "")} | out-file c:\rdpblockcleaned.txt
get-content -path c:\rdpblockcleaned.txt | select-object -unique | out-file c:\rdpblocknospaces.txt
$RDPIP = get-content -path c:\rdpblocknospaces.txt | select-object -skip 1
$RDPIP | foreach-object {$_.replace(" ", "")} | foreach-object {netsh ipsec static add filter filterlist=RDP_BLOCK srcaddr=$($_) dstaddr=any}
Je sais que ce script est probablement inefficace, mais lorsque j'ai commencé à travailler sur ce projet, je n'avais absolument aucune expérience en powershell, donc ma capacité à optimiser les script laisse beaucoup à désirer. Cependant, malgré ce fait, j'ai pensé partager ceci avec tous ceux qui pourraient l'utiliser.
Je remercie Remunda de m'avoir donné l'idée initiale, c'est ce poster qui m'a donné l'idée d'utiliser powershell pour rechercher dans les journaux d'événements.