Bonjour tous le monde.

Je souhaite créer un script qui me permettrait d'auditer mes machines afin de remonter les logs dans un SIEM.
C'est assez long de tout passer à la main.

Je dois créer une ou deux régles qui auditeraient à la fois, tous les "failure" et les accès "success" en écriture.
Ceci sur un nombre important d'objets (dont les chemins sont listés dans un fichier texte)

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ListFile= Get-Content -path C:\Chemin\du\fichier\texte\
foreach ($line in $ListFile)
{
Set-Variable -name Path -Value $line
$AuditUser = "Everyone" #Tous les utilisateurs
$AuditRule = "FullControl" #Accès à auditer
$InheritType = "ContainerInherit" #Appliquée à dossier, sous-dossier et fichiers ("ObjectInherit" pour appliquer la règle aux objets enfants)
$AuditType = "Failure" #Spécifie Success ou Failure
$AccessRule = New-Object System.Security.AccessControl.FileSystemAuditRule($AuditUser,$AuditRule,$InheritType,"None",$AuditType) #Concatène les règles d'audit à appliquer dans une variable
$ACL = new-object System.Security.AccessControl.DirectorySecurity
$ACL.SetAuditRule($AccessRule)
$ACL | Set-Acl $Path
}
foreach ($line in $ListFile)
{
Set-Variable -name Path -Value $line
$AuditUser = "Everyone" #Tous les utilisateurs
$AuditRule = "WriteData","AppendData","Traverse","DeleteSubdirectoriesAndFiles","Delete","Modify","ChangePermissions","TakeOwnership" #Accès à auditer
$InheritType = "ContainerInherit" #Appliquée à dossier, sous-dossier et fichiers ("ObjectInherit" pour appliquer la règle aux objets enfants)
$AuditType = "Success" #Spécifie Success ou Failure
$AccessRule = New-Object System.Security.AccessControl.FileSystemAuditRule($AuditUser,$AuditRule,$InheritType,"None",$AuditType) #Concatène les règles d'audit à appliquer dans une variable
$ACL = new-object System.Security.AccessControl.DirectorySecurity 
$ACL.SetAuditRule($AccessRule)
$ACL | Set-Acl $Path
}
Les deux boucles fonctionnent lorsque je les exécute séparément. Le soucis étant que l'application de la règle "success" écrase la première.

Quelqu'un aurait un début de solution ?

J'ai également un deuxième soucis, lorsque je tente d'appliquer ces règles à des dossiers/fichiers protégés (system32, sysWOW64, etc..) la permission est refusée (alors que je suis admin et que j’exécute powershell en tant qu'admin)

Merci