Aller au contenu

MeowMeow

INpactien
  • Compteur de contenus

    880
  • Inscription

  • Dernière visite

  • Jours gagnés

    20

Messages posté(e)s par MeowMeow

  1. Voici le code :

    Set-StrictMode -v 2
    
    #Configuration email TTLSSL
    $password = "MDP"
    $userName = "from@email.fr"
    [SecureString]$securepassword = $password | ConvertTo-SecureString -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securepassword
    $TLS12Protocol = [System.Net.SecurityProtocolType] 'Tls12' 
    [System.Net.ServicePointManager]::SecurityProtocol = $TLS12Protocol  
    
    # Serveur SMTP - Nom du serveur
    $SMTPServer = "smtp.office365.com"
    
    # Serveur SMTP - Numéro de port
    $SMTPPort = 587
    
    # Serveur SMTP - Adresse e-mail de l'expéditeur
    $SMTPSender =  "from@email.fr"
    
    # Serveur SMTP - Encodage Email
    $SMTPEncoding =[System.Text.Encoding]::UTF8
    
    # Adresse e-mail du destinataire pour la synthèse
    $SendReportAdminEmail = "for@email.fr"
    
    # Date du jour (format FileTime)
    $DateToday = (Get-Date).ToFileTime()
    
    $ping = new-object System.Net.NetworkInformation.Ping
    $ReponsePing = $ping.Send("IP/NAME")
    
    if ($ReponsePing.status –eq “TimedOut”)
    {
         # Envoyer l'e-mail
         Send-MailMessage -UseSsl -Credential $credential -Verbose -SmtpServer $SMTPServer -Encoding $SMTPEncoding  `
            -From $SMTPSender -To $SendReportAdminEmail `
            -Subject "Panne de connexion vers ???? - $(Get-Date -Format dd/MM/yyyy_HH:mm)" `
            -Body "Erreur connexion" -BodyAsHtml -Port $SMTPPort
    }
    else {
    exit }

     

    Tâches planifié - répétition toutes les 30min

     

  2. Il y a 1 heure, brice.wernet a dit :

    Oui, met un "Set-StrictMode -v 2" en 1ère ligne pour ne plus écrire d'affreusité.

    Ta variable $reply n'est pas déclarée (c'est $reponsePing ...)

    Et d'un autre côté, je déconseille le ping.

    Je préfère utiliser une page web: en faisant iwr sur une page web, on peut la comparer en taille ou en contenu ce qui permet aussi de détecter un défaçage, un problème de DNS, ...

    Cha marche 🙂

     

    C'est du ping en réseau local. Donc cela ira 🙂

    Je mettrais mon script ici (deux mains).

  3. Bonjour à toutes et tous,

    J'ai comme projet (simple) d'envoyer un ping sur mon ip publique. J'ai 2 sites (A et B).

    Je fais un ping du site A vers le site B - et si le ping me répond un timedout --> envoie du email. Et vice et versa B --> A.

    Donc le script powershell :

    $ping = new-object System.Net.NetworkInformation.Ping
    $ReponsePing = $ping.Send("mon ip")
    
    if ($Reply.status –eq “Success”)
    {
         Write-Host “Le PC est Démarré“
    }
    else
    {
         Write-Host “Le PC est éteint“
    }

     

    sauf que j'ai cette réponse  :

    7KX9o0I.png
     

    Pourtant, j'ai bien mon status en Success 😕
    Pour voir cela, j'ai fait ce code :

    $ping = new-object System.Net.NetworkInformation.Ping
    $ping.Send("une ip")
    
    if ($Reply.status –eq “Success”)
    {
         Write-Host “Le PC est Démarré“
    }
    else
    {
         Write-Host “Le PC est éteint“
    }

    Vous avez une idée?

    Merci 🙂

  4. J'ai résolu l'histoire 🙂


    J'avais une archive en ".pst" . J'ai exporté les emails dans mon compte email dans un dossier spécifique..

    Depuis le logiciel Acces, j'ai ouvert le dossier, où son stockées les emails, que je veux savoir la date et l'heure.

    Puis j'ai enregistrer la base de donnée.

    Depuis excel, j'ai ouvert cette même base de donnée.  Et voila 🙂

    Edit : Acces arrive bien a accéder à l'archive. Il fallait juste une peu plus de temps.

  5. Bonjour à toutes et tous,


    Je cherche à exporter mes emails dans un fichier pour avoir un filtre avec la date et l'heure.

    J'ai essayé de l'exportation en csv et de le retravailler en bdd excel. Aucune heure.

    Une simple, ctrl +A, ctrl C+V sur excel, j'ai que la date et pas l'heure.

    J'ai essayé de rajouter une colonne pour avoir que l'heure et une autre colonne, que la date. J'ai bien les dates, mais en AM/PM sans la justification AM/PM donc, tu ne sais pas si l'heure est en "AM" ou "PM".

    Bref, je n'ai plus d'idée.

    Je vous remercie.

  6.  Je partirai sur du full AMD. Qualité prix/perf meilleure que Intel. Mais vu que tu as un budget conséquent et que tu ne veux pas bouger de configuration pendant plus de 5ans, je partirai sur du Intel/Nvidia qui sont meilleure en perf.

    Partir sur du i5-13600K ou i7-13700K. Et oui pour du AIO. 

    J'ai fait une configuration avec un ventirad, j'ai eu des soucis avec le boitier (pour voir le RGB). Voici la discussion de la configuration : ici

  7. Send-MailMessage : Impossible de lire les données de la connexion de transport : net_io_connectionclosed.
    Au caractère Ligne:1 : 1
    + Send-MailMessage -From email@email.fr -To email@email.fr -Subject "Test  ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation : (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpExcep
       tion
        + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

     

  8. Même erreur. Avec pare-feu désactivé

     

    Send-MailMessage : Erreur lors du traitement. La réponse du serveur était: 5.7.3 STARTTLS is required to send mail [PAZP264CA0081.FRAP264.PROD.OUTLOOK.COM 
    2023-02-13T15:15:28.614Z 08DB0D481E93FE2F]
    Au caractère Ligne:1 : 1
    + Send-MailMessage -SmtpServer smtp.office365.com

    Avec un autre code simple :

     + CategoryInfo          : InvalidOperation : (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpExcep
    tion
     + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

     

  9. Bonjour à toutes et à tous,

    J'essaie d'envoyer des emails pour l'expiration des MDP AD via un script power shell :
     

    ### Variables modifiables
    
    # Nombre de jours avant l'expiration pour envoyer la notification
    $DateThreshold = 31
    
    #Configuration email TTLSSL
    $password = "mon mdp"
    $userName = "email expéditeur"
    [SecureString]$securepassword = $password | ConvertTo-SecureString -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $securepassword
    [System.Net.ServicePointManager]::SecurityProtocol = 'Tls,TLS11,TLS12'
    
    # Serveur SMTP - Nom du serveur
    $SMTPServer = "smtp.office365.com"
    
    # Serveur SMTP - Numéro de port
    $SMTPPort = 567
    
    
    
    # Serveur SMTP - Adresse e-mail de l'expéditeur
    $SMTPSender =  "email expéditeur"
    
    # Serveur SMTP - Encodage Email
    $SMTPEncoding =[System.Text.Encoding]::UTF8
    
    # Envoyer une synthèse aux administrateurs
    [boolean]$SendReportAdmin = $true
    
    # Adresse e-mail du destinataire pour la synthèse
    $SendReportAdminEmail = "mon email"
    
    ### Fonctions
    Function Send-MailMessageForUser{
        <#
            .SYNOPSIS : Envoyer une notification à un utilisateur dont le mot de passe expire dans X jours (selon seuil)
        #>
    
        Param([Parameter(Mandatory=$true)][string]$SendMailUserGivenName,
              [Parameter(Mandatory=$true)][string]$SendMailUserSurname,
              [Parameter(Mandatory=$true)][string]$SendMailUserEmail,
              [Parameter(Mandatory=$true)][string]$SendMailUserPrincipalName,
              [Parameter(Mandatory=$true)][string]$SendMailUserPasswordExpirationDate)
    
        # Corps de l'email pour les utilisateurs
        $SendMailBody=@"
    <p>Bonjour $SendMailUserGivenName,</p>
    <p>Dans <b>moins de $DateThreshold jours</b>, le mot de passe du compte <b>$SendMailUserPrincipalName</b> va expirer.<br>
    <b>Pensez à le changer</b> avant qu'il arrive à expiration (date d'expiration : $SendMailUserPasswordExpirationDate)</p>
    Cordialement,<br>
    Le service informatique
    "@
    
        # Objet de l'e-mail pour les utilisateurs
        $SendMailObject="$SendMailUserGivenName $SendMailUserSurname : votre mot de passe arrive à expiration !"
    
        # Envoyer l'e-mail
        Send-MailMessage -UseSsl -Credential $credential -Verbose -SmtpServer $SMTPServer -Encoding $SMTPEncoding  `
            -From $SMTPSender -To $SendMailUserEmail `
            -Subject $SendMailObject `
            -Body $SendMailBody -BodyAsHtml -Port $SMTPPort
    
    }
    
    ### Variables
    # Date du jour (format FileTime)
    $DateToday = (Get-Date).ToFileTime()
    
    # Date de référence (date du jour + nombre jours avant expiration pour la notification)
    $DateWithThreshold = (Get-Date).AddDays($DateThreshold).ToFileTime()
    
    # Liste des utilisateurs Active Directory
    $UsersInfos = Get-ADUser -Filter { (Enabled -eq $True) -and (PasswordNeverExpires -eq $False)} –Properties "DisplayName", "mail", "msDS-UserPasswordExpiryTimeComputed" | 
                             Select-Object -Property  "GivenName", "Surname","mail", "UserPrincipalName", "msDS-UserPasswordExpiryTimeComputed"
    
    # Initialiser l'objet avec la liste des utilisateurs
    $UsersNotifList=@()
    
    # Traiter chaque utilisateur
    Foreach($User in $UsersInfos){
        
        if(($User."msDS-UserPasswordExpiryTimeComputed" -lt $DateWithThreshold) -and ($User."msDS-UserPasswordExpiryTimeComputed" -gt $DateToday)){
                
                $UserPasswordExpirationDate = [datetime]::FromFileTime($User."msDS-UserPasswordExpiryTimeComputed")
                $UserObj = New-Object System.Object
                $UserObj | Add-Member -Type NoteProperty -Name GivenName -Value $User.GivenName
                $UserObj | Add-Member -Type NoteProperty -Name Surname -Value $User.Surname
                $UserObj | Add-Member -Type NoteProperty -Name Email -Value $User.mail
                $UserObj | Add-Member -Type NoteProperty -Name UserPrincipalName -Value $User.UserPrincipalName
                $UserObj | Add-Member -Type NoteProperty -Name PasswordExpirationDate -Value ($UserPasswordExpirationDate).ToString('dd/MM/yyyy')
    
                $UsersNotifList+=$UserObj
    
                Send-MailMessageForUser -SendMailUserGivenName $User.GivenName -SendMailUserSurname $User.Surname -SendMailUserEmail $User.mail `
                                        -SendMailUserPrincipalName $User.UserPrincipalName -SendMailUserPasswordExpirationDate ($UserPasswordExpirationDate).ToString('d MMMM yyyy')
        }
    }
    
    # Faut-il envoyer une synthèse aux administrateurs ?
    if(($SendReportAdmin -eq $true) -and ($UsersNotifList.Count -ne 0)){
    
        # Corps de l'e-mail (sous la forme d'un tableau)
        $SendMailAdminBody = $UsersNotifList | ConvertTo-HTML -PreContent "Bonjour,<br><p>Voici la liste des comptes Active Directory dont le mot de passe expire dans moins de $DateThreshold jours.</p>" | Out-String | ForEach-Object{
                                        $_  -replace "<table>","<table style='border: 1px solid;'>" `
                                            -replace "<th>","<th style='border: 1px solid; padding: 5px; background-color:#014B83; color:#fff;'>" `
                                            -replace "<td>","<td style='padding: 10px;'>"
                                        }
    
        # Envoyer l'e-mail
        Send-MailMessage -Verbose -SmtpServer $SMTPServer -Encoding $SMTPEncoding - `
            -From $SMTPSender -To $SendReportAdminEmail `
            -Subject "Synthèse - Expiration des mots de passe AD - $(Get-Date -Format dd/MM/yyyy)" `
            -Body $SendMailAdminBody -BodyAsHtml -Port $SMTPPort
    }

    Et voici l'erreur qui me retourne :

    Send-MailMessage : Impossible de se connecter au serveur distant
    Au caractère C:\***************\mdpexpi.ps1:73 : 5
    +     Send-MailMessage -UseSsl -Credential $credential -Verbose -SmtpServer $SMTPS ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation : (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpException
        + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

    Vous avez une idée?

    Différent sources utilisées : ici et ici

    Merci.

×
×
  • Créer...