Salut à tous
Mettant actuellement une solution de conversion centralisée PDFCreator en oeuvre, voila un petit retour d'info.
PS : la partie scripting est en batch, oui le vbs ça existe mais la pour le coup le batch ch’est plus chimple ^^.
Maquette :
èObjectif : Pouvoir convertir depuis n’importe quel poste du parc un document en PDF et le récupérer sur la machine qui l’a envoyé mais aussi garder un minimum du sécurité et de séparation entre les différents utilisateurs d’un même poste.
èMatos : Poste Xp SP3 - PDFCreator 9.7 en mode serveur + Scripts de copie vers les clients.
èInstallation : Rien de bien complexe à ce niveau, PDFCreator est installé en mode Serveur, l'imprimante virtuelle est partagée via les mécanismes Windows.
èDétail du fonctionnement : Dans les options PDFCreator je récupère l'adresse IP du poste (paramètre <Redmon_Machine>) ainsi que le nom d'utilisateur du poste(paramètre <Redmon_username>). J'enregistre le fichier PDF convertit (sous le nom "Nom document-date-heure.pdf" pour éviter les doublons) dans l'arborescence suivante sur le serveur "F:\\PDFCreator\\Temp\\PDFs\\\\\\\\".
Ensuite le script RunAfterSaving se déroule. Celui ci prend en arguments les paramètres <Redmon_Machine> et <Redmon_Username> de PDFCreator.
Le script effectue un test sur la machine cible pour tester l'existence du répertoire cible et si ce n'est pas le cas il crée le répertoire, applique les droits (via cacls.exe) et copie un raccourci sur le "All Users\\Bureau" de la machine cible (le raccourci utilise le chemin dynamique "C:\\Documents&Settings\\%USERNAME%\\PDF\\" ).
Viens alors la copie des fichiers, pour cela j’utilise XCOPY /Y et du fait de l’arborescence utilisée je ne m’occupe pas du nom des fichiers à copier, un simple *.pdf fait l’affaire J.
Le traitement des erreurs est assez basique sur le XCOPY histoire de ne pas alourdir le script.
Si tout se passe bien je balance un netsend <Redmon_Username> à la machine cible pour lui confirmer la conversion, puis je nettoie les temporaires sur le serveur.
En cas de pépin je log dans un fichier sur le serveur les info (mais pas encore le code d’erreur retour du XCOPY), je balance un netsend d’avertissement, puis je nettoie les temporaires sur le serveur.
èScript
CLS
@echo off
REM Script de copie de fichier PDF après utilisation
REM partagée PDF Creator imprimante virtuelle
REM Variation avec copie dans C:\\Documents and Settings\\%USERNAME%\\PDF\\
REM ++ Gestion des droits via cacls.exe
REM ++ Création Raccourci via Shortcut.exe
REM .
REM VERSION SERVEUR 2.0
REM Par SG / DSI MICRO / 21-01-2010
REM =================================================
REM Déclaration des variables transmises par PDFCreator
REM %1 étant le et %2 le
SET STATION=%1
SET MAT=%2
SET errorlevel=0
REM On se place dans le répertoire de travail du serveur
F:
REM si on reste dans le rep de travail cela empêche la nettoyage
REM Test d'existence du répertoire PDF sur la station cible
IF EXIST "\\\\%STATION%\\C$\\DOCUME~1\\%MAT%\\PDF\\" goto NEXT
REM Sinon on crée le répertoire et le raccourci et on positionne les droits
MD "\\\\%STATION%\\C$\\DOCUME~1\\%MAT%\\PDF\\"
shortcut /f:"\\\\%STATION%\\C$\\DOCUME~1\\ALLUSE~1\\Bureau\\Mes PDF.lnk" /a:c /t:C:\\DOCUME~1\\%%USERNAME%%\\PDF\\
cacls "\\\\%STATION%\\C$\\DOCUME~1\\%MAT%\\PDF" /T /E /P %MAT%:c administrateurs:c
cacls "\\\\%STATION%\\C$\\DOCUME~1\\ALLUSE~1\\Bureau\\PDF.lnk" /T /E /P utilisateurs:c administrateurs:c
:NEXT
REM C'est parti pour la copie du pdf vers la machine qui l'a envoyée
xcopy F:\\PDFCreator\\Temp\\PDFs\\%STATION%\\%MAT%\\*.pdf "\\\\%STATION%\\C$\\DOCUME~1\\%MAT%\\PDF\\" /Y
REM Traitement des erreurs lors de la copie a faire
if errorlevel 5 goto ERROR
if errorlevel 4 goto ERROR
if errorlevel 2 goto ERROR
if errorlevel 1 goto ERROR
if errorlevel 0 goto COPYOK
:COPYOK
REM Envoi du message de confirmation via NET SEND
net send %STATION% "La conversion PDF est effectuée, utilisez le raccourci Mes PDF pour y accéder"
REM Nettoyage du répertoire de travail et des variables
RD /Q /S "F:\\PDFCreator\\Temp\\PDFs\\%STATION%\\"
SET STATION=
SET MAT=
exit
:ERROR
REM En cas d'erreur
REM activation du service net send et attente de 20s que le service soit Running
SC \\\\%STATION% start messenger
SLEEP 20
net send %STATION% "Une erreur s'est produite, la conversion a échouée, veuillez réessayer ou contacter le service informatique"
REM Logging des erreurs
echo %date% - %time% - Erreur de copie pour %STATION% avec le matricule %MAT% - niveau d erreur %ERRORLEVEL% >> F:\\PDFCreator\\LOGS\\LOG-PDF.LOG
REM Netoyage du répertoire de travail et des variables
RD /Q /S "F:\\PDFCreator\\Temp\\PDFs\\%STATION%\\"
SET STATION=
SET MAT=
exit
Production :
èMatos : Virtual Machine ESX sur Blade Center – W2K3 R2 – Serveur d’impression Windows gérant environ 400 imprimantes.
èInstallation : PDFCreator 9.9 en mode serveur (étonnant hein ^^) attention de bien mettre l’exception dans le DEP sinon c’est moins rigolo.
è Script : pour l’instant exactement le même que pour la maquette
è Logiciel tierce utilisé :
Et …. Et … voilouu !