Ivanova26

Untitled

Sep 8th, 2020
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Charger l'ensemble .NET de WinSCP
  2. Add-Type -Path "WinSCPnet.dll"
  3.  
  4. # Configurer les options de session
  5. $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
  6.     Protocol = [WinSCP.Protocol]::Ftp
  7.     HostName = "xxxxxx"
  8.     UserName = "xxxxxx"
  9.     Password = "xxxxxx"
  10. }
  11.  
  12. $sessionOptions.AddRawSettings("ProxyHost", "xxxxxx")
  13. $sessionOptions.AddRawSettings("ProxyPort", "xxxxxx")
  14. $sessionOptions.AddRawSettings("FtpProxyLogonType", "5")
  15.  
  16. $session = New-Object WinSCP.Session
  17.  
  18. try
  19. {
  20.     # Connecter
  21.     $session.Open($sessionOptions)
  22.  
  23.     # Votre code
  24. ### FONCTION ENVOI DE MAIL ###
  25. Function SendMail
  26. {
  27. $EXPEDITEUR = "xxxxxx"
  28. $DESTINATAIRE = "xxxxxx","xxxxxx"
  29. $SUJET = "xxxxxx"
  30. $SERVEUR_SMTP = "xxxxxx"
  31. $CORPS_MAIL = "xxxxxx"
  32. #$PJ = 'c:\script\Rapport.txt' # si Pièce jointe
  33. #$attachment = New-Object System.Net.Mail.Attachment($PJ) #Pour la Pièce jointe
  34. $Mail_Message = New-Object System.Net.Mail.MailMessage #on créé l'objet
  35. $Mail_Message.From = $EXPEDITEUR
  36. $Mail_Message.Subject = $SUJET
  37. $Mail_Message.Body = $CORPS_MAIL
  38. #$Mail_Message.Attachments.Add($PJ)
  39. $Mail_Adresses = $Mail_Message.To
  40. if ($DESTINATAIRE -is "System.Array") #Si plusieurs adresses
  41.     {
  42.     foreach ($Adr in $DESTINATAIRE) #on rajoute chaque adresse
  43.         {
  44.         $Mail_Adress = New-Object System.Net.Mail.MailAddress $Adr
  45.         $Mail_Adresses.Add($Mail_Adress)
  46.         }
  47.     }
  48. else
  49.     {
  50.     $Mail_Adress = New-Object System.Net.Mail.MailAddress $DESTINATAIRE
  51.     $Mail_Adresses.Add($Mail_Adress)
  52.     }
  53. $SMTPClient = New-Object Net.Mail.SmtpClient($SERVEUR_SMTP, xxxxxx) #serveur SMTP et Port
  54. $SMTPClient.EnableSsl = $false #si SSL activé ou non - Importer le certificat avant?
  55. $SMTPClient.Credentials = New-Object System.Net.NetworkCredential("xxxxxx", "xxxxxx"); #ICI Login et password du compte mail
  56. $SMTPClient.Send($Mail_Message) #l'envoi du mail
  57. }
  58.  
  59. ### Déclaration variables ###
  60. $log="xxxxxx" #
  61. $dateverif = get-date -format "yyyy_MM_dd_-_HH_mm_ss"
  62.  
  63.  
  64. ### VERIFICATION DES COMMANDES EN ATTENTE ###
  65. $Date=(Get-Date).AddMinutes(-2)
  66.  #$remotePath = "xxxxxx"
  67.  #$H =Dir $remotePath
  68.  #$path='xxxxxx'
  69.  #$H=Dir $Path |
  70.  $H=$session.Open
  71.      Where-Object {! $_.PsIsContainer}|
  72.      Group-Object -Property {$_.LastWriteTime -ge $date} -AsHashTable -AsString
  73.  
  74. $oldOfs,$ofs=$ofs,' , '
  75. if ($H -eq $null) # Aucun fichier dans le répertoire à surveiller
  76. {
  77.     echo "$dateverif Aucun fichier trouvé" >> $log
  78.          exit 0
  79. }
  80. if (($H).Count -gt "0") # Présence de nouveaux fichiers
  81. {
  82.     Write-Warning "xxxxxx"
  83.     "$($H.True)"
  84.     echo "$dateverif xxxxxx" >> $log
  85.     echo $H >>$log
  86.     SendMail #Envoi du mail d'alerte
  87.      exit 0
  88. }
  89. else # Pas de nouveaux fichiers
  90. {
  91.     Write-Warning "xxxxxx"
  92.     "$($H.False)"
  93.     echo "$dateverif Aucun nouveau rapport" >> $log
  94.          exit 0
  95. }
  96.  $ofs=$oldOfs
  97. }
  98. finally
  99. {
  100.     $session.Dispose()
  101. }
  102.  
Advertisement
Add Comment
Please, Sign In to add comment