Partage
  • Partager sur Facebook
  • Partager sur Twitter

[POWERSHELL] creer un mailling

    15 avril 2022 à 8:51:35

    Bonjour,

    Je débute en powershell et Je cherche a créer un ps1 capable d'envoyer des mails par rapport à un fichier texte contenant les nom des comptes des agents de l'entreprise, le users.txt. En cherchant et en récupérant des bout de script j'ai pu faire ceci :

    Import-Module ActiveDirectory
    
    
    #Mailing aux agents
    
    $fichier_users="c:\users.txt" #fichier contenant le nom des compte des agents concerné par le mail
    
    $conteneur_AD = "OU=Utilisateurs,OU=XXXXX,OU=XXXXX,DC=XXXXX,DC=XXXXX" #Chemin vers l'arbo utilisateurs
    $users = Get-ADUser -SearchBase $conteneur_AD -Properties mail -Filter *
    
    
    
    foreach ($user in $users) {
    
    
        #Génération du mail
        
            $enc = New-Object System.Text.utf8encoding
            $prenom = $user.GivenName 
            $prenom = ($prenom.Substring(0,1)).toupper()+($prenom.Substring(1,($prenom.length -1))).tolower()
            $body = '<HTML><BODY>'
            $body+="Bonjour $($user.surname) $prenom, <br><br> `
                        ..................
                     Cordialement.
                     "
            $body += "</BODY></HTML>"
            $subject = "SUJET DU MAIL" # A Modifier
            $OFS = "`n"
            Send-MailMessage -from "no_reply@no_reply.fr" -to  $user.mail -subject $subject -smtpserver "XXXXX" -BodyAsHtml "$body" -Encoding $enc
            $OFS = $null  
    
    }


    Ce script permet d'envoyer un mail à tous les utilisateurs dans l'active directory. Je souhaiterai que cela envoi un mail a tous les comptes AD listé dans le fichier texte. Mais comment faire ?

    -
    Edité par Deuvool 15 avril 2022 à 8:53:21

    • Partager sur Facebook
    • Partager sur Twitter
      15 avril 2022 à 23:50:18

      Bonsoir,

      Lire ton fichier texte ligne par ligne ou mettre son contenu dans une variable/liste et si le compte existe dans l'AD, envoyer un mail.

      Peut-être que ce sujet t'aidera : https://realworldcomputingblog.wordpress.com/2017/02/08/powershell-ad-get-aduser-from-text-list/

      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2022 à 10:25:22

        merci pour le lien , j'avance avec ça. J'ai changer le programme, je préfère simplement récupérer une liste de mail que je puisse copier/coller dans outlook, cela me permet de faire un mail plus jolie et de garder une trace.

        #Importing AD Module
        Write-Host " Importing AD Module..... "
        import-module ActiveDirectory

        #Mailing aux agents


        $UserNamesList = get-content -path "Users.txt"
        $MailList = "UsersMail.csv"



        foreach ($name in $UserNamesList){

        Get-ADUser $name -properties * | select mail | Export-CSV $MailList -NoTypeInformation -Append

        }


        #suppression des guillemets dans le fichier texte
        (Get-Content $MailList) | Foreach-Object {$_ -replace '"', ''}|Out-File $MailList

        -
        Edité par Deuvool 19 avril 2022 à 10:33:25

        • Partager sur Facebook
        • Partager sur Twitter

        [POWERSHELL] creer un mailling

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown