Admin center:Deploiement 2 PDFCreator

From OCS Inventory NG
Jump to: navigation, search

Déploiement de PDFCreator avec OCS

But : Installer la dernière version de PDFCreator sans intervention de l'utilisateur et en mode silencieux.

Principe d’exécution :

   L’agent OCS prend contact avec le serveur.
   L’agent télécharge le paquet disponible sur le serveur.
   L’agent lance le fichier d’ installation de l’application.

Pré requis

   Installer la dernière version d'AutoIT disponible ici -> [1]
   Le package AutoIT contient un éditeur intégré (Scite4AutoIT), qui est installé en même temps que AUtoIT.
   C'est avec cet éditeur que nous allons créer PDFCreator.au3

Comment générer facilement le fichier pdfcreator.inf

   Il existe l'option /saveinf, qui vous permet de stocker dans un fichier de votre choix toutes les options d'installation que vous sélectionnez durant le processus d'installation de PDFCreator. 
   En ligne de commande, taper la commande suivante PDFCreator-1_7_0_steup.exe /saveinf=c:\pdfcreator.ini.
   Sinon, vous avez la possibilité d'utiliser le fichier affiché en bas de cette page.

Le script AutoIt

Compilation du script AutoIT : PDFCreator.au3

   Charger le script dans l'éditeur. Le contenu du script est disponible en bas de cette page. Cliquer sur le menu Tools
   et ensuite Build. L'éditeur génère un fichier exécutable -> PDFCreator.exe

Test d'utilisation du script en ligne de commande

   * Ouvrir une fenêtre DOS
   * Taper la ligne de commande suivante : PDFCreator.exe 1.0.1 et valider par la touche entrée. 
   * L'installation s'effectue en mode très silencieux, sans redémarrer la machine.

Vérification de l'installation

   Un raccourci est créé dans "Menu Démarrer"

Création de l'archive

   Le fichier PDFCreator.zip utilisé pour le télé déploiement doit contenir 3 fichiers :
   * PDFCreator-1_0_1_setup.exe (Le fichier .exe téléchargé sur le site de l'éditeur)
   * PDFCreator.exe (script PDFCreator.au3 compilé avec AutoIt v3)
   * PRDCreator.inf

Création du package sous OCS

   La création du paquet s’effectue via l’interface web OCS reports. 
   Il faut préalablement avoir paramétré le serveur pour autoriser le télé-déploiement.
   http://votre_serveur/ocsreports/
   Identifiez vous, allez dans l’onglet Télédéploiement, et cliquez sur Création.
Pdfcreator1.JPG
   On utilise la méthode Lancer.
   Commande : PDFCreator.exe 1.0.1
   On peut aussi configurer l'envoie d'un message à l'utlisateur.
   Cliquez sur Envoyer, et une nouvelle fenêtre va s’ouvrir et vous permettre de segmenter votre paquet.
   Cette option est intéressante pour le déploiement de gros paquets.
   Le fichier fait 18 Mo. On va donc fragmenter le paquet en 10.
Pdfcreator2.JPG
   Nombre de fragment : 10
   En fonction du nombre de frangments et de la configuration de votre serveur, vous avez une estimation du temps de déploiement.
   Si vous entrez une valeur nulle ou incohérente, le télé déploiement ne fonctionnera pas.
   Cliquez sur Envoyer.
   Vous devez avoir un message vous signalant que votre paquet a bien été créé.


Pdfcreator3.JPG

Activation du package sous OCS

   Allez dans l’onglet Télédéploiement, et cliquez sur cette fois sur Activation.
   La liste des paquets apparaît. Il suffit de cliquer sur l'icone "Activer" correspondant à notre nouveau paquet. 
Pdfcreator4.JPG
   Je choisis dans cette exemple une activation manuelle.
   Il ne reste plus qu’à indiquer où se trouve le paquet créé par OCS.
   Par défaut :
   * http://serveurOCS/download
   * https://serveurOCS/download


Pdfcreator5.JPG
   Cliquez sur Envoyer.
   Vous devez avoir un message vous signalant que votre paquet a bien été activé.
Pdfcreator6.JPG
   Il ne vous reste plus qu’à déployer le paquet vers les clients que vous souhaitez.
   Pour celà, effectuez une recherche multi critères, et selectionnez les PC sur lesquels vous souhaitez déployer votre paquet.
   Puis cliquez sur l'icône déploiement.
Pdfcreator7.JPG
   Une nouvelle fenêtre s'ouvre, et dans l'exemple nous choisissons, Affectation de masse : pour la sélection.
    Nouveau
    Deux possibilités ici :
       * pour la sélection : Le paquet sera déployé uniquement sur les clients précédemment sélectionnés
       * pour la requète : Le paquet sera déployé sur tous les clients répondant à la recherche multi critères effectués
    
Pdfcreator8.JPG
   Nous sélectionnons le paquet à déployer grace au bouton Select (dans notre exemple, facile, il n'y en a qu'un :) )
   
Pdfcreator9.JPG

Les fichiers

Contenu du script

#cs ----------------------------------------------------------------------------
//====================================================================================
// OCS INVENTORY NG
// Copyleft Frank BOURDEAU 2011
// Web: http://www.ocsinventory-ng.org
//
// This code is open source and may be copied and modified as long as the source
// code is always made freely available.
// Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
//====================================================================================
 
AutoIt Version: 3.3.6.1
Author:  Frank BOURDEAU
Modification: Frank BOURDEAU
Script Function: Installation of PDFCreator with uninstall test if an old version is present
Modification: 
     parameter value of the version of PDFCreator ex. pdfcreator.exe 1.0.1 -> install version 1.0.1 
     and uninstall the old version (12/07/2010)
Add: registry key to forbid the automatic update (12/07/2010)
Modification: add compatibility for Vista/7/2008 (02/09/2011)
 
#ce ----------------------------------------------------------------------------
#include <Process.au3>
 
Local $version = $cmdline[1]
Local $name
Local $versioninstalled, $versionsetup
Local $nowDate = @YEAR & "-" & @MON & "-" & @MDAY & "-" & @HOUR & @MIN & @SEC
Local $dirlog, $logFile
Local $pdfcreatorpath = @ProgramFilesDir&"PDFCreator\"
Local $osVersion = @OSVersion
 
$name = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0001B4FD-9EA3-4D90-A79E-FD14BA3AB01D}","DisplayName")
$versioninstalled = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0001B4FD-9EA3-4D90-A79E-FD14BA3AB01D}","PDFCreatorVersion")
$versionsetup=StringReplace($version,".","_")
 
select
	case ($osVersion = "WIN_2012" or $osVersion = "WIN_2008R2" Or $osVersion = "WIN_2008" Or $osVersion = "WIN_7" Or $osVersion = "WIN_VISTA" Or $osVersion = "WIN_8")
		If not(FileExists (@AppDataCommonDir&"\OCS Inventory NG\Agent\Log")) Then
			RunWait(@comspec & ' /c md "'&@AppDataCommonDir&'\OCS Inventory NG\Agent\Log"', @WorkingDir, @SW_HIDE)
		EndIf
		$dirLog = @AppDataCommonDir&"OCS Inventory NG\Agent\Log"
	case ($osVersion = "WIN_2003" Or $osVersion = "WIN_XP" Or $osVersion = "WIN_XPe" Or $osVersion = "WIN_2000")
		If not(FileExists (@AppDataCommonDir&"\OCS Inventory NG\Log")) Then
			RunWait(@comspec & ' /c md "'&@AppDataCommonDir&'\OCS Inventory NG\Agent\Log"', @WorkingDir,@SW_HIDE)
		EndIf
		$dirLog = @AppDataCommonDir&"\OCS Inventory NG\Agent\Log"
EndSelect
 
$logFile = FileOpen($dirLog &"\PDFCreator-"& $version &"-" & $nowDate & ".log", 2)
 
if $name = "PDFCreator" and $versioninstalled = $version Then
        ; Don't install anything this is the last version
        FileWrite($logFile, "No installation - Latest version of the software installed : " & $versioninstalled & @CRLF)
Else
		; The installed version is older that the new one. Updating it.
		FileWrite($logFile, "Updating PDFCreator " & $versionInstalled & " installed on " & @ComputerName &@CRLF)
		; Check to see if PDFCreator is running
		; If so kill the process and proceed with PDFCreator uninstallation/installation
		$PID = ProcessExists("pdfcreator.exe")
		If _ProcessGetName($PID) = "pdfcreator.exe" Then
			ProcessClose($PID)
			FileWrite($logFile, "Killing process " & $PID & @CRLF)
			FileWrite($logFile, "Silently uninstall of the " &$versionInstalled&" version of VLC" &@CRLF)
			RunWait(@ComSpec & ' /c "'& $pdfcreatorpath &'unins000.exe" /verysilent', @WorkingDir, @SW_HIDE)
			While FileExists($pdfcreatorpath&'pdfcreator.exe')
				Sleep(7000)
			WEnd
			RunWait(@comspec & ' /c PDFCreator-"'& $versionsetup & '"_setup.exe /verysilent /norestart LOADINF="PDFCreator.inf"', @WorkingDir,@SW_HIDE)
			FileCreateShortcut("C:\Program Files\PDFCreator\PDFCreator.exe",@ProgramsCommonDir & "\PDFCreator.lnk")
			FileWrite($logfile, "Installation finished" & @CRLF)
		Else
			FileWrite($logFile, "Silently uninstall of the " & $versionInstalled & " version of PDFCreator" &@CRLF)
			RunWait(@ComSpec & ' /c "'&$pdfcreatorpath&'unins000.exe" /verysilent', @WorkingDir, @SW_HIDE)
			While FileExists($pdfcreatorpath &'pdfcreator.exe')
				Sleep(7000)
			WEnd
			RunWait(@comspec & ' /c PDFCreator-"'& $versionsetup & '"_setup.exe /verysilent /norestart LOADINF="PDFCreator.inf"', @WorkingDir,@SW_HIDE)
			FileCreateShortcut("C:\Program Files\PDFCreator\PDFCreator.exe",@ProgramsCommonDir & "\PDFCreator.lnk")
			FileWrite($logfile, "Installation finished" & @CRLF)
		EndIf
EndIf
 
;~-- Add the registry key UpdateInterval 0 to forbid automatic update
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\PDFCreator\Program","UpdateInterval","REG_SZ","0")
 
FileWrite($logFile,"End of the installation of PDFCreator")
FileClose($logFile)
 
 
Exit

Contenu du fichier PDFCreator.inf

[Setup]
Lang=french
Dir=C:\Program Files\PDFCreator
NoIcons=1
SetupType=custom
Components=program,ghostscript,comsamples,helpfiles,helpfiles\french,languages,languages\english,languages\french
Tasks=winexplorer
PrinterName=PDFCreator
ServerInstallation=0
Win9XPrinterDriver=0
WinNtPrinterDriver=0
Win2k32bitPrinterDriver=0