IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Envoi de mail mot de passe windows expiré [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2021
    Messages : 12
    Par défaut Envoi de mail mot de passe windows expiré
    Bonjour,
    Voici un script pour envoyer un mail aux utilisateurs de votre Active Directory lorsque le mot de passe arrive à expiration.
    Je précise qu'il faut avoir renseigné l'e-mail de l'utilisateur dans le profil de celui-ci.
    Vous pouvez faire une tâche planifié pour qu'il tourne chaque jour.
    Code PowerShell : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    $ExpireDays = 7
    Import-Module ActiveDirectory
    $AllUsers = get-aduser -filter * -properties * | Where-Object {$_.Enabled -eq "True"} | Where-Object { $_.PasswordNeverExpires -eq $false } | Where-Object { $_.passwordexpired -eq $false }
    foreach ($User in $AllUsers)
    {
      $Name = (Get-ADUser $User | ForEach-Object { $_.Name})
      $Email = $User.emailaddress
      $PasswdSetDate = (get-aduser $User -properties * | ForEach-Object { $_.PasswordLastSet })
      $MaxPasswdAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
      $ExpireDate = $PasswdSetDate + $MaxPasswdAge
      $Today = (get-date)
      $DaysToExpire = (New-TimeSpan -Start $Today -End $ExpireDate).Days
      if ( $(($DaysToExpire -lt $ExpireDays)) )
      {
         $EmailSubject="Expiration du mot de passe windows dans $DaystoExpire jours"
      $Message="
      Bonjour $Name,
      <p> Votre mot de passe de session windows va expirer dans $DaysToExpire jours.<br />
      Pour le changer, il vous suffit d appuyer sur CTRL+ALT+Del et clic sur changer le mot de passe. <br />
     
      <p><B>Le mot de passe doit:</B> </p>
     
    Mettez les caractéristiques de votre AD
     
     
    <p>Si vous ne changez pas votre mot de passe en $DaysToExpire jours, tous les lecteurs reseaux seront coupes et certaines applications pourraient ne plus fonctionner. <br /></p>
    <p>Tant que le mot de passe ne sera pas modifie, vous recevrez ce message tous les jours. <br /></p>
    <p>Si vous avez le moindre probleme, merci de contacter l'équipe Infra) ! <br /></p>
     
     
    Cordialement<br />
      </p>"
      $smtp = "votreserveursmtp" 
     
      $to = "$Email" 
     
     $from = "inserervotremail" 
     
     $subject = "$EmailSubject"  
     
     $body = "$Message" 
     
      #On envoie le mail let's go > Send-MailMessage  
     
      send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $body -BodyAsHtml 
     
      }
     
      }

    Désolé si quelqu'un l'a déjà posté, je suis débutant, j'ai galéré avec un code trouvé sur internet .. je suis donc content de le partager.

    Bonne journée à vous et bon courage !

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Salut,

    Merci à toi pour le partage

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2016
    Messages : 12
    Par défaut
    top
    j utilise un soft pour ca
    cela pourra le replacer
    merci

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2021
    Messages : 12
    Par défaut
    rococo2 : c'est justement parce que je ne voulais pas d'un soft que j'ai décidé de faire un script !

    Si certains peuvent m'aider...
    Quand j'exécute le script à la main, les gens recoivent un mail.
    Je l'ai donc mis en tâche planifié, il a fonctionné 2 jours, et désormais il tourne à l'infini sans envoyer de mail. J'ai beau le kill et le laisser se relancer le lendemain ça ne fonctionne pas.
    Des idées d'où chercher ?
    Merci ! (ça pourrait aider ceux qui utiliseront mon script !)

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mai 2020
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2020
    Messages : 288
    Par défaut
    Bonjour,

    Essai d'inclure un Try / Catch dans ton script afin de gérer la gestion d'erreurs, c'est toujours utile.

  6. #6
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2021
    Messages : 12
    Par défaut
    Code PowerShell : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    try{
    	$ExpireDays = 7
    	Import-Module ActiveDirectory
    	$AllUsers = get-aduser -filter * -properties * | Where-Object {$_.Enabled -eq "True"} | Where-Object { $_.PasswordNeverExpires -eq $false } | Where-Object { $_.passwordexpired -eq $false }
    	foreach ($User in $AllUsers)
    	{
    	  $Name = (Get-ADUser $User | ForEach-Object { $_.Name})
    	  $Email = $User.emailaddress
    	  $PasswdSetDate = (get-aduser $User -properties * | ForEach-Object { $_.PasswordLastSet })
    	  $MaxPasswdAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    	  $ExpireDate = $PasswdSetDate + $MaxPasswdAge
    	  $Today = (get-date)
    	  $DaysToExpire = (New-TimeSpan -Start $Today -End $ExpireDate).Days
    	  if ( $(($DaysToExpire -lt $ExpireDays)) )
    	  {
    		 $EmailSubject="Expiration du mot de passe windows dans $DaystoExpire jours"
    		  $Message="
    		  Bonjour $Name,
    		  <p> Votre mot de passe de session windows va expirer dans $DaysToExpire jours.<br />
    		  Pour le changer, il vous suffit d appuyer sur CTRL+ALT+Del et clic sur changer le mot de passe. <br />
     
    		  <p><B>Le mot de passe doit:</B> </p>
     
    			Mettez les caractéristiques de votre AD
     
     
    			<p>Si vous ne changez pas votre mot de passe en $DaysToExpire jours, tous les lecteurs reseaux seront coupes et certaines applications pourraient ne plus fonctionner. <br /></p>
    			<p>Tant que le mot de passe ne sera pas modifie, vous recevrez ce message tous les jours. <br /></p>
    			<p>Si vous avez le moindre probleme, merci de contacter l'équipe Infra) ! <br /></p>
     
     
    			Cordialement<br />
    			  </p>"
    		  $smtp = "votreserveursmtp" 
     
    		  $to = "$Email" 
     
    		 $from = "inserervotremail" 
     
    		 $subject = "$EmailSubject"  
     
    		 $body = "$Message" 
     
    		  #On envoie le mail let's go > Send-MailMessage  
     
    		  send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $body -BodyAsHtml 
    	  }
    	 }
     }
     Catch{
     	 # Error TYPE
    	 "[$($_.Exception.GetType().FullName)]" | Out-File D:\errorlog.txt
    	 # Error MESSAGE
    	 $_.Exception.Message | Out-File D:\errorlog.txt
     }
    Je n'ai pas pu edit le code de base, donc voilà la V2 !
    Merci à Incorporated et à un anonyme pour leurs aides.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 26/06/2008, 10h10
  2. Réponses: 8
    Dernier message: 01/04/2008, 12h05
  3. [Mail] Mot de passe perdu
    Par dunbar dans le forum Langage
    Réponses: 6
    Dernier message: 17/04/2007, 08h19
  4. Réponses: 5
    Dernier message: 18/04/2006, 09h40
  5. mot de passe windows
    Par butch dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 29/11/2005, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo