Meilleur auteur de réponses
Alimenter le filtre antispam expediteurs

Question
-
Bonjour
Comment alimenter facilement le filtrage expediteur sous Exchange 2010?
Sous 2003 il existe l'action importer une liste en*txt, sur 2010 il faut saisir chaque adresse ou domaine c'est un travail de romain quand la liste comporte des centaines d'adresses
En PowerShell c'est pareil, une ligne pour une adresse
J'ai lu ici meme une imporation d'adresse IP avec un fichier Excel, n'y a t'il pas pareille procedure?
Cordialement
Gerard
Réponses
-
Bonjour,
Avec PowerShell on peut tout faire :)
Pour votre besoin je pense que le plus simple serait de transformer l'Excel en CSV.
Puis d'importer le CSV sous PowerShell :
$list = Import-Csv 'C:\Script\ListeIP.csv' -Delimiter ";"
A partir de la il faudra faire une boucle pour ajouter chaque IP
La forme de la boucle sera :
ForEach ($entry in $list) {
Commade a exécuter (pour avoir l'IP il faudra appeler $entry.IP (si la colonne dans le CSV avec l'IP port le nom IP))
}
Pour toutes questions n’hésitez pas.
Anthony COSTESEQUE
- Proposé comme réponse Thierry DEMAN-BARCELÒMVP, Moderator dimanche 15 janvier 2012 22:30
- Marqué comme réponse Florin Ciuca dimanche 22 janvier 2012 19:28
-
Bonsoir,
voici un script qui fonctionne bien à condition qu'aucune adresse du fichier "listeRecipients.csv" ne soit déjà présente dans les destinataires:
$list = get-content 'C:\Scripts\ListeRecipients.csv' $a=Get-RecipientFilterConfig $b=$a.blockedrecipients ForEach ($entry in $list) { $b+=$entry } set-recipientFilterConfig -blockedrecipients $b
A bientôt,
Thierry DEMAN. Exchange MVP. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (68 MCPs) http://base.faqexchange.info- Proposé comme réponse Roxana PANAITMicrosoft employee mercredi 18 janvier 2012 08:29
- Marqué comme réponse Florin Ciuca dimanche 22 janvier 2012 19:29
-
Par contre s'il n'y a qu'une information (des noms de domaines) le CSV n'est pas necessaire.
Un fichier txt suffit avec un nom de domaine par ligne.
Voici le script (je n'ai pas pu le tester)
# on récupère les noms de domaines (les nouveaux noms à ajouter) d'un fichier txt
$list = Get-Content "c:\script\list.txt"
# on récupère l’état actuel du filtre
$SenderFilterConfig = Get-SenderFilterConfig
# on crée une boucle pour traiter chaque ligne du fichier
# pour chaque ligne du fichier txt on l'ajoute (+=) à BlockedDomains (sans le += on perdrait les noms précédant)
ForEach ($entry in $list) {
$SenderFilterConfig.BlockedDomains += ("$entry")
}
NOTE : Sauvegarder la configuration du filtre dans un fichier txt avant de tester en lançant la commande
Get-SenderFilterConfig | fl * > C:\script\SVGfilter.txt
Cordialement,
Anthony
- Marqué comme réponse Florin Ciuca dimanche 22 janvier 2012 19:28
Toutes les réponses
-
Bonjour,
Avec PowerShell on peut tout faire :)
Pour votre besoin je pense que le plus simple serait de transformer l'Excel en CSV.
Puis d'importer le CSV sous PowerShell :
$list = Import-Csv 'C:\Script\ListeIP.csv' -Delimiter ";"
A partir de la il faudra faire une boucle pour ajouter chaque IP
La forme de la boucle sera :
ForEach ($entry in $list) {
Commade a exécuter (pour avoir l'IP il faudra appeler $entry.IP (si la colonne dans le CSV avec l'IP port le nom IP))
}
Pour toutes questions n’hésitez pas.
Anthony COSTESEQUE
- Proposé comme réponse Thierry DEMAN-BARCELÒMVP, Moderator dimanche 15 janvier 2012 22:30
- Marqué comme réponse Florin Ciuca dimanche 22 janvier 2012 19:28
-
-
-
Par contre s'il n'y a qu'une information (des noms de domaines) le CSV n'est pas necessaire.
Un fichier txt suffit avec un nom de domaine par ligne.
Voici le script (je n'ai pas pu le tester)
# on récupère les noms de domaines (les nouveaux noms à ajouter) d'un fichier txt
$list = Get-Content "c:\script\list.txt"
# on récupère l’état actuel du filtre
$SenderFilterConfig = Get-SenderFilterConfig
# on crée une boucle pour traiter chaque ligne du fichier
# pour chaque ligne du fichier txt on l'ajoute (+=) à BlockedDomains (sans le += on perdrait les noms précédant)
ForEach ($entry in $list) {
$SenderFilterConfig.BlockedDomains += ("$entry")
}
NOTE : Sauvegarder la configuration du filtre dans un fichier txt avant de tester en lançant la commande
Get-SenderFilterConfig | fl * > C:\script\SVGfilter.txt
Cordialement,
Anthony
- Marqué comme réponse Florin Ciuca dimanche 22 janvier 2012 19:28
-
Bonsoir,
voici un script qui fonctionne bien à condition qu'aucune adresse du fichier "listeRecipients.csv" ne soit déjà présente dans les destinataires:
$list = get-content 'C:\Scripts\ListeRecipients.csv' $a=Get-RecipientFilterConfig $b=$a.blockedrecipients ForEach ($entry in $list) { $b+=$entry } set-recipientFilterConfig -blockedrecipients $b
A bientôt,
Thierry DEMAN. Exchange MVP. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (68 MCPs) http://base.faqexchange.info- Proposé comme réponse Roxana PANAITMicrosoft employee mercredi 18 janvier 2012 08:29
- Marqué comme réponse Florin Ciuca dimanche 22 janvier 2012 19:29
-
Oops il manque une ligne dans mon script :p l'enregistrement du changement (Set-SenderFilterConfig -BlockedDomains $SenderFilterConfig.BlockedDomains).
Donc pour Mettre à jour la liste des domaines bloqués en sortie (mails sortant de l'organisation)
$list = Get-Content "c:\script\list.txt"
$SenderFilterConfig = Get-SenderFilterConfig
ForEach ($entry in $list) {
$SenderFilterConfig.BlockedDomains += ("$entry")
}
Set-SenderFilterConfig -BlockedDomains $SenderFilterConfig.BlockedDomains
Si par contre c'est en entré que l'on veut filtrer (mail entrant dans l'organisation) (comme l'a dit Thierry)
$list = Get-Content "c:\script\list.txt"
$RecipientFilterConfig = Get-RecipientFilterConfig
ForEach ($entry in $list) {
$RecipientFilterConfig.BlockedRecipients += ("$entry")
}
Set-RecipientFilterConfig -BlockedRecipients $RecipientFilterConfig.BlockedRecipients
NOTE : Thierry si on manipule un CSV il faudra specifier le nom de la colonne dans le CSV pour appeler la valeur d'un champ ($entry.NomDeLaColonne)
C'est pour eviter cette petite complication (etant donnée que l'on a qu'une information (des noms de domaines)) que j'utilise un fichier txt.
Cordialement,
Anthony COSTESEQUE
- Proposé comme réponse Roxana PANAITMicrosoft employee mercredi 18 janvier 2012 08:29
-
-
-
Bonjour,
Je viens d'essayer le script que j'ai proposé et cela fonctionne sans problèmes.
est ce que vous utilisez bien l'EMS (le shell d'exchange) ? est ce que votre fichier txt contient bien un nom de domaine par ligne ?
le script prend en compte l'historique, ce qui veut dire que votre liste ne doit contenir à chaque run que les nouveaux noms de domaine à ajouter.
Pour clarrifier les filtres anti-spam, il faudra utiliser le SenderFilter et non le RecipientFilter :
Filtrage des expéditeurs La fonctionnalité de filtrage des expéditeurs compare l’expéditeur figurant sur la commande SMTP MAIL FROM: à une liste définie par l’administrateur d’expéditeurs ou de domaines expéditeurs qui ne sont pas autorisés à envoyer des messages à l’organisation afin de déterminer l’action éventuelle à appliquer à un message entrant.
Filtrage des destinataires Le filtrage des destinataires compare les destinataires sur message dans la commande SMTP RCPT TO: SMTP à une liste rouge de destinataires définie par l’administrateur. En cas de correspondance, le message ne peut pas pénétrer dans l’organisation. Le filtre des destinataires compare également les destinataires des messages entrants au répertoire des destinataires local pour déterminer le message est adressé à des destinataires valides. Si un message n’est pas adressé à des destinataires valides, il peut être rejeté au niveau du périmètre de réseau de l’organisation.
Vous souhaitez filtrer sur les mails, les noms de domaines se trouvant dans le champ FROM:
Cordialement,
Anthony COSTESEQUE
-
vous ne pourrez pas réintégrer la configuration avec une commande
le fichier est la pour référence, pour vour, pour voir ce qui etait configuré à un instant T.
s'il faut exporter la configuration pour la restaurer plus facilement par la suite, le plus simple est d'exporter la commande dans un fichier xml
Get-SenderFilterConfig | Export-Clixml C:\scripts\ConfSenderFilter.xml
puis ensuite pour le manipuler
$conf = Import-Clixml C:\scripts\ConfSenderFilter.xml
$conf.BlockedDomains
permettra d’accéder à la configuration des domaines bloqués dans le fichier de backup
Set-SenderFilterConfig -BlockedDomains $conf.BlockedDomains
permettra de restaurer cette configuration dans la configuration en cours de production
Coridalement,
Anthony COSTESEQUE
-
C'est pour celà que j'utilise "get-content" qui se moque de l'extension .TXT ou .CSV et qui ne requière pas de ligne de titre.
A+
Thierry DEMAN. Exchange MVP. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (68 MCPs) http://base.faqexchange.info -
Bonsoir,
à noter qu'il faut mettre les commandes indiquées dans un fichier avec l'extension .PS1, qu'il faut utiliser le Shell d'administration Exchange, bien entendu.
Faire attention aux guillemets ou apostrophes... à mettre ou ne pas mettre selon les cas, celà change tout.
A+
Thierry DEMAN. Exchange MVP. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (68 MCPs) http://base.faqexchange.info -
Bonjour Thierry,
le Get-Content effectivement ne sait pas interpréter le csv et prend donc les données en bloc, ce qui fait que la premiere ligne contiendra le nom de la colonne du csv.
un fichier csv avec comme nom de colonne NomDeDomaines et 3 entrées :
tata.fr
toto.com
bou.jp
aura comme effet une fois le Get-Content c:\test\ok.csv injecté dans la variable $test (par exemple) de comporter 4 lignes.
on ajouterait donc dans le filtre le nom de domaine NomDeDomaines (le nom de la colonne) :p
Cordialement,
Anthony COSTESEQUE