diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e7d1e9 --- /dev/null +++ b/.gitignore @@ -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/ diff --git a/app.log b/app.log deleted file mode 100644 index fdcdb2f..0000000 --- a/app.log +++ /dev/null @@ -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 l’identité « 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 l’identité « 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 l’identité « 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 l’identité « 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 l’identité « @{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 l’identité « @{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 diff --git a/app.ps1 b/app.ps1 index be6bf32..6edd259 100644 --- a/app.ps1 +++ b/app.ps1 @@ -31,6 +31,16 @@ if (-not (Get-Module -ListAvailable -Name ActiveDirectory)) { # Définir le fichier de log globalement pour ce module $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" $groups = Get-Content $groupsFile | ConvertFrom-Json @@ -51,9 +61,11 @@ foreach ($group in $groups) { else { # Récupère tous les contacts existants sur Brevo $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 = @() foreach ($user in $GetUsers.Value) { @@ -68,27 +80,46 @@ foreach ($group in $groups) { $ADEmails += $GetMail.Value } - - # Ajouter les emails manquants foreach ($email in $ADEmails) { - if (-not ($ExistingEmails -contains $email)) { - Write-Log "Ajout de $email dans Brevo" - # Appel de la fonction d'ajout - # AddContactToBrevo -Email $email - # AddContactBrevoToList -Id $IdContact -IdListe $IdListe + + # Nettoyage + $cleanEmail = $email.Trim().ToLower() + $cleanExisting = $ExistingEmails | ForEach-Object { $_.Trim().ToLower() } + + 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 { + Write-Log "Success -> $cleanEmail" + } } else { - Write-Log "$email déja dans Brevo" + Write-Log "$cleanEmail déjà dans la liste $($group.Id) Brevo" } } - - # Supprimer les emails qui ne sont plus dans AD + # Purger les listes foreach ($email in $ExistingEmails) { 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 - # 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" + } } } } diff --git a/groups.json b/groups.json index b524144..5959b50 100644 --- a/groups.json +++ b/groups.json @@ -1,4 +1,20 @@ [ - { "Nom": "GR. DNA - Design graphique - LE HAVRE-1", "Id": "9" }, - { "Nom": "GR. DNA - Design graphique - LE HAVRE-2", "Id": "10" } + { "Nom": "GR. DNA - Design graphique - LE HAVRE-1", "Id": "7" }, + { "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" } ] \ No newline at end of file diff --git a/modules/ApiService.ps1 b/modules/ApiService.ps1 index 34fd0ee..ecc95de 100644 --- a/modules/ApiService.ps1 +++ b/modules/ApiService.ps1 @@ -1,27 +1,183 @@ function GetContactsFromListBrevo { [CmdletBinding()] param( - [Parameter(Mandatory=$true)] + [Parameter(Mandatory = $true)] [string]$IdListe ) - $headers = @{ - "accept" = "application/json" - "api-key" = "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" + if (-not $Global:ApiKey) { + return [PSCustomObject]@{ Success = $false; Value = "La clé API n'est pas définie" } } - $response = Invoke-WebRequest ` - -Uri "https://api.brevo.com/v3/contacts/lists/$($IdListe)/contacts?limit=50&offset=0&sort=desc" ` - -Method GET ` - -Headers $headers + $headers = @{ + "accept" = "application/json" + "api-key" = $Global:ApiKey + } - return $response.Content | ConvertFrom-Json + try { + $response = Invoke-WebRequest ` + -Uri "https://api.brevo.com/v3/contacts/lists/$($IdListe)/contacts?limit=50&offset=0&sort=desc" ` + -Method GET ` + -Headers $headers + + $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 -# $contacts.count -# $contacts.contacts | ForEach-Object { $_.email } +function AddContactToBrevo{ + [CmdletBinding()] + param( + [Parameter(Mandatory=$true)] + [string]$Email + ) + + if (-not $Global:ApiKey) { + return [PSCustomObject]@{ Success = $false; Value = "La clé API n'est pas définie" } + } -# foreach ($email in $contacts.contacts) { -# Write-Output $email.email + $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" # } \ No newline at end of file diff --git a/modules/LogService.ps1 b/modules/LogService.ps1 index 8a7eabb..a557cbb 100644 --- a/modules/LogService.ps1 +++ b/modules/LogService.ps1 @@ -3,18 +3,36 @@ Service de logging pour les scripts PowerShell. .DESCRIPTION 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 -$Global:LogFile = ".\app.log" +# Définir le dossier de logs et le nom de fichier de base +$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 { [CmdletBinding()] param( - [Parameter(Mandatory=$true)] + [Parameter(Mandatory = $true)] [string]$Message, - [Parameter(Mandatory=$false)] + [Parameter(Mandatory = $false)] [ValidateSet("INFO", "WARN", "ERROR")] [string]$Level = "INFO" ) @@ -26,7 +44,7 @@ function Write-Log { # Affiche à la console Write-Output $line - # Écrit dans le fichier de log + # Écrit dans le fichier de log du jour try { Add-Content -Path $Global:LogFile -Value $line }