Production

This commit is contained in:
Administration 2025-12-08 11:01:09 +01:00
parent cd916411ab
commit 8699e89d9e
6 changed files with 269 additions and 272 deletions

13
.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
# Fichiers de logs
*.log
# Fichiers d'environnement
*.env
# Dossiers temporaires Windows / PowerShell
*.tmp
*.bak
Thumbs.db
# Ignorer le dossier de logs
/logs/

237
app.log
View File

@ -1,237 +0,0 @@
[2025-12-04 18:33:16] [INFO] Début du script
[2025-12-04 18:33:53] [INFO] Début du script
[2025-12-04 18:33:53] [INFO] Début du script
[2025-12-04 19:02:08] [INFO] Erreur lors de la récupération des utilisateurs du groupe 'GR_DNA_-_Design_graphique_-_LE_HAVRE-1' : Impossible de trouver un objet avec lidentité « GR_DNA_-_Design_graphique_-_LE_HAVRE-1 » sous : « DC=esadhar,DC=local ».
[2025-12-04 19:02:08] [INFO] Erreur lors de la récupération des utilisateurs du groupe 'GR_DNA_-_Design_graphique_-_LE_HAVRE-2' : Impossible de trouver un objet avec lidentité « GR_DNA_-_Design_graphique_-_LE_HAVRE-2 » sous : « DC=esadhar,DC=local ».
[2025-12-04 19:02:18] [INFO] Erreur lors de la récupération des utilisateurs du groupe 'GR_DNA_-_Design_graphique_-_LE_HAVRE-1' : Impossible de trouver un objet avec lidentité « GR_DNA_-_Design_graphique_-_LE_HAVRE-1 » sous : « DC=esadhar,DC=local ».
[2025-12-04 19:02:18] [INFO] Erreur lors de la récupération des utilisateurs du groupe 'GR_DNA_-_Design_graphique_-_LE_HAVRE-2' : Impossible de trouver un objet avec lidentité « GR_DNA_-_Design_graphique_-_LE_HAVRE-2 » sous : « DC=esadhar,DC=local ».
[2025-12-04 19:16:46] [INFO] Erreur lors de la récupération des utilisateurs du groupe 'GR. DNA - Design graphique - LE HAVRE-1' : Impossible de convertir « System.Object[] » en type « System.String », requis par le paramètre « ExpandProperty ». La méthode spécifiée n'est pas prise en charge.
[2025-12-04 19:16:46] [INFO] Erreur lors de la récupération des utilisateurs du groupe 'GR. DNA - Design graphique - LE HAVRE-2' : Impossible de convertir « System.Object[] » en type « System.String », requis par le paramètre « ExpandProperty ». La méthode spécifiée n'est pas prise en charge.
[2025-12-04 19:29:58] [INFO] Erreur lors de la récupération deu mail de l'utilisateur '@{Success=True; Value=System.Object[]}' : Impossible de trouver un objet avec lidentité « @{Success=True; Value=System.Object[]} » sous : « DC=esadhar,DC=local ».
[2025-12-04 19:29:58] [INFO] Erreur lors de la récupération deu mail de l'utilisateur '@{Success=True; Value=System.Object[]}' : Impossible de trouver un objet avec lidentité « @{Success=True; Value=System.Object[]} » sous : « DC=esadhar,DC=local ».
[2025-12-04 19:32:46] [INFO] samuel.debar@esadhar.fr
[2025-12-04 19:32:46] [INFO] zoe.blacharski@esadhar.fr
[2025-12-04 19:32:46] [INFO] lizeth.carrenogomez@esadhar.fr
[2025-12-04 19:32:46] [INFO] blandine.chouand@esadhar.fr
[2025-12-04 19:32:46] [INFO] benoit.dalancon@esadhar.fr
[2025-12-04 19:32:46] [INFO] maelle.aubree@esadhar.fr
[2025-12-04 19:32:46] [INFO] angele.baldassari@esadhar.fr
[2025-12-04 19:32:46] [INFO] ambre.fauquet@esadhar.fr
[2025-12-04 19:32:46] [INFO] florine.lambert@esadhar.fr
[2025-12-04 19:32:46] [INFO] samara.leprevost@esadhar.fr
[2025-12-04 19:32:46] [INFO] alexandru.lungu@esadhar.fr
[2025-12-04 19:32:46] [INFO] chloe.podevin@esadhar.fr
[2025-12-04 19:32:46] [INFO] alix.riviere@esadhar.fr
[2025-12-04 19:32:46] [INFO] lenny.descombes@esadhar.fr
[2025-12-04 19:32:46] [INFO] orlane.ouvril@esadhar.fr
[2025-12-04 19:32:46] [INFO] keziah.kounkou-kekolo@esadhar.fr
[2025-12-04 19:32:46] [INFO] samuel.rochon@esadhar.fr
[2025-12-04 19:32:46] [INFO] chloe.duparc--landschoot@esadhar.fr
[2025-12-04 19:32:46] [INFO] lou-ann.darmaillac@esadhar.fr
[2025-12-04 19:32:46] [INFO] charlotte.menneray@esadhar.fr
[2025-12-04 19:32:46] [INFO] chanel.harmier@esadhar.fr
[2025-12-04 19:32:46] [INFO] nila.saliba@esadhar.fr
[2025-12-04 19:32:46] [INFO] julien.brisset@esadhar.fr
[2025-12-04 19:32:46] [INFO] paul.haddad@esadhar.fr
[2025-12-04 19:32:46] [INFO] emmanuel.midobalubaki@esadhar.fr
[2025-12-04 19:32:46] [INFO] moira.pallavicini@esadhar.fr
[2025-12-04 19:32:46] [INFO] clara.fabie@esadhar.fr
[2025-12-04 19:32:46] [INFO] boubacarsiddy.diallo@esadhar.fr
[2025-12-04 19:32:46] [INFO] lea.legallic@esadhar.fr
[2025-12-04 19:32:46] [INFO] anaelle.pyck@esadhar.fr
[2025-12-04 19:32:46] [INFO] alicia.frichot@esadhar.fr
[2025-12-04 19:32:46] [INFO] tais.gros-desir@esadhar.fr
[2025-12-04 19:32:46] [INFO] gaia.cargill@esadhar.fr
[2025-12-04 19:32:46] [INFO] clara.leroy@esadhar.fr
[2025-12-04 19:32:46] [INFO] emma.ezui@esadhar.fr
[2025-12-04 19:32:46] [INFO] angeline.coueffe@esadhar.fr
[2025-12-04 19:32:46] [INFO] lilou.haldemann@esadhar.fr
[2025-12-04 19:32:46] [INFO] aliyah.jegou@esadhar.fr
[2025-12-04 19:32:46] [INFO] lucille.leuridan@esadhar.fr
[2025-12-04 19:32:46] [INFO] ulysse.michel@esadhar.fr
[2025-12-04 19:32:46] [INFO] soumiya.bouteldja@esadhar.fr
[2025-12-04 19:32:46] [INFO] xuehua.huang@esadhar.fr
[2025-12-04 19:32:46] [INFO] matheo.godguin@esadhar.fr
[2025-12-04 19:32:46] [INFO] jayen.verhee@esadhar.fr
[2025-12-04 19:32:46] [INFO] camille.veyrac@esadhar.fr
[2025-12-04 19:32:46] [INFO] jenny.yerbe@esadhar.fr
[2025-12-04 19:32:46] [INFO] wang.zhihan@esadhar.fr
[2025-12-04 19:32:46] [INFO] felix.chauchat@esadhar.fr
[2025-12-04 19:32:46] [INFO] pierre.lereste@esadhar.fr
[2025-12-04 19:32:46] [INFO] lisa.lelias-louvat@esadhar.fr
[2025-12-04 19:32:46] [INFO] sona.kyureghian@esadhar.fr
[2025-12-04 19:32:46] [INFO] anastasia.gritzfeld@esadhar.fr
[2025-12-04 19:32:46] [INFO] tristan.kraft@esadhar.fr
[2025-12-04 19:32:46] [INFO] maria.barseghyan@esadhar.fr
[2025-12-04 19:32:46] [INFO] camille.jourdam@esadhar.fr
[2025-12-04 19:32:46] [INFO] nazly.adnane@esadhar.fr
[2025-12-04 19:36:39] [INFO] samuel.debar@esadhar.fr
[2025-12-04 19:36:39] [INFO] zoe.blacharski@esadhar.fr
[2025-12-04 19:36:39] [INFO] lizeth.carrenogomez@esadhar.fr
[2025-12-04 19:36:39] [INFO] blandine.chouand@esadhar.fr
[2025-12-04 19:36:39] [INFO] benoit.dalancon@esadhar.fr
[2025-12-04 19:36:39] [INFO] maelle.aubree@esadhar.fr
[2025-12-04 19:36:39] [INFO] angele.baldassari@esadhar.fr
[2025-12-04 19:36:39] [INFO] ambre.fauquet@esadhar.fr
[2025-12-04 19:36:39] [INFO] florine.lambert@esadhar.fr
[2025-12-04 19:36:39] [INFO] samara.leprevost@esadhar.fr
[2025-12-04 19:36:39] [INFO] alexandru.lungu@esadhar.fr
[2025-12-04 19:36:39] [INFO] chloe.podevin@esadhar.fr
[2025-12-04 19:36:39] [INFO] alix.riviere@esadhar.fr
[2025-12-04 19:36:39] [INFO] lenny.descombes@esadhar.fr
[2025-12-04 19:36:39] [INFO] orlane.ouvril@esadhar.fr
[2025-12-04 19:36:39] [INFO] keziah.kounkou-kekolo@esadhar.fr
[2025-12-04 19:36:39] [INFO] samuel.rochon@esadhar.fr
[2025-12-04 19:36:39] [INFO] chloe.duparc--landschoot@esadhar.fr
[2025-12-04 19:36:39] [INFO] lou-ann.darmaillac@esadhar.fr
[2025-12-04 19:36:39] [INFO] charlotte.menneray@esadhar.fr
[2025-12-04 19:36:39] [INFO] chanel.harmier@esadhar.fr
[2025-12-04 19:36:39] [INFO] nila.saliba@esadhar.fr
[2025-12-04 19:36:39] [INFO] julien.brisset@esadhar.fr
[2025-12-04 19:36:39] [INFO] paul.haddad@esadhar.fr
[2025-12-04 19:36:39] [INFO] emmanuel.midobalubaki@esadhar.fr
[2025-12-04 19:36:39] [INFO] moira.pallavicini@esadhar.fr
[2025-12-04 19:36:39] [INFO] clara.fabie@esadhar.fr
[2025-12-04 19:36:39] [INFO] boubacarsiddy.diallo@esadhar.fr
[2025-12-04 19:36:39] [INFO] @{Nom=GR. DNA - Design graphique - LE HAVRE-1; Id=9}
[2025-12-04 19:36:39] [INFO] lea.legallic@esadhar.fr
[2025-12-04 19:36:39] [INFO] anaelle.pyck@esadhar.fr
[2025-12-04 19:36:39] [INFO] alicia.frichot@esadhar.fr
[2025-12-04 19:36:39] [INFO] tais.gros-desir@esadhar.fr
[2025-12-04 19:36:39] [INFO] gaia.cargill@esadhar.fr
[2025-12-04 19:36:39] [INFO] clara.leroy@esadhar.fr
[2025-12-04 19:36:39] [INFO] emma.ezui@esadhar.fr
[2025-12-04 19:36:39] [INFO] angeline.coueffe@esadhar.fr
[2025-12-04 19:36:39] [INFO] lilou.haldemann@esadhar.fr
[2025-12-04 19:36:39] [INFO] aliyah.jegou@esadhar.fr
[2025-12-04 19:36:39] [INFO] lucille.leuridan@esadhar.fr
[2025-12-04 19:36:39] [INFO] ulysse.michel@esadhar.fr
[2025-12-04 19:36:39] [INFO] soumiya.bouteldja@esadhar.fr
[2025-12-04 19:36:39] [INFO] xuehua.huang@esadhar.fr
[2025-12-04 19:36:39] [INFO] matheo.godguin@esadhar.fr
[2025-12-04 19:36:39] [INFO] jayen.verhee@esadhar.fr
[2025-12-04 19:36:39] [INFO] camille.veyrac@esadhar.fr
[2025-12-04 19:36:39] [INFO] jenny.yerbe@esadhar.fr
[2025-12-04 19:36:39] [INFO] wang.zhihan@esadhar.fr
[2025-12-04 19:36:39] [INFO] felix.chauchat@esadhar.fr
[2025-12-04 19:36:40] [INFO] pierre.lereste@esadhar.fr
[2025-12-04 19:36:40] [INFO] lisa.lelias-louvat@esadhar.fr
[2025-12-04 19:36:40] [INFO] sona.kyureghian@esadhar.fr
[2025-12-04 19:36:40] [INFO] anastasia.gritzfeld@esadhar.fr
[2025-12-04 19:36:40] [INFO] tristan.kraft@esadhar.fr
[2025-12-04 19:36:40] [INFO] maria.barseghyan@esadhar.fr
[2025-12-04 19:36:40] [INFO] camille.jourdam@esadhar.fr
[2025-12-04 19:36:40] [INFO] nazly.adnane@esadhar.fr
[2025-12-04 19:36:40] [INFO] @{Nom=GR. DNA - Design graphique - LE HAVRE-2; Id=10}
[2025-12-05 10:43:34] [INFO] samuel.debar@esadhar.fr
[2025-12-05 10:43:34] [INFO] zoe.blacharski@esadhar.fr
[2025-12-05 10:43:39] [INFO] lizeth.carrenogomez@esadhar.fr
[2025-12-05 10:43:39] [INFO] blandine.chouand@esadhar.fr
[2025-12-05 10:43:39] [INFO] benoit.dalancon@esadhar.fr
[2025-12-05 10:43:39] [INFO] maelle.aubree@esadhar.fr
[2025-12-05 10:43:40] [INFO] angele.baldassari@esadhar.fr
[2025-12-05 10:43:40] [INFO] ambre.fauquet@esadhar.fr
[2025-12-05 10:43:40] [INFO] florine.lambert@esadhar.fr
[2025-12-05 10:43:41] [INFO] samara.leprevost@esadhar.fr
[2025-12-05 10:43:41] [INFO] alexandru.lungu@esadhar.fr
[2025-12-05 10:43:41] [INFO] chloe.podevin@esadhar.fr
[2025-12-05 10:43:42] [INFO] alix.riviere@esadhar.fr
[2025-12-05 10:43:42] [INFO] lenny.descombes@esadhar.fr
[2025-12-05 10:43:42] [INFO] orlane.ouvril@esadhar.fr
[2025-12-05 10:43:43] [INFO] keziah.kounkou-kekolo@esadhar.fr
[2025-12-05 10:43:43] [INFO] samuel.rochon@esadhar.fr
[2025-12-05 10:43:43] [INFO] chloe.duparc--landschoot@esadhar.fr
[2025-12-05 10:43:43] [INFO] lou-ann.darmaillac@esadhar.fr
[2025-12-05 10:43:44] [INFO] charlotte.menneray@esadhar.fr
[2025-12-05 10:43:44] [INFO] chanel.harmier@esadhar.fr
[2025-12-05 10:43:44] [INFO] nila.saliba@esadhar.fr
[2025-12-05 10:43:44] [INFO] julien.brisset@esadhar.fr
[2025-12-05 10:43:44] [INFO] paul.haddad@esadhar.fr
[2025-12-05 10:43:45] [INFO] emmanuel.midobalubaki@esadhar.fr
[2025-12-05 10:43:45] [INFO] moira.pallavicini@esadhar.fr
[2025-12-05 10:43:45] [INFO] clara.fabie@esadhar.fr
[2025-12-05 10:43:45] [INFO] boubacarsiddy.diallo@esadhar.fr
[2025-12-05 10:43:46] [INFO] lea.legallic@esadhar.fr
[2025-12-05 10:43:46] [INFO] anaelle.pyck@esadhar.fr
[2025-12-05 10:43:46] [INFO] alicia.frichot@esadhar.fr
[2025-12-05 10:43:46] [INFO] tais.gros-desir@esadhar.fr
[2025-12-05 10:43:47] [INFO] gaia.cargill@esadhar.fr
[2025-12-05 10:43:47] [INFO] clara.leroy@esadhar.fr
[2025-12-05 10:43:47] [INFO] emma.ezui@esadhar.fr
[2025-12-05 10:43:47] [INFO] angeline.coueffe@esadhar.fr
[2025-12-05 10:43:47] [INFO] lilou.haldemann@esadhar.fr
[2025-12-05 10:43:48] [INFO] aliyah.jegou@esadhar.fr
[2025-12-05 10:43:48] [INFO] lucille.leuridan@esadhar.fr
[2025-12-05 10:43:48] [INFO] ulysse.michel@esadhar.fr
[2025-12-05 10:43:49] [INFO] soumiya.bouteldja@esadhar.fr
[2025-12-05 10:43:49] [INFO] xuehua.huang@esadhar.fr
[2025-12-05 10:43:49] [INFO] matheo.godguin@esadhar.fr
[2025-12-05 10:43:49] [INFO] jayen.verhee@esadhar.fr
[2025-12-05 10:43:50] [INFO] camille.veyrac@esadhar.fr
[2025-12-05 10:43:50] [INFO] jenny.yerbe@esadhar.fr
[2025-12-05 10:43:50] [INFO] wang.zhihan@esadhar.fr
[2025-12-05 10:43:50] [INFO] felix.chauchat@esadhar.fr
[2025-12-05 10:43:50] [INFO] pierre.lereste@esadhar.fr
[2025-12-05 10:43:53] [INFO] lisa.lelias-louvat@esadhar.fr
[2025-12-05 10:43:53] [INFO] sona.kyureghian@esadhar.fr
[2025-12-05 10:43:53] [INFO] anastasia.gritzfeld@esadhar.fr
[2025-12-05 10:43:54] [INFO] tristan.kraft@esadhar.fr
[2025-12-05 10:43:54] [INFO] maria.barseghyan@esadhar.fr
[2025-12-05 10:43:54] [INFO] camille.jourdam@esadhar.fr
[2025-12-05 10:43:55] [INFO] nazly.adnane@esadhar.fr
[2025-12-05 11:18:08] [INFO] samuel.debar@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de zoe.blacharski@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de lizeth.carrenogomez@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de blandine.chouand@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de benoit.dalancon@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de maelle.aubree@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de angele.baldassari@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de ambre.fauquet@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de florine.lambert@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de samara.leprevost@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de alexandru.lungu@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de chloe.podevin@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de alix.riviere@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de lenny.descombes@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de orlane.ouvril@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de keziah.kounkou-kekolo@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de samuel.rochon@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de chloe.duparc--landschoot@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de lou-ann.darmaillac@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de charlotte.menneray@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de chanel.harmier@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de nila.saliba@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de julien.brisset@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de paul.haddad@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de emmanuel.midobalubaki@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de moira.pallavicini@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de clara.fabie@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de boubacarsiddy.diallo@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de lea.legallic@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de anaelle.pyck@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de alicia.frichot@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de tais.gros-desir@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de gaia.cargill@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de clara.leroy@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de emma.ezui@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de angeline.coueffe@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de lilou.haldemann@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de aliyah.jegou@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de lucille.leuridan@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de ulysse.michel@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de soumiya.bouteldja@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de xuehua.huang@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de matheo.godguin@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de jayen.verhee@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de camille.veyrac@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de jenny.yerbe@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de wang.zhihan@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de felix.chauchat@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de pierre.lereste@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de lisa.lelias-louvat@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de sona.kyureghian@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de anastasia.gritzfeld@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de tristan.kraft@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de maria.barseghyan@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de camille.jourdam@esadhar.fr dans Brevo
[2025-12-05 11:18:08] [INFO] Ajout de nazly.adnane@esadhar.fr dans Brevo

59
app.ps1
View File

@ -31,6 +31,16 @@ if (-not (Get-Module -ListAvailable -Name ActiveDirectory)) {
# Définir le fichier de log globalement pour ce module # Définir le fichier de log globalement pour ce module
$Global:LogFile = ".\app.log" $Global:LogFile = ".\app.log"
# Charge les variables du fichier .env
Get-Content "./config.env" | ForEach-Object {
if ($_ -match "^\s*([^#].*?)\s*=\s*(.*)$") {
$name = $matches[1]
$value = $matches[2]
Set-Variable -Name $name -Value $value -Scope Global
}
}
$Global:ApiKey = $API_KEY
$groupsFile = "groups.json" $groupsFile = "groups.json"
$groups = Get-Content $groupsFile | ConvertFrom-Json $groups = Get-Content $groupsFile | ConvertFrom-Json
@ -51,9 +61,11 @@ foreach ($group in $groups) {
else { else {
# Récupère tous les contacts existants sur Brevo # Récupère tous les contacts existants sur Brevo
$ContactsFromList = GetContactsFromListBrevo -IdListe $($group.Id) $ContactsFromList = GetContactsFromListBrevo -IdListe $($group.Id)
$ExistingEmails = $ContactsFromList.contacts | Select-Object -ExpandProperty email #$ExistingEmails = $ContactsFromList.contacts | Select-Object -ExpandProperty email
$ExistingEmails = $ContactsFromList.Value.contacts.email
# Crée un tableau avec tous les emails de tes utilisateurs AD
# Crée un tableau avec tous les emails utilisateurs AD
$ADEmails = @() $ADEmails = @()
foreach ($user in $GetUsers.Value) { foreach ($user in $GetUsers.Value) {
@ -68,27 +80,46 @@ foreach ($group in $groups) {
$ADEmails += $GetMail.Value $ADEmails += $GetMail.Value
} }
# Ajouter les emails manquants
foreach ($email in $ADEmails) { foreach ($email in $ADEmails) {
if (-not ($ExistingEmails -contains $email)) {
Write-Log "Ajout de $email dans Brevo" # Nettoyage
# Appel de la fonction d'ajout $cleanEmail = $email.Trim().ToLower()
# AddContactToBrevo -Email $email $cleanExisting = $ExistingEmails | ForEach-Object { $_.Trim().ToLower() }
# AddContactBrevoToList -Id $IdContact -IdListe $IdListe
if (-not ($cleanExisting -contains $cleanEmail)) {
Write-Log "Ajout de $cleanEmail dans Brevo"
$AddContactToBrevo = AddContactToBrevo -Email $cleanEmail
if (-not $AddContactToBrevo.Success) {
Write-Log $AddContactToBrevo.Value -Level ERROR
}
$AddContactBrevoToList = AddContactBrevoToList -Email $cleanEmail -IdListe $group.Id
if (-not $AddContactBrevoToList.Success) {
Write-Log $AddContactBrevoToList.Value -Level ERROR
} }
else { else {
Write-Log "$email déja dans Brevo" Write-Log "Success -> $cleanEmail"
}
}
else {
Write-Log "$cleanEmail déjà dans la liste $($group.Id) Brevo"
} }
} }
# Purger les listes
# Supprimer les emails qui ne sont plus dans AD
foreach ($email in $ExistingEmails) { foreach ($email in $ExistingEmails) {
if (-not ($ADEmails -contains $email)) { if (-not ($ADEmails -contains $email)) {
Write-Output "Suppression de $email de Brevo" Write-Output "Suppresion de $email dans la liste $($group.Id)"
# Appel de la fonction de suppression # Appel de la fonction de suppression
# RemoveContactFromBrevo -Email $email $RemoveContactFromListBrevo = RemoveContactFromListBrevo -Email $email -IdListe $($group.Id)
if (-not $RemoveContactFromListBrevo.Success)
{
Write-Log $RemoveContactFromListBrevo.Value -Level ERROR
}
else {
Write-Log "Success suppresion -> $email"
}
} }
} }
} }

View File

@ -1,4 +1,20 @@
[ [
{ "Nom": "GR. DNA - Design graphique - LE HAVRE-1", "Id": "9" }, { "Nom": "GR. DNA - Design graphique - LE HAVRE-1", "Id": "7" },
{ "Nom": "GR. DNA - Design graphique - LE HAVRE-2", "Id": "10" } { "Nom": "GR. DNA - Design graphique - LE HAVRE-2", "Id": "11" },
{ "Nom": "GR. DNA - Design graphique - LE HAVRE-3", "Id": "12" },
{ "Nom": "GR. DNSEP - Design graphique - LE HAVRE-4", "Id": "13" },
{ "Nom": "GR. DNSEP - Design graphique - LE HAVRE-5", "Id": "14" },
{ "Nom": "GR. DNA - ART - ROUEN-1", "Id": "19" },
{ "Nom": "GR. DNA - ART - ROUEN-2", "Id": "20" },
{ "Nom": "GR. DNA - ART - ROUEN-3", "Id": "21" },
{ "Nom": "GR. DNSEP - ART - ROUEN-4", "Id": "22" },
{ "Nom": "GR. DNSEP - ART - ROUEN-5", "Id": "23" },
{ "Nom": "GR. DNSEP ART MENTION CREATION LITTERAIRE-4", "Id": "17" },
{ "Nom": "GR. DNSEP ART MENTION CREATION LITTERAIRE-5", "Id": "18" },
{ "Nom": "GR. DNSEP - ART - LE HAVRE-4", "Id": "15" },
{ "Nom": "GR. DNSEP - ART - LE HAVRE-5", "Id": "16" },
{ "Nom": "GR. LE HAVRE - ADMINISTRATIFS ET TECHNIQUES MAILS", "Id": "27" },
{ "Nom": "GR. ROUEN ADMINISTRATIFS ET TECHNIQUES MAILS", "Id": "28" },
{ "Nom": "GR. LE HAVRE PROFESSEURS MAILS", "Id": "29" },
{ "Nom": "GR. ROUEN PROFESSEURS MAILS", "Id": "30" }
] ]

View File

@ -1,27 +1,183 @@
function GetContactsFromListBrevo { function GetContactsFromListBrevo {
[CmdletBinding()] [CmdletBinding()]
param( param(
[Parameter(Mandatory=$true)] [Parameter(Mandatory = $true)]
[string]$IdListe [string]$IdListe
) )
$headers = @{ if (-not $Global:ApiKey) {
"accept" = "application/json" return [PSCustomObject]@{ Success = $false; Value = "La clé API n'est pas définie" }
"api-key" = "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"
} }
$headers = @{
"accept" = "application/json"
"api-key" = $Global:ApiKey
}
try {
$response = Invoke-WebRequest ` $response = Invoke-WebRequest `
-Uri "https://api.brevo.com/v3/contacts/lists/$($IdListe)/contacts?limit=50&offset=0&sort=desc" ` -Uri "https://api.brevo.com/v3/contacts/lists/$($IdListe)/contacts?limit=50&offset=0&sort=desc" `
-Method GET ` -Method GET `
-Headers $headers -Headers $headers
return $response.Content | ConvertFrom-Json $data = $response.Content | ConvertFrom-Json
return [PSCustomObject]@{
Success = $true
Value = $data
}
}
catch {
return [PSCustomObject]@{
Success = $false
Value = "Erreur lors de la récupération des contacts de la liste $IdListe : $($_.Exception.Message)"
}
}
} }
# $contacts = GetContactsFromListBrevo function AddContactToBrevo{
# $contacts.count [CmdletBinding()]
# $contacts.contacts | ForEach-Object { $_.email } param(
[Parameter(Mandatory=$true)]
[string]$Email
)
# foreach ($email in $contacts.contacts) { if (-not $Global:ApiKey) {
# Write-Output $email.email return [PSCustomObject]@{ Success = $false; Value = "La clé API n'est pas définie" }
}
$headers = @{
"accept" = "application/json"
"content-type" = "application/json"
"api-key" = $Global:ApiKey
}
$Body = @{
email = $Email
} | ConvertTo-Json -Depth 3
try {
$response = Invoke-WebRequest -Uri 'https://api.brevo.com/v3/contacts' `
-Method POST `
-Headers $headers `
-ContentType 'application/json' `
-Body $Body
return [PSCustomObject]@{ Success = $true; Value = $response.Content }
}
catch {
return [PSCustomObject]@{ Success = $false; Value = "Erreur lors de l'ajout de l'utilisateur $Email : $($_.Exception.Message)" }
}
}
function AddContactBrevoToList{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$Email,
[Parameter(Mandatory=$true)]
[string]$IdListe
)
if (-not $Global:ApiKey) {
return [PSCustomObject]@{ Success = $false; Value = "La clé API n'est pas définie" }
}
$headers = @{
"accept" = "application/json"
"content-type" = "application/json"
"api-key" = $Global:ApiKey
}
$Body = @{ emails = @($Email) } | ConvertTo-Json -Depth 3
try {
$response = Invoke-WebRequest -Uri "https://api.brevo.com/v3/contacts/lists/$IdListe/contacts/add" `
-Method POST `
-Headers $headers `
-ContentType 'application/json' `
-Body $Body
return [PSCustomObject]@{ Success = $true; Value = $response.Content }
}
catch {
return [PSCustomObject]@{ Success = $false; Value = "Erreur lors de l'ajout de l'utilisateur $Email à la liste $IdListe : $($_.Exception.Message)" }
}
}
function RemoveContactFromListBrevo{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$Email,
[Parameter(Mandatory=$true)]
[string]$IdListe
)
if (-not $Global:ApiKey) {
return [PSCustomObject]@{ Success = $false; Value = "La clé API n'est pas définie" }
}
$headers = @{
"accept" = "application/json"
"content-type" = "application/json"
"api-key" = $Global:ApiKey
}
$Body = @{ emails = @($Email) } | ConvertTo-Json -Depth 3
try {
$response = Invoke-WebRequest -Uri "https://api.brevo.com/v3/contacts/lists/$IdListe/contacts/remove" `
-Method POST `
-Headers $headers `
-ContentType 'application/json' `
-Body $Body
return [PSCustomObject]@{ Success = $true; Value = $response.Content }
}
catch {
return [PSCustomObject]@{ Success = $false; Value = "Erreur lors de la suppresion de l'utilisateur $Email à la liste $IdListe : $($_.Exception.Message)" }
}
}
function RemoveContactFromBrevo{
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$Email
)
if (-not $Global:ApiKey) {
return [PSCustomObject]@{ Success = $false; Value = "La clé API n'est pas définie" }
}
$headers = @{
"accept" = "application/json"
"content-type" = "application/json"
"api-key" = $Global:ApiKey
}
try {
$response = Invoke-WebRequest -Uri "https://api.brevo.com/v3/contacts/$Email" `
-Method DELETE `
-Headers $headers `
-ContentType 'application/json'
return [PSCustomObject]@{ Success = $true; Value = $response.Content }
}
catch {
return [PSCustomObject]@{ Success = $false; Value = "Erreur lors de la suppresion de l'utilisateur $Email à la liste $IdListe : $($_.Exception.Message)" }
}
}
#$test = AddContactToBrevo -Email "tris.ta@esadhar.fr"
#$test = AddContactBrevoToList -Email "tris.ta@esadhar.fr" -IdListe 9
#$test = RemoveContactFromListBrevo -Email "tris.ta@esadhar.fr" -IdListe 9
#$test = RemoveContactFromBrevo -Email "toto.tata@esadhar.fr"
# if (-not $test.Success)
# {
# Write-Output $test.Value -Level ERROR
# Write-Output "error"
# }
# else{
# Write-Output $test.Value
# Write-Output "ok"
# } # }

View File

@ -3,18 +3,36 @@
Service de logging pour les scripts PowerShell. Service de logging pour les scripts PowerShell.
.DESCRIPTION .DESCRIPTION
Fournit une fonction Write-Log qui logge des messages avec timestamp, niveau et fichier de log. Fournit une fonction Write-Log qui logge des messages avec timestamp, niveau et fichier de log.
Ajoute une rotation automatique par jour et supprime les logs vieux de plus de 5 jours.
#> #>
# Définir le fichier de log globalement pour ce module # Définir le dossier de logs et le nom de fichier de base
$Global:LogFile = ".\app.log" $Global:LogFolder = ".\logs"
$Global:LogBaseName = "app"
# Crée le dossier de logs s'il n'existe pas
if (-not (Test-Path $Global:LogFolder)) {
New-Item -Path $Global:LogFolder -ItemType Directory | Out-Null
}
# Nom du fichier de log du jour
$Global:LogFile = Join-Path $Global:LogFolder "$($Global:LogBaseName)_$(Get-Date -Format 'yyyy-MM-dd').log"
# Supprimer les fichiers de log vieux de plus de 5 jours
$logFiles = Get-ChildItem -Path $Global:LogFolder -Filter "$($Global:LogBaseName)_*.log" -File
foreach ($file in $logFiles) {
if ($file.CreationTime -lt (Get-Date).AddDays(-5)) {
Remove-Item $file.FullName -ErrorAction SilentlyContinue
}
}
function Write-Log { function Write-Log {
[CmdletBinding()] [CmdletBinding()]
param( param(
[Parameter(Mandatory=$true)] [Parameter(Mandatory = $true)]
[string]$Message, [string]$Message,
[Parameter(Mandatory=$false)] [Parameter(Mandatory = $false)]
[ValidateSet("INFO", "WARN", "ERROR")] [ValidateSet("INFO", "WARN", "ERROR")]
[string]$Level = "INFO" [string]$Level = "INFO"
) )
@ -26,7 +44,7 @@ function Write-Log {
# Affiche à la console # Affiche à la console
Write-Output $line Write-Output $line
# Écrit dans le fichier de log # Écrit dans le fichier de log du jour
try { try {
Add-Content -Path $Global:LogFile -Value $line Add-Content -Path $Global:LogFile -Value $line
} }