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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
'##==============================================##
'##== But : ce script gère la réception des fichiers PDF générés par pdfcreator.
'##== Il renvoie dans le dossier "Mes documents\ScanU3" de l'utilisateur le fichier
'##==si l'utilisateur est sur la Baie, sinon lui envoie par mail.
'##==============================================##
'##==============================================##
'## Déclaration des variables et objets globaux ===================##
'##==============================================##
Option Explicit
On Error Resume Next
Dim WshShell,FSO, WshNetwork, WshProcessEnv, objDSE, Connection, CDOEmail
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshProcessEnv = WshShell.Environment("Process")
Set objDSE = GetObject("LDAP://rootDSE")
set Connection = CreateObject("ADODB.Connection")
Set CDOEmail = CreateObject("CDO.Message")
Dim Args, Login, Repertoir, Fichier, SplitFichier, MovFichier
Set Args = WScript.Arguments ' tableau d'arguments
Dim sFilter, Champs, Profondeur, Requete, RecordSet, nbRecord, Email, Scan, FichierDestination
'##==============================================##
' SPECIFIQUE - SUPPRESSION DU USER WINDOWS DANS LE NOM DU FICHIER
Dim FichierNameOld,FichierNew,FichierNameNew
'##==============================================##
' SPECIFIQUE - SUPPRESSION DU USER WINDOWS DANS LE NOM DU FICHIER
'##==============================================##
'#========== Fonction : Mail
'#========== But : Envoi de mail
'#========== Arguments : Email_From,Email_To,sujet, message
'#========== Retour : aucun '##==============================================##
Function Mail(Email_To,fichier)
'##==============================================##
' LOG des envois de PDF par mail
Dim objDateTime :objDateTime = Year(Now)& "-" & Month(Now)& "-" & Day(Now)& " "& Hour(Now)& ":"& Minute(Now)& ":"& Second(Now)
Dim objScriptLog :Set objScriptLog = FSO.OpenTextFile("C:\Program Files (x86)\PDFCreator\LOGS\" & Year(Now)& "-" & Month(Now) & ".log",8,true)
objScriptLog.WriteLine(objDateTime & "#" & replace(fichier,"C:\Program Files (x86)\PDFCreator\PDF\",""))
' LOG des envois de PDF par mail
'##==============================================##
'##==============================================##
' SPECIFIQUE - SUPPRESSION DU USER WINDOWS DANS LE NOM DU FICHIER
FichierNameNew = Replace(Fichier.Name, Login&"_", "")
FSO.MoveFile Repertoir & "\PDF\" & Fichier.Name, Repertoir & "\PDF\" & FichierNameNew
FichierNew = Repertoir & "\PDF\" & FichierNameNew
'##==============================================##
' SPECIFIQUE - SUPPRESSION DU USER WINDOWS DANS LE NOM DU FICHIER
CDOEmail.From = "NePasRepondre@xxx.fr"
CDOEmail.To = Email_To
CDOEmail.Subject = "xxxx # PDFMailExchange"
CDOEmail.Textbody = " " & Chr(13) + Chr(10) & "Veuillez trouver ci-joint le document imprimé avec l'imprimante PDFMailExchange"
CDOEmail.AddAttachment FichierNew
'CDOEmail.AddAttachment fichier
CDOEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
CDOEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx.xx-xxxx.fr"
CDOEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
CDOEmail.Configuration.Fields.Update
CDOEmail.Send
End Function
'##==============================================##
'#========== Fin Mail =================================#
'##==============================================##
'## Récupération du login envoyé par PDFCreator (Author)
If Args.Count = 1 Then
Login = Args(0)
'# Définition du dossier racine d'exécution
Repertoir = "C:\Program Files (x86)\PDFCreator"
'# Boucle sur tous les fichiers contenus dans le répertoire PDF
For each Fichier in FSO.GetFolder(Repertoir&"\PDF").Files
SplitFichier = Split(Fichier.Name, "_")
If SplitFichier(0) = Login Then
'# Connexion à l'AD et récupération des infos de l'utilisateur
Connection.Provider = "ADsDSOObject"
Connection.Open "ADs Provider"
sFilter = "(&(objectclass=user)(samaccountname=" & Login & "))"
Champs = ";mail,wWWHomePage" '#À modifier si vous n'utilisez pas le même champ
Profondeur = ";subtree"
Requete = "<LDAP://" & objDSE.Get("defaultNamingContext") & ">;" & sFilter & Champs & Profondeur
Set RecordSet = Connection.Execute(Requete)
nbRecord = RecordSet.RecordCount
If nbRecord = 0 Then '#vérification de l'existence de l'utilisateur sur l'AD
Connection.Close
else '#si l'utilisateur existe on récupère ses infos depuis l'ad
Email = Recordset.Fields("mail").Value
Scan = Recordset.Fields("wWWHomePage").Value
Connection.Close
'# vérification de l’existence du dossier scan
If Scan <> "" Then
FichierDestination = Scan & "\" & Replace(Fichier.Name, Login&"_", "")
'#Déplacement du fichier dans le répertoire de destination
FSO.MoveFile Repertoir & "\PDF\" & Fichier.Name, FichierDestination
ElseIf Email <> "" Then
'##==============================================##
' SPECIFIQUE - SUPPRESSION DU USER WINDOWS DANS LE NOM DU FICHIER
'Mail Email,Fichier
'FSO.DeleteFile Fichier
'##==============================================##
FichierNameOld=fichier.name
Mail Email,Fichier
'msgbox "Delete : " & Repertoir & "\PDF\" & Replace(FichierNameOld, Login&"_", "")
FSO.DeleteFile Repertoir & "\PDF\" & Replace(FichierNameOld, Login&"_", "")
'##==============================================##
' SPECIFIQUE - SUPPRESSION DU USER WINDOWS DANS LE NOM DU FICHIER
End If
End if
End If
Next
Else
WScript.Quit
End If |
Partager