[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-wpkg/sources/install-scripts/ -> wpkg-install.sh (source)

   1  #!/bin/bash
   2  #
   3  #### Installation et configuration de wpkg #####
   4  # 
   5  #  Auteur : Jean Le Bail
   6  #
   7  #    avril 2007
   8  #    jean.lebail@etab.ac-caen.fr
   9  #
  10  ## $Id: wpkg-install.sh 8338 2014-12-23 15:52:41Z olikin $ ##
  11  #
  12  # Trucs et astuces.
  13  #    Pour installer le client wpkg sur un poste equipe de sshd, sans attendre le prochain login d'un utilisateur :
  14  #        ssh administrateur@IpDuPoste (authentification par mot de passe, pas par cle, sinon le net use suivant ne marche pas sous XP avec cygwin+openssh; avec copssh c'est ok)
  15  #           net use \\\\se3 PassAdmin /user:se3\\admin
  16  #           cmd /c \\\\se3\\Progs\\install\\installdll\\CPAU.exe -dec -lwp -cwd c:\\ -file \\\\se3\\Progs\\ro\\wpkgInstall.job
  17  #
  18  #        pour relancer l'execution du client wpkg sans avoir a redemarrer le poste :
  19  #             schtasks.exe /Run /Tn wpkg
  20  #          ou jt.exe /LJ $WINDIR\\tasks\\wpkg.job /RJ
  21  
  22  # Mode debug "1" ou "0"
  23  DBG="0"
  24  
  25  # Il faudrait peut-etre definir le repertoire de travail en cours...
  26  # cd /var/tmp
  27  
  28  ### on suppose que l'on est sous debian  ####
  29  WWWPATH="/var/www"
  30  ### version debian  ####
  31  script_charset="UTF8"
  32  
  33  
  34  . /usr/share/se3/includes/config.inc.sh -ml
  35  #. /usr/share/se3/includes/functions.inc.sh
  36  
  37  
  38  echo "Installation de wpkg : installation automatique d'applications sur clients Windows 2000 et XP."
  39  echo ""
  40  if [ ! -d /var/se3/unattended/install ]; then
  41     echo "Le repertoire /var/se3/unattended/install n'existe pas"
  42     echo "Il aurait dû etre cree lors de l'installation d'unattended."
  43     echo "Echec de l'installation."
  44     exit 1
  45  fi
  46  
  47  URLSE3="$urlse3"
  48  SE3="$netbios_name"
  49  if [ -z "$SE3" ] ; then
  50     SE3=`gawk -F' *= *' '/netbios name/ {print $2}' /etc/samba/smb.conf`
  51  fi
  52  if [ -z "$SE3" ] ; then
  53     echo "Nom netbios du serveur samba introuvable."
  54     exit 1
  55  fi
  56  WPKGDIR="/var/se3/unattended/install/wpkg"
  57  WPKGROOT="\\\\$SE3\\install\\wpkg"
  58  
  59  # Compte administrateur local des postes
  60  ADMINSE3="adminse3"
  61  PASSADMINSE3="$xppass"
  62  
  63  if [ ! -d $WPKGDIR ]; then
  64     echo "Erreur le repertoire $WPKGDIR n'existe pas."
  65     echo ""
  66     echo "Echec de l'installation."
  67     exit 1
  68  fi
  69  
  70  
  71  if [ ! -d $WPKGDIR/tools ]; then
  72     echo "Bizarre : le repertoire $WPKGDIR/tools n'existe pas !!!"
  73     mkdir /var/se3/unattended/install/wpkg/tools
  74  fi
  75  if [ ! -d $WPKGDIR/tools ]; then
  76     echo "Erreur : le repertoire $WPKGDIR/tools n'a pas pu etre cree."
  77     exit 1
  78  fi
  79  
  80  # Telechargements pour mettre a jour les postes Windows qui en ont besoin
  81  if [ ! -d /var/se3/unattended/install/packages/windows ] ; then
  82     mkdir -p /var/se3/unattended/install/packages/windows 
  83  fi
  84  cd /var/se3/unattended/install/packages/windows
  85  
  86  # WindowsXP-Windows2000-Script57
  87  if [ ! -e scripten.exe ] ; then
  88     echo "Telechargement de WindowsScript57 (http://download.microsoft.com/download/4/4/d/44de8a9e-630d-4c10-9f17-b9b34d3f6417/scripten.exe)."
  89     if ( ! wget 'http://download.microsoft.com/download/4/4/d/44de8a9e-630d-4c10-9f17-b9b34d3f6417/scripten.exe' ) ; then
  90        echo "Erreur de telechargement de WindowsScript57."
  91        echo "  Vous pourrez le telecharger plus tard a partir de l'adresse :"
  92        echo "  http://www.microsoft.com/downloads/details.aspx?FamilyID=47809025-D896-482E-A0D6-524E7E844D81&displaylang=en"
  93        echo "  et placer scripten.exe"
  94        echo "  dans \\\\$SE3\\install\\packages\\windows\\ ."
  95        if [ -e scripten.exe ] ; then
  96           rm scripten.exe
  97        fi
  98     fi
  99  fi
 100  
 101  # Windows Installer 3.1 (v2)
 102  if [ ! -e WindowsInstaller-KB893803-v2-x86.exe ] ; then
 103     echo "Telechargement de Windows Installer 3.1 (v2) (http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe)."
 104     if ( ! wget 'http://download.microsoft.com/download/1/4/7/147ded26-931c-4daf-9095-ec7baf996f46/WindowsInstaller-KB893803-v2-x86.exe' ) ; then
 105        echo "Erreur de telechargement de Windows Installer 3.1 (v2)."
 106        echo "  Vous pourrez le telecharger plus tard et placer WindowsInstaller-KB893803-v2-x86.exe"
 107        echo "  dans \\\\$SE3\\install\\packages\\windows\\ ."
 108        if [ -e WindowsInstaller-KB893803-v2-x86.exe ] ; then
 109           rm WindowsInstaller-KB893803-v2-x86.exe
 110        fi
 111     fi
 112  fi
 113  
 114  # MSXML (Microsoft Core XML Services) 6.0
 115  if [ ! -e msxml6.msi ] ; then
 116     echo "Telechargement de MSXML (Microsoft Core XML Services) 6.0 (http://download.microsoft.com/download/8/a/4/8a4bae5b-95e9-4179-a838-1e75cf330a48/msxml6.msi)."
 117     if ( ! wget 'http://download.microsoft.com/download/8/a/4/8a4bae5b-95e9-4179-a838-1e75cf330a48/msxml6.msi' ) ; then
 118        echo "Erreur de telechargement de MSXML (Microsoft Core XML Services) 6.0."
 119        echo "  Vous pourrez le telecharger plus tard et placer msxml6.msi"
 120        echo "  dans \\\\$SE3\\install\\packages\\windows\\ ."
 121        if [ -e msxml6.msi ] ; then
 122           rm msxml6.msi
 123        fi
 124     fi
 125  fi
 126  
 127  #cd -
 128  
 129  cd $WPKGDIR/tools
 130  
 131  # jt pour definir une tache en ligne de commande dans le planificateur de tache
 132  if [ ! -e jt.exe ] ; then
 133     if [ ! -e jt.zip ] ; then
 134        echo "Telechargement de l'utilitaire jt.exe (http://mvps.org/winhelp2002/jt.zip)."
 135        if ( ! wget --tries=3 "http://mvps.org/winhelp2002/jt.zip" ) ; then
 136           if [ -e jt.zip ] ; then
 137              rm jt.zip
 138           fi
 139           echo "Telechargement de l'utilitaire jt.exe : nouvel essai avec l'url 'ftp://ftp.microsoft.com/reskit/win2000/jt.zip'."
 140           if ( ! wget --tries=3 "ftp://ftp.microsoft.com/reskit/win2000/jt.zip" ) ; then
 141              echo "Erreur de telechargement de jt.zip."
 142           fi
 143        fi
 144     fi
 145     if [ -e jt.zip ] ; then 
 146        if ( md5sum jt.zip | grep '^5a11460945cab3ef526b038d37492e58 ' >/dev/null ) ; then
 147           if ( ! unzip -o jt.zip ) ; then
 148              echo "Erreur unzip -o jt.zip"
 149           fi
 150        else
 151           echo "Erreur md5sum : "
 152           md5sum jt.zip
 153           rm jt.zip
 154        fi
 155     fi
 156     if [ -e jt.exe ] ; then
 157        if ( md5sum jt.exe | grep '^3104f01eb01ce8b482bf895db60d7e8e ' >/dev/null ) ; then
 158           echo "L'utilitaire jt.exe est maintenant disponible.";
 159        else
 160           echo "Erreur md5sum : "
 161           md5sum jt.exe
 162           rm jt.exe
 163        fi
 164        # if [ -e jt.zip ] ; then rm jt.zip; fi
 165     else
 166        echo "L'utilitaire jt.exe n'est pas disponible ! Ressayez plus tard ...";
 167        echo "jt.exe pourra, par la suite, etre depose dans $WPKGROOT\\tools par l'admin."
 168     fi
 169  else
 170     echo "L'utilitaire jt.exe etait deja disponible."
 171  fi
 172  
 173  #  Quelques utilitaires bien pratiques pour gerer les Windows
 174  
 175  RebootSpecial=""
 176  # PSTools pour psshutdown.exe pslist.exe ...
 177  # Depuis que sysinternals ete rachete par Microsoft, il faut ajouter /accepteula aux options des commandes :(
 178  if [ ! -e psshutdown.exe ] || [ ! -e pslist.exe ] ; then
 179     if [ ! -e PSTools.zip ]; then
 180        echo "Telechargement des PSTools (http://live.sysinternals.com/Files/PSTools.zip)."
 181        if ( ! wget "http://live.sysinternals.com/Files/PSTools.zip" ) ; then
 182          echo "Erreur de telechargement."
 183          if [ -e PSTools.zip ]; then
 184            rm PSTools.zip
 185          fi
 186        fi
 187     fi
 188     if [ -e PSTools.zip ]; then
 189        if ( ! unzip -o PSTools.zip ) ; then
 190           echo "Erreur unzip -o PSTools.zip"
 191        fi
 192     fi
 193     if [ -e psshutdown.exe ] && [ -e pslist.exe ] ; then
 194        echo "Les pstools sont maintenant disponibles.";
 195  #       RebootSpecial="/rebootcmd:special"
 196  #       if [ -e PSTools.zip ]; then
 197  #          if ( ! rm PSTools.zip ) ; then
 198  #             echo "Erreur rm PSTools.zip"
 199  #          fi
 200  #       fi
 201     else
 202        echo "Les PSTools ne sont pas disponibles ! Ressayez plus tard ...";
 203     fi
 204  else
 205     echo "Les PSTools etaient deja disponibles."
 206  #    RebootSpecial="/rebootcmd:special"
 207  fi   
 208  
 209  # SetAcl (deja dans le paquet)
 210  # http://ovh.dl.sourceforge.net/sourceforge/setacl/setacl-cmdline-2.0.2.0-binary.zip
 211  if [ ! -e SetACL.exe ]; then
 212     if [ ! -e setacl-cmdline-2.0.2.0-binary.zip ]; then
 213        echo "Telechargement de l'utilitaire SetACL (http://ovh.dl.sourceforge.net/sourceforge/setacl/setacl-cmdline-2.0.2.0-binary.zip)."
 214        if ( ! wget --tries=3 "http://ovh.dl.sourceforge.net/sourceforge/setacl/setacl-cmdline-2.0.2.0-binary.zip" ) ; then
 215           echo "Erreur de telechargement de setacl-cmdline-2.0.2.0-binary.zip."
 216           if [ -e setacl-cmdline-2.0.2.0-binary.zip ] ; then 
 217              rm setacl-cmdline-2.0.2.0-binary.zip
 218           fi
 219        fi
 220     fi
 221     if [ -e setacl-cmdline-2.0.2.0-binary.zip ]; then
 222        if ( ! unzip -o setacl-cmdline-2.0.2.0-binary.zip ) ; then
 223           echo "Erreur unzip -o setacl-cmdline-2.0.2.0-binary.zip"
 224           if [ -e SetACL.exe ] ; then 
 225              rm SetACL.exe
 226           fi
 227        fi
 228     fi
 229     if [ -e SetACL.exe ]; then
 230        if ( md5sum SetACL.exe | grep '^19bb0722fdbeb638df3b66b1ac1552f1 ' >/dev/null ) ; then
 231           echo "L'utilitaire SetACL.exe est maintenant disponible.";
 232        else
 233           echo "Erreur md5sum : "
 234           md5sum SetACL.exe
 235           rm SetACL.exe
 236        fi
 237        echo "L'utilitaire SetACL.exe est maintenant disponible.";
 238        if [ -e setacl-cmdline-2.0.2.0-binary.zip ]; then
 239           if ( ! rm setacl-cmdline-2.0.2.0-binary.zip ) ; then
 240              echo "Erreur rm setacl-cmdline-2.0.2.0-binary.zip"
 241           fi
 242        fi
 243     else
 244        echo "L'utilitaire SetACL.exe n'est pas disponible ! Ressayez plus tard ...";
 245        echo "SetACL.exe pourra, par la suite, etre depose dans $WPKGROOT\\tools par l'admin."
 246     fi
 247  else
 248     echo "L'utilitaire SetACL.exe etait deja disponible."
 249  fi   
 250  
 251  # wget.exe (deja dans le paquet)
 252  if [ ! -e wget.exe ] ; then
 253     echo "Telechargement de l'utilitaire wget.exe (http://users.ugent.be/~bpuype/cgi-bin/fetch.pl?dl=wget/wget.exe)."
 254     if ( ! wget --tries=3 "http://users.ugent.be/~bpuype/cgi-bin/fetch.pl?dl=wget/wget.exe" ) ; then 
 255        echo "Erreur de telechargement de wget.exe."
 256        if [ -e wget.exe ] ; then 
 257           rm wget.exe
 258        fi
 259     fi
 260     if [ -e wget.exe ] ; then
 261        # Test md5sum de wget.exe ;-)
 262        if ( md5sum wget.exe | grep '^dbe287eb8d58e6322e9fb67110ed7122 ' >/dev/null ) ; then
 263           echo "L'utilitaire wget.exe est maintenant disponible.";
 264        else
 265           echo "Erreur md5sum : "
 266           md5sum wget.exe
 267           rm wget.exe
 268        fi
 269     else
 270        echo "L'utilitaire wget.exe n'est pas disponible ! Ressayez plus tard ..."
 271        echo "wget.exe pourra, par la suite, etre depose dans $WPKGROOT\\tools par l'admin."
 272     fi
 273  else
 274     echo "L'utilitaire wget.exe etait deja disponible."
 275  fi
 276  
 277  # md5sum.exe (deja dans le paquet)
 278  if [ ! -e md5sum.exe ] ; then
 279     if [ ! -e md5sum-w32.zip ] ; then 
 280        echo "Telechargement de l'utilitaire md5sum.exe (http://ftp.fr.debian.org/debian/tools/md5sum-w32.zip)."
 281        if ( ! wget --tries=3 "http://ftp.fr.debian.org/debian/tools/md5sum-w32.zip" ) ; then 
 282           echo "Erreur de telechargement de md5sum-w32.zip."
 283           if [ -e md5sum-w32.zip ] ; then 
 284              rm md5sum-w32.zip
 285           fi
 286        fi
 287     fi
 288     if [ -e md5sum-w32.zip ] ; then 
 289        if ( ! unzip -o md5sum-w32.zip ) ; then
 290           echo "Erreur unzip -o md5sum-w32.zip"
 291           if [ -e md5sum.exe ] ; then 
 292              rm md5sum.exe
 293           fi
 294        fi
 295     fi
 296     if [ -e md5sum.exe ] ; then
 297        # Test md5sum de md5sum.exe ;-)
 298        if ( md5sum md5sum.exe | grep '^623864dab703a0ceca76e8d70de60c0c ' >/dev/null ) ; then
 299           echo "L'utilitaire md5sum.exe est maintenant disponible.";
 300        else
 301           echo "Erreur md5sum : "
 302           md5sum md5sum.exe
 303           rm md5sum.exe
 304        fi
 305     else
 306        echo "L'utilitaire md5sum.exe n'est pas disponible ! Ressayez plus tard ..."
 307        echo "md5sum.exe pourra, par la suite, etre depose dans $WPKGROOT\\tools par l'admin."
 308     fi
 309  else
 310     echo "L'utilitaire md5sum.exe etait deja disponible."
 311  fi
 312  
 313  cd -
 314  
 315  CPAU="\\\\$SE3\\netlogon\\CPAU.exe"
 316  
 317  # priorite d'execution de wpkg sur les clients
 318  # PRIORITY=/LOW|/BELOWNORMAL|/NORMAL|/ABOVENORMAL|/HIGH|/REALTIME
 319  PRIORITY=/BELOWNORMAL
 320  
 321  CONFIGBAT="/var/se3/Progs/install/wpkg-config.bat"
 322  
 323  # Suppression de l'ancien script execute avant wpkg-se3.js
 324  # Maintenant les options du client sont definies dans l'interface.
 325  if [ -e $WPKGDIR/wpkgAvant.bat ]; then
 326     rm $WPKGDIR/wpkgAvant.bat
 327     echo "Ancien script $WPKGDIR/wpkgAvant.bat supprime (il n'est plus utilise dans cette version)."
 328  fi
 329  
 330  # Script de demarrage des anciens clients wpkg 
 331  # C'est maintenant wpkg-client.vbs (client execute au boot du poste) qui lance directement wpkg-se3.js
 332  #--------Debut wpkg-se3.bat-----------#
 333  cat - > $WPKGDIR/wpkg-se3.bat <<WPKGSE3BAT
 334  :: Ce fichier assure la mise a jour des anciens clients
 335  :: Ensuite il n'est plus utilise
 336  :: ## $Id: wpkg-install.sh 8338 2014-12-23 15:52:41Z olikin $ ##
 337  @Echo OFF
 338  Set Silent=1
 339  Echo %date% %time% Mise a jour du client wpkg.
 340  :: Lancement de wpkg-repair.bat a l'aide du job wpkg-repair.job
 341  If Not Exist \\\\$SE3\\Progs\\ro\\wpkg-repair.job Goto NoWpkgRepairJob
 342  Echo Lancement du job CPAU wpkg-repair 
 343  \\\\$SE3\\netlogon\\CPAU.exe -dec -lwp -cwd %SystemDrive%\\ -file \\\\$SE3\\Progs\\ro\\wpkg-repair.job 2>NUL >NUL
 344  If "%ErrorLevel%"=="1907" Goto ErrAdminse3Expire
 345  If "%ErrorLevel%"=="1326" Goto ErrAdminse3BadPassword
 346  If Not "%ErrorLevel%"=="0" Echo Erreur %ErrorLevel% lors de l'execution de 'CPAU.exe -dec -lwp -cwd %SystemDrive%\\ -file \\\\$SE3\\Progs\\ro\\wpkg-repair.job'
 347  
 348  echo.
 349  echo Le rapport de la mise a jour du client est disponible ici :
 350  echo ^</pre^>
 351  echo  ^<a href="$URLSE3/wpkg/index.php?logfile=%COMPUTERNAME%.maj"^>$URLSE3/wpkg/index.php?logfile=%COMPUTERNAME%.maj^</a^>
 352  echo ^<pre^>
 353  
 354  Goto Done
 355  
 356  :NoWpkgRepairJob
 357  echo Erreur : Fichier \\\\$SE3\\Progs\\install\\wpkg-repair.job absent !
 358  echo   En tant qu'admin, relancer :
 359  echo   \\\\$SE3\\Progs\\install\\wpkg-config.bat
 360  Goto Done
 361  
 362  :ErrAdminse3BadPassword
 363  echo Erreur : Le mot de passe d'adminse3 sur %COMPUTERNAME% n'est pas correct !
 364  echo   Revoir la configuration du compte 'adminse3' sur %COMPUTERNAME%.
 365  Goto Done
 366  
 367  :ErrAdminse3Expire
 368  echo Erreur : Le compte adminse3 a un mot de passe qui expire.
 369  echo   Revoir la configuration du compte 'adminse3' sur %COMPUTERNAME%.
 370  Goto Done
 371  
 372  :Done
 373  echo Fin de wpkg-se3.bat
 374  WPKGSE3BAT
 375  #--------Fin wpkg-se3.bat-----------#
 376  recode $script_charset..CP850 $WPKGDIR/wpkg-se3.bat
 377  todos $WPKGDIR/wpkg-se3.bat
 378  chmod 755 $WPKGDIR/wpkg-se3.bat
 379  echo "Script $WPKGDIR/wpkg-se3.bat cree."
 380  
 381  # Suppression de l'ancien script execute apres wpkg-se3.js
 382  if [ -e $WPKGDIR/wpkgApres.bat ]; then
 383     rm $WPKGDIR/wpkgApres.bat
 384     echo "Ancien script $WPKGDIR/wpkgApres.bat supprime (il n'est plus utilise dans cette version)."
 385  fi
 386  
 387  # Script d'installation de la tache planifiee sur le poste
 388  # Est execute sous local\adminse3 avec CPAU l'authentification au serveur etant deja faite
 389  #--------Debut wpkg-install.bat-----------#
 390  cat - > $WPKGDIR/wpkg-install.bat <<PREINSTBAT
 391  :: Script d'installation de wpkg sur le client.
 392  :: S'execute avec le compte local $ADMINSE3 grace a CPAU, 
 393  ::    l'authentification sur le serveur est deja faite.
 394  ::
 395  :: ## $Id: wpkg-install.sh 8338 2014-12-23 15:52:41Z olikin $ ##
 396  
 397  If "%SILENT%"=="1" @Echo OFF
 398  Set WPKGROOT=$WPKGROOT
 399  
 400  :: Pour executer wpkg aussitot apres l'installation du client sur les postes
 401  If "%NoRunWpkgJS%"=="" Set NoRunWpkgJS=0
 402  If Exist "%SystemRoot%\\netinst\\nowpkg.txt" Set NoRunWpkgJS=1
 403  If "%NoRunWpkgJS%"=="1" Echo L'installation des applications ne sera effectuee qu'au prochain boot.
 404  
 405  :: Pour supprimer la temporisation avant execution de wpkg-se3.js
 406  Rem Echo NoTempo >"%SystemDrive%\\netinst\\wpkg-notempo.txt"
 407  
 408  SETLOCAL ENABLEEXTENSIONS
 409  SETLOCAL ENABLEDELAYEDEXPANSION
 410  
 411  @If "$DBG"=="1" Echo Debut wpkg-install.bat   Pause 2 sec ...
 412  @If "$DBG"=="1" ping -n 3 127.0.0.1 >NUL
 413  
 414  @If "%TaskUser%"=="" Exit 5
 415  @If "%TaskPass%"=="" Exit 5
 416  
 417  echo %date% %time% Debut de l'execution de wpkg-install.bat sur %COMPUTERNAME% 
 418  echo. 
 419  
 420  set Log=%Windir%\\wpkg.log
 421  set NbErreur=0
 422  
 423  :: Copie sur le poste local des fichiers necessaires
 424  Set REGEXE=%WinDir%\\system32\\reg.exe
 425  If Exist "%REGEXE%" Goto REGEXEFOUND
 426  If Exist \\\\$SE3\\install\\wpkg\\tools\\reg.exe copy /Y /B /V \\\\$SE3\\install\\wpkg\\tools\\reg.exe "%REGEXE%"
 427  If Exist "%REGEXE%" Goto REGEXEFOUND
 428  echo L'utilitaire reg.exe est introuvable.
 429  echo A partir d'un WinXP, recopiez %WinDir%\\system32\\reg.exe dans \\\\$SE3\\install\\wpkg\\tools\\ 
 430  Goto WindowsScriptHost56
 431  :REGEXEFOUND
 432  
 433  
 434  :WindowsScriptHost56
 435  echo Version de WindowsScriptHost
 436  cscript.exe //NoLogo %WPKGROOT%\\tools\\fileversion.vbs %WinDir%\\system32\\jscript.dll GE 5.6.0.8831
 437  If "%ErrorLevel%"=="0" Goto WININSTALLER
 438  
 439  :: L'install silentieuse ne marche pas sous win2k :(
 440  echo WindowsScriptHost  n'est pas a jour !
 441  echo   installez-le sur le poste a partir de :
 442  echo   http://www.microsoft.com/downloads/details.aspx?FamilyID=c717d943-7e4b-4622-86eb-95a22b832caa&DisplayLang=fr
 443  Goto WININSTALLER
 444  
 445  echo Mise a jour WindowsScriptHost 5.7 ou 5.6
 446  If Exist %WPKGROOT%\\..\\packages\\windows\\scripten.exe Goto SETUP57
 447  If Exist %WPKGROOT%\\..\\packages\\windows\\WindowsXP-Windows2000-Script56-KB917344-x86-fra.exe Goto SETUP56
 448  echo Les fichiers "scripten.exe " et "WindowsXP-Windows2000-Script56-KB917344-x86-fra.exe" sont absents. 
 449  echo   Telechargez scripten.exe depuis l'adresse 
 450  echo   http://www.microsoft.com/downloads/details.aspx?FamilyID=47809025-D896-482E-A0D6-524E7E844D81&displaylang=en
 451  echo   et placez ce fichier dans \\\\$SE3\\install\\packages\\windows\\ 
 452  Set /A NbErreur=1+%NbErreur%
 453  Goto WININSTALLER
 454  
 455  :SETUP56
 456  :: Installation silentieuse de scriptfr.inf
 457  %WPKGROOT%\\..\\packages\\windows\\WindowsXP-Windows2000-Script56-KB917344-x86-fra.exe /T:%SystemDrive%\\tmp /C /Q
 458  If "%Errorlevel%"=="0" start /wait %WinDir%\\System32\\rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 %SystemDrive%\\tmp\\scriptfr.inf
 459  Set Erreur=%ErrorLevel%
 460  If Not "%Erreur%"=="0" If Not "%Erreur%"=="3010" echo Err %Errorlevel% : Mise a jour WindowsScriptHost 
 461  If Not "%Erreur%"=="0" Set /A NbErreur=1+%NbErreur%
 462  If "%Erreur%"=="3010" echo WindowsScriptHost56 sera operationnel apres un redemarrage. 
 463  If "%Erreur%"=="0" echo Mise a jour WindowsScriptHost : OK 
 464  If Exist "%SystemDrive%\\tmp" RmDir /S /Q "%SystemDrive%\\tmp"
 465  Goto WININSTALLER
 466  
 467  :SETUP57
 468  :: Installation silentieuse de scriptfr.inf
 469  %WPKGROOT%\\..\\packages\\windows\\scripten.exe /quiet /passive /norestart /overwriteoem
 470  ::If "%Errorlevel%"=="0" start /wait %WinDir%\\System32\\rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 %SystemDrive%\\tmp\\scriptfr.inf
 471  Set Erreur=%ErrorLevel%
 472  If Not "%Erreur%"=="0" If Not "%Erreur%"=="3010" echo Err %Errorlevel% : Mise a jour WindowsScriptHost 
 473  If Not "%Erreur%"=="0" Set /A NbErreur=1+%NbErreur%
 474  If "%Erreur%"=="3010" echo WindowsScriptHost57 sera operationnel apres un redemarrage. 
 475  If "%Erreur%"=="0" echo Mise a jour WindowsScriptHost : OK 
 476  If Exist "%SystemDrive%\\tmp" RmDir /S /Q "%SystemDrive%\\tmp"
 477  
 478  :WININSTALLER
 479  echo Version de Windows Installer
 480  cscript.exe //NoLogo %WPKGROOT%\\tools\\fileversion.vbs %WinDir%\\system32\\msiexec.exe GE 3.1.4000.1823
 481  If "%ErrorLevel%"=="0" Goto MSXML
 482  echo Mise a jour Windows Installer 3.1 (v2) 
 483  If Exist %WPKGROOT%\\..\\packages\\windows\\WindowsInstaller-KB893803-v2-x86.exe Goto SETUPMSI
 484  echo Le fichier "%WPKGROOT%\\..\\packages\\windows\\WindowsInstaller-KB893803-v2-x86.exe" est absent. 
 485  echo   Telechargez-le depuis l'adresse 
 486  echo   http://www.microsoft.com/downloads/details.aspx?FamilyID=889482fc-5f56-4a38-b838-de776fd4138c&DisplayLang=fr 
 487  echo   et placez ce fichier dans \\\\$SE3\\install\\packages\\windows\\ 
 488  Set /A NbErreur=1+%NbErreur%
 489  Goto Done
 490  :SETUPMSI
 491  xcopy /Y /C /I /H /R %WPKGROOT%\\..\\packages\\windows\\WindowsInstaller-KB893803-v2-x86.exe "%TMP%\\"
 492  start /wait /D "%TMP%" WindowsInstaller-KB893803-v2-x86.exe /passive /norestart /nobackup
 493  Set Erreur=%ErrorLevel%
 494  If Not "%Erreur%"=="0" echo Err %Erreur% : Mise a jour Windows Installer 
 495  If "%Erreur%"=="0" echo Mise a jour Windows Installer : OK 
 496  If Not "%Erreur%"=="0" Set /A NbErreur=1+%NbErreur%
 497  Del /F /Q "%TMP%\\WindowsInstaller-KB893803-v2-x86.exe"
 498  :: On continue meme en cas d'erreur
 499  
 500  :MSXML
 501  echo Version de MSXML (Microsoft Core XML Services)
 502  cscript.exe //NoLogo %WPKGROOT%\\tools\\fileversion.vbs %WinDir%\\system32\\Msxml6.dll GE 6.0.3883.0
 503  If "%ErrorLevel%"=="0" Goto SETTASK
 504  echo Installation de MSXML (Microsoft Core XML Services) 6.0 
 505  If Exist %WPKGROOT%\\..\\packages\\windows\\msxml6.msi Goto SETUPMSXML
 506  echo Le fichier "%WPKGROOT%\\..\\packages\\windows\\msxml6.msi" est absent. 
 507  echo   Telechargez-le depuis l'adresse 
 508  echo   http://www.microsoft.com/downloads/details.aspx?FamilyID=993c0bcf-3bcf-4009-be21-27e85e1857b1&DisplayLang=fr 
 509  echo   et placez ce fichier dans \\\\$SE3\\install\\packages\\windows\\ 
 510  Set /A NbErreur=1+%NbErreur%
 511  Goto Done
 512  :SETUPMSXML
 513  xcopy /Y /C /I /H /R %WPKGROOT%\\..\\packages\\windows\\msxml6.msi "%TMP%\\"
 514  start /wait /D "%TMP%" msiexec /quiet /passive /i msxml6.msi
 515  If Not "%ErrorLevel%"=="0" echo Err %Errorlevel% : Mise a jour MSXML 
 516  If "%ErrorLevel%"=="0" echo Mise a jour MSXML : OK 
 517  If "%Erreur%"=="3010" echo MSXML sera operationnel apres un redemarrage. 
 518  If Not "%ErrorLevel%"=="0" Set /A NbErreur=1+%NbErreur%
 519  
 520  :SETTASK
 521  :: Recopie en local des utilitaires de gestion de taches planifiees
 522  If Not Exist %WinDir%\\jt.exe If Exist %WPKGROOT%\\tools\\jt.exe copy /Y /B %WPKGROOT%\\tools\\jt.exe %WinDir%\\jt.exe
 523  If Not Exist %WinDir%\\system32\\schtasks.exe If Exist %WPKGROOT%\\tools\\schtasks2k.exe copy /Y /B %WPKGROOT%\\tools\\schtasks2k.exe %WinDir%\\schtasks2k.exe
 524  
 525  If Not Exist %WinDir%\\jt.exe Goto TestSCHTASKS
 526  :: Installation de la tache planifiee avec jt.exe
 527  Set JT=%WinDir%\\jt.exe
 528  echo Suppression de l'ancienne tache wpkg
 529  %JT% /SD wpkg.job
 530  If Exist %Windir%\\Tasks\\wpkg.job del /F /Q %Windir%\\Tasks\\wpkg.job
 531  
 532  :: Creation de la tache planifie avec jt.exe (Echo OFF pour cacher TaskPass)
 533  @Set OptJT=/SC %TaskUser% %TaskPass% 
 534  
 535  ::@Set OptJT=%OptJT% /SJ ApplicationName="%Windir%\\system32\\cscript.exe" 
 536  ::@Set OptJT=%OptJT% Parameters="%Windir%\\wpkg-client.vbs"
 537  @Set OptJT=%OptJT% /SJ ApplicationName="%ComSpec%" 
 538  @Set OptJT=%OptJT% Parameters="/C start $PRIORITY %Windir%\\system32\\cscript.exe //B %Windir%\\wpkg-client.vbs"
 539  
 540  @Set OptJT=%OptJT% WorkingDirectory="%WinDir%" 
 541  @Set OptJT=%OptJT% Comment="Client wpkg - Installation automatique d'applications" 
 542  @Set OptJT=%OptJT% Creator=%USERNAME% MaxRunTime=9999999999 DontStartIfOnBatteries=0 
 543  @Set OptJT=%OptJT% KillIfGoingOnBatteries=0 RunOnlyIfLoggedOn=0 DeleteWhenDone=0 
 544  @Set OptJT=%OptJT% /CTJ Type=ATSTARTUP StartDate=TODAY StartTime=NOW Disabled=0 
 545  @Set OptJT=%OptJT% /SAJ wpkg.job
 546  
 547  @If "$DBG"=="1" Echo %JT% %OptJT%      Pause 5 sec ...
 548  @If "$DBG"=="1" ping -n 6 127.0.0.1 >NUL
 549  
 550  echo Creation de la tache wpkg. 
 551  @%JT% %OptJT%
 552  If Not ErrorLevel 1 echo "Creation de la tache planifiee : OK" 
 553  If ErrorLevel 1 echo "Erreur de creation de la tache planifiee :" 
 554  @If ErrorLevel 1 %Windir%\\jt.exe %OptJT% 
 555  Set OptJT=
 556  Set TaskPass=
 557  Set TaskUser=
 558  Goto CopyWpkgClient
 559  
 560  TestSCHTASKS
 561  :: Si schtasks.exe local est dispo on l'utilise
 562  Set SCHTASKS=%WinDir%\\system32\\schtasks.exe
 563  If Exist "%SCHTASKS%" Goto CreateTask
 564  Set SCHTASKS=%WinDir%\\schtasks2k.exe
 565  If Exist "%SCHTASKS%" Goto CreateTask
 566  Goto NoSchTasks
 567  
 568  :CreateTask
 569  :: Suppression eventuelle d'une ancienne tache planifiee avec schtasks2k.exe
 570  %SCHTASKS% | find /I "wpkg" >NUL
 571  If ErrorLevel 1 Goto TaskDelOk
 572  echo Suppression de l'ancienne tache wpkg. avec %SCHTASKS% 
 573  %SCHTASKS% /Delete /TN wpkg /F 
 574  If ErrorLevel 1 %SCHTASKS% /Delete /TN wpkg /F 
 575  If Exist %Windir%\\Tasks\\wpkg.job del /F /Q %Windir%\\Tasks\\wpkg.job
 576  :TaskDelOk
 577  
 578  :: Creation de la tache planifie avec %SCHTASKS%
 579  @Set Opt=/create /RU %TaskUser% /RP %TaskPass% 
 580  @Set Opt=%Opt% /SC ONSTART /TN wpkg /TR "%Windir%\\system32\\cscript.exe //B %Windir%\\wpkg-client.vbs"
 581  
 582  @If "$DBG"=="1" Echo %SCHTASKS% %Opt%  Pause 5 sec ...
 583  @If "$DBG"=="1" ping -n 6 127.0.0.1 >NUL
 584  
 585  echo Creation de la tache wpkg avec %SCHTASKS% 
 586  @%SCHTASKS% %Opt%
 587  If ErrorLevel 1 echo Erreur %ErrorLevel% lors de la creation de la tache planifiee :
 588  :: @If ErrorLevel 1 %SCHTASKS% %Opt% 
 589  Set Opt=
 590  Set TaskPass=
 591  Set TaskUser=
 592  
 593  :CopyWpkgClient
 594  :: Suppression de %WinDir%\\wpkg.job resultant de l'install ancienne version
 595  If Exist %WinDir%\\wpkg.job Del /F /Q %WinDir%\\wpkg.job 
 596  If Exist %WinDir%\\wpkg-client.vbs echo Suppression de l'ancien client %WinDir%\\wpkg-client.vbs.
 597  If Exist %WinDir%\\wpkg-client.vbs Del /F /Q %WinDir%\\wpkg-client.vbs 
 598  :: Recopie des fichiers 
 599  If Exist %WPKGROOT%\\wpkg-client.vbs copy /Y /V /B %WPKGROOT%\\wpkg-client.vbs %WinDir%\\wpkg-client.vbs
 600  If Exist %WinDir%\\wpkg-client.vbs Goto RunClient
 601  echo Erreur : copy /Y /V /B %WPKGROOT%\\wpkg-client.vbs %WinDir%\\wpkg-client.vbs
 602  echo Erreur : copy /Y /V /B %WPKGROOT%\\wpkg-client.vbs %WinDir%\\wpkg-client.vbs 
 603  Exit /B 7
 604  
 605  :RunClient
 606  echo Recopie du client depuis le serveur : OK 
 607  
 608  If Not "%NbErreur%"=="0" Set NoRunWpkgJS=1
 609  
 610  Set APPENDLOGOPTION=
 611  If "%APPENDLOG%"=="1" Set APPENDLOGOPTION=/AppendLog
 612  If Not "%NoRunWpkgJS%"=="1" echo Lancement du client (APPENDLOG=%APPENDLOG%) ...
 613  If Not "%NoRunWpkgJS%"=="1" start /wait $PRIORITY %WinDir%\\system32\\cscript.exe //NoLogo //B %WinDir%\\wpkg-client.vbs /NoTempo %APPENDLOGOPTION%
 614  If "%NoRunWpkgJS%"=="1" echo %date% %time% - Le client est en place. Il sera lance au prochain boot. 
 615  @If "$DBG"=="1" Echo Apres 'start /wait $PRIORITY %WinDir%\\system32\\cscript.exe //NoLogo //B %WinDir%\\wpkg-client.vbs /NoTempo %APPENDLOGOPTION%'    Pause 2 sec ...
 616  @If "$DBG"=="1" ping -n 3 127.0.0.1 >NUL
 617  If Exist "%SystemDrive%\\netinst\\wpkg-notempo.txt" del /F /Q "%SystemDrive%\\netinst\\wpkg-notempo.txt"
 618  If Exist "%SystemDrive%\\netinst\\nowpkg.txt" del /F /Q "%SystemDrive%\\netinst\\nowpkg.txt"
 619  
 620  Goto WpkgInstallDone
 621  
 622  :NoSchTasks
 623  :: Pas d'utilitaire disponible pour creer la tache planifiee
 624  echo Erreur : ni schtasks2k.exe, ni jt.exe 
 625  echo          ne sont disponibles dans %WPKGROOT%\\tools\\ 
 626  echo          
 627  echo          Revoir l'installation de wpkg.
 628  echo. 
 629  :WpkgInstallDone
 630  
 631  @If "$DBG"=="1" Echo Sortie de wpkg-install.bat   Pause 5 sec ...
 632  @If "$DBG"=="1" ping -n 6 127.0.0.1 >NUL
 633  :Done
 634  echo %date% %time% Fin de wpkg-install.bat. 
 635  PREINSTBAT
 636  #--------Fin wpkg-install.bat-----------#
 637  recode $script_charset..CP850 $WPKGDIR/wpkg-install.bat
 638  todos $WPKGDIR/wpkg-install.bat
 639  echo "Script $WPKGDIR/wpkg-install.bat cree."
 640  
 641  # Chemin du job d'installation de wpkg sur un poste pour un utilisateur lambda
 642  INSTTASKJOB="\\\\$SE3\\Progs\\ro\\wpkgInstall.job"
 643  # Chemin du job d'execution de wpkg sur un poste pour un utilisateur lambda
 644  RUNWPKGJOB="\\\\$SE3\\Progs\\ro\\wpkgRun.job"
 645  # Commande a placer dans le script de login des utilisateurs
 646  CMDINSTALL="@if \"%%OS%%\"==\"Windows_NT\" if not exist \"%%WinDir%%\\wpkg-client.vbs\" $CPAU -dec -lwp -hide -cwd %%SystemDrive%%\\ -file $INSTTASKJOB 2^>NUL ^>NUL"
 647  FINDCMD="@if \"\"%%OS%%\"\"==\"\"Windows_NT\"\" if not exist \"\"%%WinDir%%\\wpkg-client.vbs\"\" $CPAU -dec -lwp -hide -cwd %%SystemDrive%%\\ -file $INSTTASKJOB 2>NUL >NUL"
 648  # Chemin du script de login
 649  LogonBat="\\\\$SE3\\admhomes\\templates\\base\\logon.bat"
 650  # Commande executee par adminse3 pour installer wpkg sur le poste
 651  TASK="(net use \\\\$SE3||(exit 8))&&(Set APPENDLOG=1&&Set TaskUser=$ADMINSE3&&Set TaskPass=$PASSADMINSE3&&call $WPKGROOT\\wpkg-install.bat&net use * /delete /y)"
 652  # Commande executee par adminse3 pour executer wpkg sur le poste
 653  TASKRUNWPKG='{%%{ComSpec}%%} /C cscript {%%{Windir}%%}\\wpkg-client.vbs /debug /notempo /cpuLoad 80&pause'
 654  
 655  # Script de diagnostic et reparation d'un client wpkg recalcitrant
 656  # par exemple a cause d' un compt adminse3 defaillant
 657  #--------Debut wpkg-diag.bat-----------#
 658  cat - > /var/se3/Progs/install/wpkg-diag.bat <<WPKGDIAG
 659  :: Script de diagnostic/reparation d'un client wpkg qui ne demarre plus.
 660  :: Verifie le compte adminse3 puis lance wpkg-repair.bat sous adminse3.
 661  :: ## $Id: wpkg-install.sh 8338 2014-12-23 15:52:41Z olikin $ ##
 662  @echo OFF
 663  
 664  :: NoRunWpkgJS=1  pour ne pas lancer wpkg avec ce script.
 665  :: A priori, il est deja en cours d'execution.
 666  :: Il sera lance au prochain boot du poste.
 667  Set NoRunWpkgJS=1
 668  
 669  :: Initialisation des variables
 670  ::   Nom du serveur SE3 utilise lors de l'install de wpkg
 671  Set Se3=$SE3
 672  ::   Fichier de log du dignostic
 673  If Not Exist \\\\%Se3%\\Progs\\rw\\wpkg mkdir \\\\%Se3%\\Progs\\rw\\wpkg
 674  Set LOG=\\\\%Se3%\\Progs\\rw\\wpkg\\%COMPUTERNAME%.log
 675  echo Diagnostic de l'installation du client Wpkg sur '%COMPUTERNAME%' >%LOG%
 676  echo. 
 677  echo %date% %time% Debut du diagnostic. >>%LOG%
 678  echo. >>%LOG%
 679  
 680  :: Test du compte adminse3
 681  ::   Le compte adminse3 existe-t-il ?
 682  net user adminse3 >NUL
 683  If ErrorLevel 1 Goto ErrNoAdminse3
 684  echo Le compte adminse3 existe. >>%LOG%
 685  net user adminse3 | find /I "Compte" | find /I "actif" | find /I "oui" >>%LOG%
 686  If ErrorLevel 1 Goto ErrAdminse3NotActive
 687  net user adminse3 | find /I "Le mot de passe expire" | find /I "jamais" >>%LOG%
 688  If ErrorLevel 1 Goto ErrAdminse3Expire
 689  net user adminse3 | find /I "groupes locaux" | find /I "Administrateurs" >>%LOG%
 690  If ErrorLevel 1 Goto ErrAdminse3NotAdministrateur
 691  net user adminse3 | find /I "Mot de passe exig" | find /I "Oui" >>%LOG%
 692  If ErrorLevel 1 Goto ErrAdminse3NoPassword
 693  echo. >>%LOG%
 694  
 695  :: Lancement de wpkg-repair.bat a l'aide du job wpkg-repair.job
 696  If Not Exist \\\\%se3%\\Progs\\ro\\wpkg-repair.job Goto NoWpkgRepairJob
 697  Echo Lancement du job CPAU wpkg-repair >>%LOG%
 698  \\\\%se3%\\netlogon\\CPAU.exe -dec -wait -lwp -cwd %SystemDrive%\\ -file \\\\%se3%\\Progs\\ro\\wpkg-repair.job 2>NUL >NUL
 699  If "%ErrorLevel%"=="1907" Goto ErrAdminse3Expire
 700  If "%ErrorLevel%"=="1326" Goto ErrAdminse3BadPassword
 701  
 702  Goto Done
 703  
 704  :NoWpkgRepairJob
 705  echo Erreur : Fichier \\\\%se3%\\Progs\\install\\wpkg-repair.job absent ! >>%LOG%
 706  echo   En tant que root sur la console du serveur, relancer : >>%LOG%
 707  echo   /var/cache/se3_install/wpkg-install.sh >>%LOG%
 708  Goto Done
 709  
 710  :ErrAdminse3BadPassword
 711  echo Erreur : Le mot de passe d'adminse3 sur %COMPUTERNAME% n'est pas correct ! >>%LOG%
 712  echo   Revoir la configuration du compte 'adminse3' sur %COMPUTERNAME%.  >>%LOG%
 713  Goto Done
 714  
 715  :ErrAdminse3NoPassword
 716  echo Erreur : Aucun mot de passe n'est exige pour adminse3.  >>%LOG%
 717  echo   Revoir la configuration du compte 'adminse3' sur %COMPUTERNAME%.  >>%LOG%
 718  Goto Done
 719  
 720  :ErrAdminse3NotAdministrateur
 721  echo Erreur : adminse3 n'est pas membre du groupe local des Administrateurs.  >>%LOG%
 722  echo   Revoir la configuration du compte 'adminse3' sur %COMPUTERNAME%. >>%LOG%
 723  Goto Done
 724  
 725  :ErrAdminse3Expire
 726  echo Erreur : Le compte adminse3 a un mot de passe qui expire.  >>%LOG%
 727  echo   Revoir la configuration du compte 'adminse3' sur %COMPUTERNAME%.  >>%LOG%
 728  Goto Done
 729  
 730  :ErrAdminse3NotActive
 731  echo Erreur : Le compte adminse3 n'est pas actif.  >>%LOG%
 732  echo   Revoir la configuration du compte 'adminse3' sur %COMPUTERNAME%.  >>%LOG%
 733  Goto Done
 734  
 735  :ErrNoAdminse3
 736  echo Erreur : Pas de compte adminse3 defini sur ce poste.  >>%LOG%
 737  echo   Revoir l'integration du poste au domaine SAMBAEDU.  >>%LOG%
 738  Goto Done
 739  
 740  :Done
 741  
 742  WPKGDIAG
 743  #--------Fin wpkg-diag.bat-----------#
 744  recode $script_charset..CP850 /var/se3/Progs/install/wpkg-diag.bat
 745  todos /var/se3/Progs/install/wpkg-diag.bat
 746  # setfacl -m u::rwx -m g::rx -m o::rx /var/se3/Progs/install/wpkg-diag.bat
 747  chmod 755 /var/se3/Progs/install/wpkg-diag.bat
 748  echo "Script /var/se3/Progs/install/wpkg-diag.bat cree."
 749  
 750  # Script de reparation d'un client wpkg recalcitrant
 751  # par exemple a cause de running=true qui bloque l'execution
 752  #--------Debut wpkg-repair.bat-----------#
 753  cat - > $WPKGDIR/wpkg-repair.bat <<WPKGREPAIR
 754  :: Script de diagnostic/reparation d'un client wpkg qui ne s'execute pas.
 755  :: Il s'execute sous adminse3 (encore faut-il que ce compte soit valide !)
 756  :: Le lancement se fait avec le job CPAU (wpkg-repair.job)
 757  @echo OFF
 758  Set SE3=$SE3
 759  
 760  Set NoRunWpkgJS=1
 761  Set CscriptRunning=1
 762  If Not Exist \\\\%SE3%\\install\\wpkg\\tools\\pslist.exe Goto ApresTestCscript
 763  :: Le parametre /accepteula est-il necessaire pour les pstools ?
 764  Set ACCEPTEULA=/accepteula
 765  \\\\%SE3%\\install\\wpkg\\tools\\pslist.exe /accepteula 2>NUL >NUL
 766  If ErrorLevel 1 Set ACCEPTEULA=
 767  
 768  :: Laisse une chance a l'ancien wpkg-client.vbs de se terminer
 769  echo Attend au plus 60s que l'ancien client se termine
 770  set BoucleAttend="x"
 771  :AttendFinCscript
 772  ping -n 4 127.0.0.1 >NUL
 773  \\\\%SE3%\\install\\wpkg\\tools\\pslist.exe %ACCEPTEULA% cscript 2>NUL >NUL
 774  If ErrorLevel 1 Set CscriptRunning=0
 775  If "%CscriptRunning%"=="0" Goto ApresTestCscript
 776  Set BoucleAttend=%BoucleAttend%x
 777  If "%BoucleAttend%"=="xxxxxxxxxxxxxxxxxxxxx" Goto ApresTestCscript
 778  Echo "On attend encore un peu ..."
 779  Goto AttendFinCscript
 780  
 781  :ApresTestCscript
 782  
 783  If Not Exist %SystemDrive%\\netinst\\log mkdir %SystemDrive%\\netinst\\log
 784  Set LOG=%SystemDrive%\\netinst\\log\\wpkg-repair.log
 785  echo. 1>%LOG%
 786  echo %date% %time% Demarrage wpkg-repair.bat en tant que %USERNAME%. 1>%LOG%
 787  :: TaskUser et TaskPass sont disponibles
 788  Set REGEXE=%WinDir%\\system32\\reg.exe
 789  If Exist "%REGEXE%" Goto REGEXEFOUND
 790  Set REGEXE=\\\\%SE3%\\install\\wpkg\\tools\\reg.exe 1>>%LOG%
 791  If Exist "%REGEXE%" Goto REGEXEFOUND
 792  echo L'utilitaire reg.exe est introuvable. 1>>%LOG%
 793  echo A partir d'un WinXP, recopiez %WinDir%\\system32\\reg.exe dans \\\\%SE3%\\install\\wpkg\\tools\\ 1>>%LOG%
 794  Goto InstallWpkg
 795  
 796  :REGEXEFOUND
 797  
 798  :: Controle de running True
 799  reg query hklm\\software 2>NUL >NUL
 800  If ErrorLevel 1 Goto ErreurRegExe
 801  reg query hklm\\software\\wpkg 2>NUL >NUL
 802  If ErrorLevel 1 Goto WpkgNeverRun
 803  reg query hklm\\software\\wpkg 2>NUL | find /I "running" | find /I "true" 1>>%LOG%
 804  If ErrorLevel 1 Goto WpkgRunninFalse
 805  Echo Wpkg est indique en cours d'execution 1>>%LOG%
 806  Echo   L'entree running=true de la base de registre est supprimee 1>>%LOG%
 807  Echo   Wwpkg ne sera lance qu'au prochain boot. 1>>%LOG%
 808  reg delete hklm\\software\\wpkg /v running /f
 809  Goto InstallWpkg
 810  
 811  :ErreurRegExe
 812  Echo Erreur reg.exe ! Etes-vous sur de la validite de cet utilitaire ? 1>>%LOG%
 813  Goto InstallWpkg
 814  
 815  :WpkgRunninFalse
 816  Echo Wpkg n'est pas indique en cours d'execution. 1>>%LOG%
 817  If "%CscriptRunning%"=="0" Set NoRunWpkgJS=0
 818  Goto InstallWpkg
 819  
 820  :WpkgNeverRun
 821  Echo Wpkg n'a jamais ete execute sur ce poste. 1>>%LOG%
 822  If "%CscriptRunning%"=="0" Set NoRunWpkgJS=0
 823  Goto InstallWpkg
 824  
 825  :InstallWpkg
 826  :: Mise a jour du client
 827  Echo Lancement du client wpkg ... 1>>%LOG%
 828  
 829  Set LOGSRV=\\\\%SE3%\\install\\wpkg\\rapports\\%COMPUTERNAME%.maj
 830  If Exist "%LOGSRV%" del /F /Q "%LOGSRV%"
 831  If Exist \\\\%SE3%\\Progs\\rw\\wpkg\\%COMPUTERNAME%.log Type \\\\%SE3%\\Progs\\rw\\wpkg\\%COMPUTERNAME%.log >> %LOGSRV%
 832  If Exist \\\\%SE3%\\Progs\\rw\\wpkg\\%COMPUTERNAME%.log del /F /Q \\\\%SE3%\\Progs\\rw\\wpkg\\%COMPUTERNAME%.log
 833  If Exist %LOG% echo -- %date% %time% Contenu de wpkg-repair.log --- >> %LOGSRV%
 834  If Exist %LOG% Type %LOG% >> %LOGSRV%
 835  If Exist %LOG% echo -- Fin wpkg-repair.log --- >> %LOGSRV%
 836  echo La suite du rapport d'installation sera disponible dans quelques instants ... >> %LOGSRV%
 837  
 838  Rem Set SILENT=1
 839  Set APPENDLOG=1
 840  call \\\\%SE3%\\install\\wpkg\\wpkg-install.bat 2>%LOG%.err 1>%LOG%
 841  
 842  echo -- %date% %time% Contenu de wpkg-install.log.err --- >> %LOGSRV%
 843  Type %LOG%.err >> %LOGSRV%
 844  echo -- Fin wpkg-install.log.err --- >> %LOGSRV%
 845  echo -- Contenu de wpkg-install.log --- >> %LOGSRV%
 846  Type %LOG% >> %LOGSRV%
 847  echo -- Fin wpkg-install.log --- >> %LOGSRV%
 848  
 849  WPKGREPAIR
 850  #--------Fin wpkg-repair.bat-----------#
 851  recode $script_charset..CP850 $WPKGDIR/wpkg-repair.bat
 852  todos $WPKGDIR/wpkg-repair.bat
 853  echo "Script $WPKGDIR/wpkg-repair.bat cree."
 854  
 855  
 856  #--------Debut wpkg-config.bat-----------#
 857  # A executer une fois par l'admin pour creer les jobs cpau et placer la commande d'installation dans 'templates\\base\\logon.bat'
 858  # cat - > $CONFIGBAT <<FINCONFIGBAT
 859  # @echo off
 860  
 861  # Set SCHTASKEXE=%WinDir%\\system32\\schtasks.exe
 862  # Set DestExe=%WPKGROOT%\\tools\\schtasks2k.exe
 863  
 864  # Set WinType=XP
 865  # ver | find "2000" >NUL
 866  # if Not ErrorLevel 1 Set WinType=2K
 867  # if ErrorLevel 1 ver | find /I "XP" >NUL
 868  # if ErrorLevel 1 Goto No2000XP
 869  
 870  # :: Utilitaire schtasks2k.exe pour gerer les 'taches planifiees' sur Win2K et WinXp
 871  # Set SCHTASKS=schtasks2k
 872  # If Not Exist %WPKGROOT%\\tools\\schtasks2k.exe Goto MAKESCHTASKS2K
 873  # echo %WPKGROOT%\\tools\\schtasks2k.exe ‚tait d‚j… disponible.
 874  # If "%WinType%"=="XP" echo Si vous souhaitez regenerer schtasks2k.exe, 
 875  # If "%WinType%"=="XP" echo   effacez-le puis relancez wpkg-config.bat.
 876  # echo.
 877  # Goto JTorSCHTASKS2KOK
 878  # :MAKESCHTASKS2K
 879  # :: Creation de schtasks2k.exe a partir de %WinDir%\\system32\\schtasks.exe
 880  # :: Est-on bien sur un WinXP
 881  # if "%WinType%"=="XP" Goto OnXP
 882  # :: Sinon, est-ce que jt.exe est disponible pour installer une tache planifiee
 883  # if Not Exist %WPKGROOT%\\tools\\jt.exe Goto NOJT
 884  # Set SCHTASKS=jt
 885  # Goto JTorSCHTASKS2KOK
 886  
 887  # :OnXP
 888  # Set SCHTASKS=
 889  # echo Application d'un patch … schtasks.exe pour le rendre utilisable sous Windows 2000.
 890  # :: ----------------------------- patch schtasks.exe ---------------------------------------
 891  
 892  # :: Hack honteux pour rendre schtasks.exe de WinXP utilisable sous Win2k
 893  # :: D'apres une idee de http://www.windowsitpro.com/Articles/ArticleID/25186/25186.html
 894  # :: Adaptatation a la version francaise de schtasks.exe version 5.1.2600.2180
 895  # :: et automatisation de l'application du patch avec debug.
 896  
 897  # If Not Exist "%SCHTASKEXE%" Goto NoSCHTASKEXE
 898  
 899  # ::Changement de repertoire
 900  # pushd %SystemDrive%\\
 901  
 902  # copy /Y /B "%SCHTASKEXE%" .\\schtasks.dat >NUL
 903  # If ErrorLevel 1 Goto ErrDupExe
 904  
 905  # :: S'agit-il de la bonne version du fichier
 906  # echo d e4f0 e4ff>patch1.txt
 907  # echo q>>patch1.txt
 908  
 909  # cmd /c debug schtasks.dat < patch1.txt >sortie.txt
 910  # type sortie.txt | find "00 E8 68 EC FF FF 85 C0-75 0F 68 7F 15 00 00 E8" >NUL
 911  
 912  # If ErrorLevel 1 Goto BadFile
 913  
 914  # :: Changement octet e4f8 : 75->EB
 915  # ::    1535:E4F8 750F          JNZ     E509
 916  # :: a remplacer par
 917  # ::    1535:E4F8 EB0F          JMP     E509
 918  
 919  # echo e e4f8 eb>patch2.txt
 920  # echo w>>patch2.txt
 921  # echo q>>patch2.txt
 922  # cmd /c debug schtasks.dat < patch2.txt
 923  
 924  # If ErrorLevel 1 Goto ErrDebug
 925  
 926  # :: Juste pour verifier le bon changement de l'octet.
 927  # cmd /c debug schtasks.dat < patch1.txt >sortie.txt
 928  # type sortie.txt | find "00 E8 68 EC FF FF 85 C0-EB 0F 68 7F 15 00 00 E8" >NUL
 929  
 930  # If ErrorLevel 1 Goto PatchNotDone
 931  # Echo Le patch a ete applique avec succes.
 932  
 933  # :: Recopie de ce fichier sur le serveur
 934  # copy /Y /B schtasks.dat %DestExe% >NUL
 935  # If ErrorLevel 1 Goto ErrCopy
 936  
 937  # Goto PatchDone
 938  
 939  # :ErrDupExe
 940  # Echo Erreur de copie de "%SCHTASKEXE%" vers "%SystemDrive%\\schtasks.dat"
 941  # Goto ErreurPatch
 942  
 943  # :ErrCopy
 944  # Echo Erreur de copie de "%SystemDrive%\\schtasks.dat" vers %DestExe%
 945  # Goto ErreurPatch
 946  
 947  # :PatchNotDone
 948  # Echo Erreur : l'application du patch a echoue !
 949  # Goto ErreurPatch
 950  
 951  # :ErrDebug
 952  # Echo Erreur : La commande DEBUG a quitte avec l'erreur %ErrorLevel% !
 953  # Goto ErreurPatch
 954  
 955  # :BadFile
 956  # Echo Erreur : le fichier %SCHTASKEXE% n'est pas de la version 5.1.2600.2180
 957  # Goto ErreurPatch
 958  
 959  # :NoSCHTASKEXE
 960  # echo Erreur : le fichier %SCHTASKEXE% n'existe pas !
 961  # echo Etes-vous bien sur un Windows XP ?
 962  # Goto ErreurPatch
 963  
 964  # :ErreurPatch
 965  # Set Erreur=1
 966  
 967  # :PatchDone
 968  # :: Faire du menage
 969  # If Exist patch1.txt del /F /Q patch1.txt 2>NUL >NUL
 970  # If Exist patch2.txt del /F /Q patch2.txt 2>NUL >NUL
 971  # If Exist sortie.txt del /F /Q sortie.txt 2>NUL >NUL
 972  # If Exist schtasks.dat del /F /Q schtasks.dat 2>NUL >NUL
 973  # popd
 974  # :: Saut hors patch en cas d'erreur
 975  # If "%Erreur%"=="1" Goto PatchFail
 976  # Goto SCHTASKS2KOK
 977  
 978  # :: Yeh ! we got it !
 979  # :: ----------------------------- Fin patch schtasks.exe ---------------------------------------
 980  
 981  # :PatchFail
 982  # echo Erreur : L'application du patch au fichier SCHTASKEXE a echoue.
 983  # echo Vous pouvez tenter d'executer a nouveau ce script a partir d'un autre PC (Windows XP SP2).
 984  # If Exist %WPKGROOT%\\tools\\jt.exe Goto JtEstLa
 985  # Goto RECOMMANDEJT
 986  
 987  # :SCHTASKS2KOK
 988  
 989  # Set SCHTASKS=schtasks2k
 990  # echo %DestExe% est maintenant disponible.
 991  
 992  # :JTorSCHTASKS2KOK
 993  # echo.
 994  # echo Essai de %WPKGROOT%\\tools\\schtasks2k.exe 
 995  # echo   en listant les 'tâches planifiees' actuelles de ce poste :
 996  # %DestExe%
 997  # echo.
 998  # if ErrorLevel 1 Echo %DestExe%
 999  # if ErrorLevel 1 Echo   a genere une erreur : ErrorLevel=%ErrorLevel%
1000  # if ErrorLevel 1 Echo.
1001  
1002  # :: Presence jt.exe
1003  # If Exist %WPKGROOT%\\tools\\jt.exe Goto JtEstLa
1004  # :RECOMMANDEJT
1005  # echo Vous devriez telecharger l'utilitaire jt.exe a l'adresse :
1006  # echo   ftp://ftp.microsoft.com/reskit/win2000/jt.zip
1007  # echo   Et placer apres decompression jt.exe dans %WPKGROOT%\\tools
1008  # echo Ainsi, vous n'aurez plus besoin du fichier patch‚ schtasks2K.exe.
1009  # echo Il vous faudra ensuite relancer ce script.
1010  # echo.
1011  # pause
1012  # Goto SetACL
1013  # :JtEstLa
1014  # Echo L'utilitaire jt.exe est disponible. 
1015  # echo   Il sera utilis‚ pour creer la tâche planifiee.
1016  # echo.
1017  
1018  # :SetACL
1019  # Set SetACL=%WPKGROOT%\\tools\\SetACL.exe
1020  # If Exist %SetACL% Goto SetACLOK
1021  # echo Vous devriez telecharger l'utilitaire SetACL a l'adresse :
1022  # echo   http://ovh.dl.sourceforge.net/sourceforge/setacl/setacl-cmdline-2.0.2.0-binary.zip
1023  # echo   Et placer apres decompression SetACL.exe dans %WPKGROOT%\\tools
1024  # echo.
1025  # Goto CreationJob
1026  # :SetACLOK
1027  # echo L'utilitaire SetACL.exe est disponible
1028  # echo.
1029  
1030  # :: Recopie de reg.exe qui n'est pas disponible sous Win2k alors qu'il fonctionne parfaitement
1031  # If Exist %WinDir%\\system32\\reg.exe xcopy /Y /C /I /H /R %WinDir%\\system32\\reg.exe "%WPKGROOT%\\tools\\" >NUL
1032  # If Exist "%WPKGROOT%\\tools\\reg.exe" Echo L'utilitaire reg.exe est disponible dans %WPKGROOT%\\tools\\
1033  # If Not Exist "%WPKGROOT%\\tools\\reg.exe" Echo L'utilitaire reg.exe n'est pas disponible
1034  # echo.
1035  
1036  # :CreationJob
1037  # ::If Exist "$WPKGROOT\\wpkg.job" Del /F /Q "$WPKGROOT\\wpkg.job"
1038  
1039  # ::echo Creation du job CPAU d'install sous le compte $ADMINSE3
1040  # ::echo $INSTTASKJOB
1041  # ::If Exist "$INSTTASKJOB" Del /F /Q "$INSTTASKJOB"
1042  # ::set TASK="$TASK"
1043  
1044  # @If "$DBG"=="1" Echo Dbg. TASK="$TASK"
1045  
1046  # ::@$CPAU -u $ADMINSE3 -p $PASSADMINSE3 -enc -file $INSTTASKJOB -lwp -c -ex %TASK% 2>NUL >NUL
1047  # ::Set TASK=
1048  # ::If ErrorLevel 8 Goto ErrAuthSe3
1049  # ::If ErrorLevel 1 Goto ErrMakeInstallJob
1050  # ::If Not Exist "$INSTTASKJOB" Goto ErrMakeInstallJob
1051  # echo $INSTTASKJOB : SUCCES.
1052  
1053  # echo.
1054  # echo Creation du lien de lancement manuel de wpkg
1055  # Set TASKRUNWPKG="$TASKRUNWPKG"
1056  # @$CPAU -u $ADMINSE3 -p $PASSADMINSE3 -enc -file $RUNWPKGJOB -lwp -c -ex %TASKRUNWPKG% 2>NUL >NUL
1057  # %WPKGROOT%\\tools\\nircmdc.exe shortcut $CPAU "~\$folder.desktop\$" "Synchronise les applications Wpkg" "-dec -lwp -cwd c:\\ -file $RUNWPKGJOB" %%windir%%\\system32\\setup.exe
1058  # %WPKGROOT%\\tools\\nircmdc.exe execmd If Exist "~\$folder.desktop\$\\Applications Wpkg.lnk" Del /f /S "~\$folder.desktop\$\\Applications Wpkg.lnk"
1059  # %WPKGROOT%\\tools\\nircmdc.exe execmd RENAME "~\$folder.desktop\$\\Synchronise les applications Wpkg.lnk" "Applications Wpkg.lnk"
1060  
1061  # :: echo.
1062  # :: echo Creation du lien pour forcer la valeur running=false
1063  # :: Set wpkgRunningFalseJOB=\\\\$SE3\\Progs\\ro\\wpkgRunningFalse.job
1064  # :: @$CPAU -u $ADMINSE3 -p $PASSADMINSE3 -enc -file "%wpkgRunningFalseJOB%" -lwp -c -ex "\\\\$SE3\\install\\wpkg\\tools\reg.exe ADD HKLM\\Software\\wpkg /v running /d false /f" 2>NUL >NUL
1065  # :: %WPKGROOT%\\tools\\nircmdc.exe shortcut $CPAU "\\\\$SE3\\Progs\\ro" "WpkgRunningFalse" "-dec -lwp -cwd c:\\ -file %wpkgRunningFalseJOB%" %%windir%%\\regedit.exe
1066  
1067  # echo.
1068  # echo Creation du job pour lancer wpkg-repair.bat
1069  # Set wpkgRepairJOB=\\\\$SE3\\Progs\\ro\\wpkg-repair.job
1070  # Set wpkgRepairBAT=\\\\$SE3\\install\\wpkg\\wpkg-repair.bat
1071  # @$CPAU -u $ADMINSE3 -p $PASSADMINSE3 -enc -file "%wpkgRepairJOB%" -lwp -c -ex "(net use \\\\$SE3||exit 8)&&(set TaskUser=$ADMINSE3&&set TaskPass=$PASSADMINSE3&&call %wpkgRepairBAT%&net use * /delete /y)" 2>NUL >NUL
1072  
1073  
1074  # :: --------------Install client sur poste local------------------------------
1075  # :: Controle du compte $ADMINSE3
1076  # net user $ADMINSE3 2>NUL >NUL
1077  # If ErrorLevel 1 Goto NoAdminse3
1078  # net user $ADMINSE3 | find "Compte" | find "actif" | find "Oui" 2>NUL >NUL
1079  # If ErrorLevel 1 Goto NoAdminse3Actif
1080  # net user $ADMINSE3 | find "*Administrateurs" 2>NUL >NUL
1081  # If ErrorLevel 1 Goto NoAdminse3Admins
1082  # net user $ADMINSE3 | find "mot de passe expire" | find "Jamais" 2>NUL >NUL
1083  # If ErrorLevel 1 Goto NoAdminse3NoExpire
1084  # echo.
1085  # echo Le compte $ADMINSE3 est actif, membre du groupe 'Administrateurs'
1086  # echo    et son mot de passe n'expire jamais.
1087  # Goto AskInstallLocal
1088  
1089  # :NoAdminse3NoExpire
1090  # echo.
1091  # echo Le mot de passe de $ADMINSE3 va expirer :
1092  # net user $ADMINSE3 | find "Le mot de passe expire" 
1093  # pause
1094  # Goto AskInstallLocal
1095  
1096  # :NoAdminse3Admins
1097  # echo.
1098  # echo Le compte de $ADMINSE3 n'est pas membre du groupe des 'Administrateurs'.
1099  # pause
1100  # Goto LOGONBAT
1101  
1102  # :NoAdminse3Actif
1103  # echo.
1104  # echo Le compte local $ADMINSE3 n'est pas actif.
1105  # echo   Le test de la procedure d'installation de wpkg n'est pas possible sur ce poste.
1106  # pause
1107  # Goto LOGONBAT
1108  
1109  # :NoAdminse3
1110  # echo.
1111  # echo Le compte local $ADMINSE3 n'existe sur ce poste.
1112  # echo   Ce poste n'a vraisemblablement pas rejoint le domaine...
1113  # echo   Le test de la procedure d'installation de wpkg n'est pas possible sur ce poste.
1114  # pause
1115  # Goto LOGONBAT
1116  
1117  # :AskInstallLocal
1118  # Set REPONSE=O
1119  # echo.
1120  # echo Avant de placer la commande d'installation dans le script de login,
1121  # echo vous pouvez tester le script d'installation de wpkg sur ce poste.
1122  # echo.
1123  # echo Rmq. Les fenetres qui s'ouvrent pour ce test, seront masquees 
1124  # echo      lors de l'installation 'normale' au login d'un utilisateur.
1125  # echo.
1126  
1127  # Set NoRunWpkgJS=1
1128  # Set /P REPONSE=  Voulez-vous installer maintenant wpkg sur ce poste ? O^|N [O]
1129  # if Not "%REPONSE%"=="O" if Not "%REPONSE%"=="o" Goto LOGONBAT
1130  # Set NoRunWpkgJS=0
1131  # echo.
1132  # echo Installation de wpkg sur ce poste : en cours...
1133  # echo Pas de temporisation avant lancement de wpkg-se3.js > "%SystemDrive%\\netinst\\wpkg-notempo.txt"
1134  # ::start /wait $CPAU -dec -lwp -wait -outprocexit -cwd %SystemDrive%\\ -file $INSTTASKJOB
1135  # start /wait $CPAU -dec -lwp -wait -cwd %SystemDrive%\\ -file $INSTTASKJOB
1136  # If "%ErrorLevel%"=="0" Goto InstallWPKGSucces
1137  # Goto ErrRunJob
1138  # :InstallWPKGSucces
1139  # Set WpkgIsInstalled=1
1140  # echo Installation de wpkg sur ce poste : SUCCES.
1141  # If "%NoRunWpkgJS%"=="1" Goto LOGONBAT
1142  # echo.
1143  # If Exist %WinDir%\\wpkg.txt echo   %WinDir%\\wpkg.txt : Etat des applis wpkg de ce poste.
1144  # If Exist %WinDir%\\wpkg.log echo   %WinDir%\\wpkg.log : Log de l'execution de wpkg-se3.js
1145  # If Not Exist %WinDir%\\wpkg.txt echo  Err. %WinDir%\\wpkg.txt absent : Pas d'etat des applis disponibles.
1146  # If Not Exist %WinDir%\\wpkg.log echo  Err. %WinDir%\\wpkg.log : Pas de Log de l'execution de wpkg.
1147  # If Exist %WPKGROOT%\\rapports\\%COMPUTERNAME%.txt echo   %WPKGROOT%\\rapports\\%COMPUTERNAME%.txt : Remontee serveur.
1148  # If Exist %WPKGROOT%\\rapports\\%COMPUTERNAME%.log echo   %WPKGROOT%\\rapports\\%COMPUTERNAME%.log : Remontee serveur.
1149  # If Not Exist %WPKGROOT%\\rapports\\%COMPUTERNAME%.txt echo  Err. %WPKGROOT%\\rapports\\%COMPUTERNAME%.txt absent : Pas de Remontee sur le serveur.
1150  # If Not Exist %WPKGROOT%\\rapports\\%COMPUTERNAME%.log echo  Err. %WPKGROOT%\\rapports\\%COMPUTERNAME%.log absent : Pas de Remontee sur le serveur.
1151  # pause
1152  # :: --------------Fin Install client sur poste local------------------------------
1153  
1154  # :LOGONBAT
1155  # :: ------------------Insert Installwpkg dans $LogonBat------------------------------
1156  # echo.
1157  # echo.
1158  # echo Commande a ajouter sur une ligne au script de login des utilisateurs :
1159  # echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1160  # echo $CMDINSTALL
1161  # echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1162  # echo.
1163  # If not exist $LogonBat goto NoLogonBat
1164  
1165  # echo Contenu actuel du script de login concernant 'wpkg' :
1166  # echo -------- extrait de $LogonBat -------
1167  # find /V "#" $LogonBat | find /V "Rem " | find /V "::" | find /I "wpkg"
1168  # echo -------------------------------------------------------------------
1169  # echo.
1170  # If ErrorLevel 1 Goto PASCMDLOGIN
1171  # find "$FINDCMD" $LogonBat >NUL
1172  # If Not ErrorLevel 1 Goto SameCMD
1173  # echo Une commande d'installation de wpkg semble deja presente dans logon.bat
1174  # echo   Elle n'est cependant pas identique a la commande preconisee.
1175  # echo   Voulez-vous quand meme ajouter la commande d'installation de wpkg
1176  # Set REPONSE=N
1177  # Goto AskInsertCmd
1178  
1179  # :SameCMD
1180  # echo La commande qui se trouve dans le script coïncide avec la commande preconisee.
1181  # pause
1182  # echo.
1183  # Goto WPKGOK
1184  
1185  # :PASCMDLOGIN
1186  # echo   Voulez-vous ajouter la commande d'installation de wpkg
1187  # Set REPONSE=O
1188  
1189  # :AskInsertCmd
1190  # Set /P REPONSE=  au template base logon.bat ? O^|N [%REPONSE%]
1191  # if Not "%REPONSE%"=="O" if Not "%REPONSE%"=="o" Goto NoAddTemplate
1192  # echo. >> $LogonBat
1193  # echo $CMDINSTALL >> $LogonBat
1194  # echo.
1195  # echo Nouveau contenu du script de login concernant 'wpkg' :
1196  # find /I "wpkg" $LogonBat
1197  # echo.
1198  # If ErrorLevel 1 Goto NoInstallTemplate
1199  # :: -----------------Fin Insert Installwpkg dans $LogonBat------------------------------
1200  
1201  # :WPKGOK
1202  # find /I ":: Pour resoudre un probleme de lancement de wpkg" $LogonBat >NUL
1203  # If "%ErrorLevel%"=="0" Goto WPKGGreetings
1204  # echo. >> $LogonBat
1205  # echo :: Pour resoudre un probleme de lancement de wpkg sur un poste. >> $LogonBat
1206  # echo Rem @if "%%COMPUTERNAME%%"=="PosteProblemeWpkg" call \\\\$SE3\\Progs\\install\\wpkg-diag.bat 2^>NUL ^>NUL  >> $LogonBat
1207  
1208  # :WPKGGreetings
1209  # echo.
1210  # echo Felicitation : WPKG est operationnel sur ce serveur
1211  # echo   Il sera installe puis execute sur les postes 
1212  # echo     au prochain login d'un utilisateur.
1213  # echo   Une fois installe, WPKG s'execute au boot du poste,
1214  # echo     apres une temporisation de 30sec,
1215  # echo     sans qu'il soit necessaire de s'authentifier.
1216  # Goto AUTODEL
1217  
1218  # :ErrAuthSe3
1219  # echo.
1220  # echo Echec d'authentification au serveur $SE3 avec le compte '$SE3\\$ADMINSE3'.
1221  # Goto Done
1222  
1223  # :NoAddTemplate
1224  # echo.
1225  # echo Felicitation : La configuration de Wpkg est terminee.
1226  # If "%InLoginScript%"=="1" Goto AUTODEL
1227  # echo   Il vous reste a ajouter la ligne de commande precedente
1228  # echo   dans les templates de votre choix.
1229  # Goto AUTODEL
1230  
1231  # :No2000XP
1232  # Set WinType=9x
1233  # echo Erreur : Vous n'etes pas sur un poste Windows 2000 ou XP.
1234  # Goto Done
1235  
1236  # :ErrMakeInstallJob
1237  # echo Erreur : le fichier $INSTTASKJOB n'a pas pu etre cre.
1238  # Goto Done
1239  
1240  # :ErrRunJob
1241  # echo Erreur : l'installation de wpkg sur ce poste a echoue. Err=%ErrorLevel%
1242  # If EXIST "%SystemDrive%\\netinst\\wpkg-notempo.txt" del /F /Q "%SystemDrive%\\netinst\\wpkg-notempo.txt"
1243  # Goto Done
1244  
1245  # :NoLogonBat
1246  # echo Erreur : le fichier $LogonBat est introuvable.
1247  # Goto NoInstallTemplate
1248  
1249  # :NoInstallTemplate
1250  # echo Erreur : le fichier template $LogonBat n'a pas pu etre mis a jour.
1251  # echo Ajoutez manuellement la ligne precedente au script de login des utilisateurs.
1252  # Goto Done
1253  
1254  # :NOJT
1255  # echo.
1256  # echo Erreur : Vous n'etes pas sur un PC Windows XP et l'utilitaire jt.exe 
1257  # echo   n'est pas disponible.
1258  # echo   Telechargez jt.zip depuis l'adresse :
1259  # echo     ftp://ftp.microsoft.com/reskit/win2000/jt.zip
1260  # echo     puis, apres extraction, placez le fichier jt.exe dans le repertoire :
1261  # echo     %WPKGROOT%\\tools\\
1262  # echo   C'est ce que je vous recommande.
1263  # echo.
1264  # echo   Sinon, vous pouvez vous passer de jt.exe a condition d'executer ce script 
1265  # echo   a partir d'un PC Windows XP...
1266  # echo.
1267  # Goto Done
1268  
1269  # :AUTODEL
1270  # If Not Exist "%~f0" Goto Done
1271  # Set REPONSE=O
1272  # echo.
1273  # echo La gestion des applications a deployer sur les postes, 
1274  # echo   se fait a l'aide d'un navigateur web a l'adresse :
1275  # echo   $URLSE3/wpkg/  
1276  # echo.
1277  # echo Par securite, il serait prudent de supprimer ce fichier de configuration.
1278  # echo    Pour cela, tapez : del %~f0  
1279  # echo.
1280  # echo    En cas de besoin, vous pourrez le recreer en executant a nouveau
1281  # echo    '/var/cache/se3_install/wpkg-install.sh'
1282  # echo    en root, sur la console du serveur.
1283  # echo.
1284  
1285  # If Not "%WpkgIsInstalled%"=="1" Goto WpkgNotInstalled
1286  # If "%NoRunWpkgJS%"=="1" echo Wpkg s'executera au prochain demarrage de ce poste.
1287  # If Not "%NoRunWpkgJS%"=="1" echo Wpkg s'executera a nouveau a chaque demarrage de ce poste.
1288  # echo Si vous voulez executer wpkg maintenant, utilisez le lien
1289  # echo    'Applications Wpkg' sur le bureau de %UserName%.
1290  # echo.
1291  # :WpkgNotInstalled
1292  
1293  # @If "$DBG"=="1" Echo L'installation a ete effectuee en mode DEBUG (DBG="1").
1294  # @If "$DBG"=="1" Echo   Si tout s'est bien passe, n'oubliez pas de
1295  # @If "$DBG"=="1" Echo   reexecuter ce script en mode normal (DBF="0")
1296  # @If "$DBG"=="1" Echo   pour supprimer les 'Pause' de l'execution des scripts.
1297  # @If "$DBG"=="1" Echo.
1298  
1299  # ::set /P REPONSE=Voulez-vous supprimer wpkg-config.bat maintenant ? O^|N [O]
1300  # ::if Not "%REPONSE%"=="O" if Not "%REPONSE%"=="o" Goto Done
1301  # ::del "%~f0"&exit 0
1302  # Goto Done
1303  
1304  # :Done
1305  # Set DestExe=
1306  # Set REPONSE=
1307  # Set SCHTASKS=
1308  # Set SetACL=
1309  # Set WinType=
1310  # Set WpkgIsInstalled=
1311  # Set WPKGROOT=
1312  
1313  # echo.
1314  # echo Fin de wpkg-config.bat
1315  # Pause
1316  # FINCONFIGBAT
1317  
1318  
1319  #--------Fin wpkg-config.bat-----------#
1320  # recode $script_charset..CP850 $CONFIGBAT
1321  # unix2dos $CONFIGBAT
1322  # echo "Script de configuration destine a l'admin $CONFIGBAT cree."
1323  # chown admin:admins $CONFIGBAT
1324  # chmod 770 $CONFIGBAT
1325  
1326  #--------Debut de la partie remplacant le lancement manuel de wpkg-config.bat-----------#
1327  # script devenu obsolete : suppression.
1328  [ -e /var/se3/Progs/install/wpkg-config.bat ] && echo "Suppression de /var/se3/Progs/install/wpkg-config.bat"&& rm /var/se3/Progs/install/wpkg-config.bat
1329  
1330  adminse3="adminse3"
1331  
1332  # Chemin du job d'installation de wpkg sur un poste pour un utilisateur lambda
1333  INSTTASKJOB="wpkgInstall.job"
1334  # Chemin du job d'execution de wpkg sur un poste pour un utilisateur lambda
1335  RUNWPKGJOB="wpkgRun.job"
1336  # Chemin du script de login
1337  LogonBat="/home/templates/base/logon.bat"
1338  # Commande executee par adminse3 pour installer wpkg sur le poste
1339  TASK="(net use \\\\$SE3||(exit 8))&&(Set APPENDLOG=1&&Set TaskUser=$ADMINSE3&&Set TaskPass=$PASSADMINSE3&&call $WPKGROOT\\wpkg-install.bat&net use * /delete /y)"
1340  # Commande executee par adminse3 pour executer wpkg sur le poste
1341  TASKRUNWPKG='{%{ComSpec}%} /C cscript {%{Windir}%}\\wpkg-client.vbs /debug /notempo /cpuLoad 80&pause'
1342  #variable WPKGDIR deja definie
1343  
1344  #### on abandonne SCHTASK pour windows2000 puisque jt fonctionne.
1345      
1346  # Recopie de reg.exe qui n'est pas disponible sous Win2k alors qu'il fonctionne parfaitement
1347  ### on cherche un WinXP allume et on tente un allumage si besoin.
1348  # a implementer : avec requete ldap + tcpcheck
1349  #IPWINXP=10.211.55.160
1350  #NAMEWINXP=WINXPSE3
1351  
1352  if [ -e $WPKGDIR/tools/reg.exe ] ; then
1353      echo "Utilitaire reg.exe present sur le serveur."
1354  else
1355      echo "$(/usr/bin/smbstatus -b | grep -v root | grep -v nobody | awk 'NF>4 {print $4,$5}')" | while read line
1356       do
1357          NAMEWINXP="$(echo $line | cut -d" " -f1)"
1358          IPWINXP="$(echo $line | cut -d"(" -f2 | cut -d")" -f1)"
1359          #echo "NAME : $NAMEWINXP et IP : $IPWINXP"
1360  
1361          ### tester si c'est un windows xp pour eviter des requetes inutiles
1362  
1363          # Preparation des parametres de connexion au poste
1364          (
1365          echo username=$adminse3
1366          echo password=$xppass
1367          echo domain=$NAMEWINXP
1368          )>/root/AUTHENTIFICATIONWINXP
1369          #cat /root/AUTHENTIFICATIONWINXP
1370          echo "Tentative de recuperation de reg.exe depuis le poste $NAMEWINXP"
1371  
1372          smbclient  //$IPWINXP/C$ -A /root/AUTHENTIFICATIONWINXP -c"get Windows\System32\reg.exe $WPKGDIR/tools/reg.exe" > /dev/null
1373          [ -e $WPKGDIR/tools/reg.exe ] && echo "reg.exe recupere avec succes depuis $NAMEWINXP"&& break
1374       done
1375      [ -e /root/AUTHENTIFICATIONWINXP ] && rm /root/AUTHENTIFICATIONWINXP
1376      if [ ! -e $WPKGDIR/tools/reg.exe ]; then
1377          echo "L'utilitaire reg.exe n'est toujours pas present dans $WPKGDIR/tools. Si vous avez des Windows 2000 sur votre domaine, cela pose probleme." > /tmp/mail-wpkginstall
1378          echo "PROCEDURE :" >> /tmp/mail-wpkginstall
1379          echo "1. Vous loguer sur un windows XP du domaine (peu importe le compte)." >> /tmp/mail-wpkginstall
1380          echo "2. en tant que root sur le SE3, lancer la commande :" >> /tmp/mail-wpkginstall
1381          echo "wpkg-install.sh" >> /tmp/mail-wpkginstall
1382          echo "ATTENTION : reg.exe non recupere. Envoi d'un mail a l'admin"
1383          mail root -s"[Module se3-wpkg : installation d'applications] AVERTISSEMENT : reg.exe absent du serveur" < /tmp/mail-wpkginstall
1384          rm -f /tmp/mail-wpkginstall
1385      fi
1386  fi
1387  
1388  echo "Generation des job"
1389  [ -e /var/se3/Progs/ro/$INSTTASKJOB ] && rm /var/se3/Progs/ro/$INSTTASKJOB
1390  [ -e /var/se3/Progs/ro/$RUNWPKGJOB ] && rm /var/se3/Progs/ro/$RUNWPKGJOB
1391  
1392  
1393  ############################
1394  # Fix for wine when running from sudo
1395  export HOME=/root
1396  ############################
1397  cd /tmp
1398  echo "Creation du job CPAU d install sous le compte $ADMINSE3"
1399  env WINEDEBUG=-all wine /home/netlogon/CPAU.exe -u "$adminse3" -wait  -p "$xppass" -file $INSTTASKJOB -lwp -c -hide -ex "$TASK" -enc > /dev/null 
1400  echo "Creation du lien de lancement manuel de wpkg"
1401  env WINEDEBUG=-all wine /home/netlogon/CPAU.exe -u "$adminse3" -wait  -p "$xppass" -file $RUNWPKGJOB -lwp -c -hide -ex "$TASKRUNWPKG" -enc > /dev/null
1402  [ ! -d /home/netlogon/machine ] && mkdir /home/netlogon/machine
1403  mv -f $INSTTASKJOB /var/se3/Progs/ro/
1404  chown admin:admins /var/se3/Progs/ro/$INSTTASKJOB
1405  mv -f $RUNWPKGJOB /var/se3/Progs/ro/
1406  chown admin:admins /var/se3/Progs/ro/$RUNWPKGJOB
1407  
1408  # creation du raccourci sur le bureau d'admin (ou admins)
1409  #[ -e "/home/templates/admins/Bureau/Applications\ Wpkg.lnk" ] && echo "Suppression du raccourci du template admins" && rm "/home/templates/admins/Bureau/Applications\ Wpkg.lnk"
1410  #[ -e "/home/templates/admin/Bureau/Applications\ Wpkg.lnk" ] && echo "Suppression du raccourci du template admin" && rm "/home/templates/admin/Bureau/Applications\ Wpkg.lnk"
1411  
1412  #env WINEDEBUG=-all wine $WPKGDIR/tools/nircmdc.exe shortcut $CPAU ".\\" "Applications Wpkg" "-dec -lwp -cwd c:\\ -file $RUNWPKGJOB" %%windir%%\\system32\\setup.exe
1413  
1414  if [ -d /home/templates/admins ]; then
1415      mkdir -p /home/templates/admins/Bureau
1416      TEMPLATE="admins"
1417      echo "Creation du raccourci Applications WPKG sur le bureau des admins"
1418  else
1419      TEMPLATE="admin"
1420      mkdir -p /home/templates/admin/Bureau
1421      echo "Creation du raccourci Applications WPKG sur le bureau d'admin"
1422  fi
1423  
1424  FINDCMD="@if not exist \"%LOGONSERVER%\\\\admhomes\\\\templates\\\\$TEMPLATE\\\\Bureau\\\\Applications Wpkg.lnk\" (\\\\\\\\$SE3\\\\install\\\\wpkg\\\\tools\\\\nircmdc.exe shortcut \\\\\\\\$SE3\\\\netlogon\\\\CPAU.exe \"\\\\\\\\$SE3\\\\admhomes\\\\templates\\\\$TEMPLATE\\\\Bureau\" \"Applications Wpkg\" \"-dec -lwp -cwd c:\\\\ -file \\\\\\\\$SE3\\\\Progs\\\\ro\\\\$RUNWPKGJOB\" %windir%\\\\system32\\\\setup.exe"
1425  CMDINSTALL="@if not exist \"%LOGONSERVER%\\admhomes\\templates\\$TEMPLATE\\Bureau\\Applications Wpkg.lnk\" (\\\\$SE3\\install\\wpkg\\tools\\nircmdc.exe shortcut $CPAU \"\\\\$SE3\\admhomes\\templates\\$TEMPLATE\\Bureau\" \"Applications Wpkg\" \"-dec -lwp -cwd c:\\ -file \\\\$SE3\\Progs\\ro\\$RUNWPKGJOB\" %windir%\\system32\\setup.exe & copy /Y \"\\\\$SE3\\admhomes\\templates\\$TEMPLATE\\Bureau\\Applications Wpkg.lnk\" \"\\\\$SE3\\admin\\profil\\Bureau\\Applications  Wpkg.lnk\") ELSE (if exist \"\\\\$SE3\\admin\\profil\\Bureau\\Applications  Wpkg.lnk\" del /F /Q \"\\\\$SE3\\admin\\profil\\Bureau\\Applications  Wpkg.lnk\")"
1426  
1427  
1428  LOGONSCRIPT="/home/templates/$TEMPLATE/logon.bat"
1429  TEST=""
1430  [ -e $LOGONSCRIPT ] && TEST=$(cat $LOGONSCRIPT | grep "$FINDCMD" | grep -v "::" | grep -v "rem")
1431  
1432  #echo "TEST :$TEST-FINDCMD=$FINDCMD"
1433  if [ ! "$TEST" = "" ]; then
1434      echo "La commande de creation du racourci Applications WPKG est deja presente."
1435  else
1436      echo "Commande de creation du raccourci Applications WPKG ajoutee a $LOGONSCRIPT."
1437      [ -e "/home/admin/profil/Bureau/Applications Wpkg.lnk" ] && echo "Suppression du raccourci invalide (ancienne generation wpkg) du Bureau d'admin" && rm "/home/admin/profil/Bureau/Applications Wpkg.lnk"
1438      echo "$CMDINSTALL" >> $LOGONSCRIPT
1439      #recode $script_charset..CP850 $LOGONSCRIPT
1440      todos $LOGONSCRIPT
1441      chown admin:admins $LOGONSCRIPT
1442      chmod 770 $LOGONSCRIPT
1443  fi
1444  
1445  
1446  echo "Creation du job pour lancer wpkg-repair.bat"
1447  wpkgRepairJOB=wpkg-repair.job
1448  wpkgRepairBAT=\\\\$SE3\\install\\wpkg\\wpkg-repair.bat
1449  env WINEDEBUG=-all wine /home/netlogon/CPAU.exe -u "$adminse3" -wait  -p "$xppass" -file $wpkgRepairJOB -lwp -c -hide -ex "(net use \\\\$SE3||exit 8)&&(set TaskUser=$adminse3&&set TaskPass=$xppass&&call $wpkgRepairBAT&net use * /delete /y)" -enc > /dev/null 
1450  mv -f $wpkgRepairJOB /var/se3/Progs/ro/
1451  chown admin:admins /var/se3/Progs/ro/$wpkgRepairJOB
1452  
1453  # On supprime toute reference a CPAU.exe dans installdll.
1454  # En cas de presence, on vire aussi toute reference a wpkg-client.vbs : cette methode permet de supprimer une ligne creee en double dans la version testing de 2.0
1455  TEST=""
1456  FINDCMD="\\\\\\\\$SE3\\\\Progs\\\\install\\\\installdll\\\\CPAU.exe"
1457  [ -e /home/templates/base/logon.bat ] && TEST=$(cat /home/templates/base/logon.bat | grep "$FINDCMD" )
1458  if [ ! "$TEST" = "" ]; then
1459      # Suppression de la ligne en double introduite dans la version testing lors des tests de la 2.0
1460      sed -i /home/templates/base/logon.bat -e 's/%WinDir%\\wpkg-client.vbs/##### delete me #####/g'
1461      sed -i /home/templates/base/logon.bat -e "/##### delete me #####/d"
1462      # pour modifier le chemin de job CPAU personnels :
1463      echo "Correction du lien vers CPAU.exe dans base/logon.bat"
1464      sed -i /home/templates/base/logon.bat -e 's/\\\\'$SE3'\\Progs\\install\\installdll\\CPAU.exe/\\\\'$SE3'\\netlogon\\CPAU.exe/g'
1465  fi
1466  
1467  
1468  echo "Modification (si besoin) du script de login de base"
1469  # Commande a placer dans le script de login des utilisateurs
1470  CMDINSTALL="@if \"%OS%\"==\"Windows_NT\" if not exist \"%WinDir%\\wpkg-client.vbs\" $CPAU -dec -lwp -hide -cwd %SystemDrive%\\ -file \\\\$SE3\\Progs\\ro\\$INSTTASKJOB 2>NUL >NUL"
1471  FINDCMD="@if \"%OS%\"==\"Windows_NT\" if not exist \"%WinDir%\\\\wpkg-client.vbs\" \\\\\\\\$SE3\\\\netlogon\\\\CPAU.exe -dec -lwp -hide -cwd %SystemDrive%\\\\ -file \\\\\\\\$SE3\\\\Progs\\\\ro\\\\$INSTTASKJOB 2>NUL >NUL"
1472  
1473  TEST=""
1474  [ -e /home/templates/base/logon.bat ] && TEST=$(cat /home/templates/base/logon.bat | grep "$FINDCMD" | grep -v "::" | grep -v "rem")
1475  if [ ! "$TEST" = "" ]; then
1476      echo "La commande d'installation de wpkg existe dans logon.bat et n'est pas commentee."
1477  else
1478      echo "Commande d'installation de wpkg ajoutee a /home/templates/base/logon.bat"
1479      #echo "$CMDINSTALL"
1480      echo "$CMDINSTALL" >> /home/templates/base/logon.bat
1481      #recode $script_charset..CP850 /home/templates/base/logon.bat
1482      todos /home/templates/base/logon.bat
1483      chown admin:admins /home/templates/base/logon.bat
1484      chmod 770 /home/templates/base/logon.bat
1485  fi
1486  
1487  # Commande a placer dans le script de login des utilisateurs
1488  CMDINSTALL="Rem @if \"%COMPUTERNAME%\"==\"PosteProblemeWpkg\" call \\\\$SE3\\Progs\\install\\wpkg-diag.bat 2>NUL >NUL"
1489  FINDCMD="Rem @if \"%COMPUTERNAME%\"==\"PosteProblemeWpkg\" call \\\\\\\\$SE3\\\\Progs\\\\install\\\\wpkg-diag.bat 2>NUL >NUL"
1490  
1491  TEST=""
1492  [ -e /home/templates/base/logon.bat ] && TEST=$(cat /home/templates/base/logon.bat | grep "$FINDCMD" | grep -v "::" | grep -v "rem")
1493  #echo "TEST :$TEST-FINDCMD=$CMDINSTALL"
1494  if [ ! "$TEST" = "" ]; then
1495      echo "La commande de diagnostique wpkg existe dans logon.bat sous sa forme d'origine."
1496  else
1497      echo "Commande de diagnostique wpkg ajoutee commentee a /home/templates/base/logon.bat"
1498      echo "$CMDINSTALL" >> /home/templates/base/logon.bat
1499      #recode $script_charset..CP850 /home/templates/base/logon.bat
1500      todos /home/templates/base/logon.bat
1501      chown admin:admins /home/templates/base/logon.bat
1502      chmod 770 /home/templates/base/logon.bat
1503  fi
1504  
1505  
1506  #--------Fin de la partie remplacant le lancement manuel de wpkg-config.bat-----------#
1507  
1508  
1509  # Client wpkg execute par la tâche planifiee.
1510  # Mise a jour du parametre $SE3 dans wpkg-client.vbs
1511  sed "s/\$SE3/$SE3/g" $WPKGDIR/wpkg-client.vbs-original > $WPKGDIR/wpkg-client.vbs
1512  todos $WPKGDIR/wpkg-client.vbs
1513  echo "Script $WPKGDIR/wpkg-client.vbs cree."
1514  
1515  # Cles publiques ssh de www-se3 et de root disponibles pour etre recopiees sur les postes lors de l'install de copssh
1516  # Contrôle (et creation si besoin) d'une cle ssh pour l'utilisateur www-se3
1517  if [ ! -e "/var/remote_adm/.ssh/id_rsa.pub" ]; then
1518     if [ ! -d "/var/remote_adm/.ssh" ] ; then
1519        mkdir -p "/var/remote_adm/.ssh"
1520     fi
1521     chown www-se3:www-data
1522     chmod 700 "/var/remote_adm/.ssh"
1523     cd "/var/remote_adm/.ssh"
1524     # Creation de la cle
1525     sudo -u www-se3 ssh-keygen -q -b 1024 -t rsa -f id_rsa -N ''
1526     cd -
1527  fi
1528  # Contrôle (et creation si besoin) d'une cle ssh pour l'utilisateur root
1529  if [ ! -e "/root/.ssh/id_rsa.pub" ]; then
1530     if [ ! -d "/root/.ssh" ] ; then
1531        mkdir -p "/var/remote_adm/.ssh"
1532     fi
1533     chmod 700 "/root/.ssh"
1534     cd "/root/.ssh"
1535     # Creation de la cle
1536     ssh-keygen -q -b 1024 -t rsa -f id_rsa -N ''
1537     cd -
1538  fi
1539  # Mise a disposition des cles publiques de www-se3 et root pour adminse3
1540  cat /var/remote_adm/.ssh/id_rsa.pub /root/.ssh/id_rsa.pub > $WPKGDIR/authorized_keys
1541  
1542  # Initialisation de profiles.xml, hosts.xml et initvars_se3.bat
1543  chown www-se3:root /usr/share/se3/scripts/update_hosts_profiles_xml.sh
1544  chmod +x /usr/share/se3/scripts/update_hosts_profiles_xml.sh
1545  chown www-se3:root /usr/share/se3/scripts/update_droits_xml.sh
1546  chmod +x /usr/share/se3/scripts/update_droits_xml.sh
1547  bash /usr/share/se3/scripts/update_hosts_profiles_xml.sh "$computersRdn" "$parcsRdn" "$ldap_base_dn"
1548  echo "Fichiers hosts.xml et profiles.xml crees."
1549  bash /usr/share/se3/scripts/update_droits_xml.sh
1550  echo "Fichier droits.xml cree."
1551  chown www-se3:root /usr/share/se3/scripts/wpkg_initvars.sh
1552  chmod +x /usr/share/se3/scripts/wpkg_initvars.sh
1553  bash /usr/share/se3/scripts/wpkg_initvars.sh
1554  echo "Fichier initvars_se3.bat cree."
1555  chown www-se3:root /usr/share/se3/scripts/wakeonlan
1556  chmod +x /usr/share/se3/scripts/wakeonlan
1557  
1558  # Initialisation de Touslespostes.xml
1559  if [ -d "$WPKGDIR/hosts" ]; then
1560      mkdir -p "$WPKGDIR/hosts"
1561  fi
1562  TOUSLESPOSTESXML=$WPKGDIR/hosts/Touslespostes.xml
1563  echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>" > $TOUSLESPOSTESXML
1564  echo "<wpkg>" >> $TOUSLESPOSTESXML
1565  echo "<host name=\".+\" profile-id=\"_TousLesPostes\" />" >> $TOUSLESPOSTESXML
1566  echo "</wpkg>" >> $TOUSLESPOSTESXML
1567  recode $script_charset..CP850 $TOUSLESPOSTESXML
1568  todos $TOUSLESPOSTESXML
1569  echo "Fichier $TOUSLESPOSTESXML cree."
1570  
1571  # on efface le fichier cree inutilement : non fonctionnel
1572  if [ -e $WPKGDIR/profiles/Touslespostes.xml ]; then
1573      rm -f $WPKGDIR/profiles/Touslespostes.xml
1574  fi
1575  
1576  # Initialisation de unattended.xml
1577  WPKGPROFILEUNATTEND=$WPKGDIR/profiles/unattended.xml
1578  echo "Creation du fichier $WPKGPROFILEUNATTEND pour les installations unattended."
1579  if [ -d "$WPKGDIR/profiles" ]; then
1580      mkdir -p "$WPKGDIR/profiles"
1581  fi
1582  echo -e "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\r
1583  <profiles>\r
1584  <profile id=\"unattended\">\r
1585  <depends profile-id=\"_TousLesPostes\"/>\r
1586  </profile>\r
1587  </profiles>\r" > $WPKGPROFILEUNATTEND
1588  
1589  
1590  # Initialisation de packages.xml
1591  if [ ! -e "$WPKGDIR/packages.xml" ]; then
1592      SE3=`gawk -F' *= *' '/netbios name/ {print $2}' /etc/samba/smb.conf`
1593      cat - > $WPKGDIR/packages.xml <<PACKAGESXML
1594  <?xml version="1.0" encoding="iso-8859-1"?>
1595  <packages>
1596      <package id="7za" name="7-Zip en ligne de commande" revision="442" reboot="false" priority="10">
1597          <check  type="file" condition="exists" path="%WinDir%\\7za.exe"/>
1598          <download url="http://www.etab.ac-caen.fr/serveurmalherbe/tools/7za/7za.exe" saveto="wpkg/tools/7za.exe" md5sum="885e9eb42889ca547f4e3515dcde5d3d"/>
1599          <install  cmd='"%WinDir%\\system32\\xcopy.exe" /Y %WPKGROOT%\\tools\\7za.exe %Windir%\\' />
1600          <remove   cmd='"%comspec%" /c del /Q /F %windir%\\7za.exe' />
1601      </package>
1602  </packages>
1603  PACKAGESXML
1604      if [ ! "$script_charset" == "ISO8859-15" ]; then
1605        recode $script_charset..ISO8859-15 $WPKGDIR/packages.xml
1606      fi
1607  
1608      echo "Fichier packages.xml cree."
1609  else
1610      echo "Le fichier packages.xml present est conserve."
1611  fi
1612  
1613  # Paquet deploiementimprimantes.xml obsolete : on le rend inactif en supprimant le script qu'il execute.
1614  # Une maj du xml rendra egalement ce package inoperant.
1615  if [ -e /var/se3/unattended/install/packages/windows/printers/ajoutpilotesimprimantes.bat ]; then
1616      echo "Suppression du script ajoutpilotesimprimantes.bat devenu obsolete en 2.0."
1617      rm -f /var/se3/unattended/install/packages/windows/printers/ajoutpilotesimprimantes.bat
1618  fi
1619  
1620  # Dossier destine a recevoir les rapports remontes par les postes
1621  # On donne droits rwx a adminse3
1622  if [ ! -d $WPKGDIR/rapports ] ; then
1623     mkdir $WPKGDIR/rapports
1624  fi
1625  
1626  # Dossier des fichiers ini de config des postes
1627  if [ ! -d $WPKGDIR/ini ] ; then
1628     mkdir $WPKGDIR/ini
1629  fi
1630  
1631  # Le fichier patche 'schtasks2k.exe', a-t-il deja ete genere par l'admin.
1632  if [ -e $WPKGDIR/tools/schtasks2k.exe ]; then
1633     echo "Le fichier patche schtasks2k.exe qui a ete genere par l'admin est disponible."
1634  fi
1635  
1636  # Mise en place des droits sur $WPKGDIR
1637  setfacl -b -R $WPKGDIR
1638  # www-se3 a tous les droits sur /var/se3/unattended/install
1639  # C'est peut-etre trop. A voir...
1640  chown -R www-se3 /var/se3/unattended/install
1641  setfacl -R -m u:www-se3:rwx -m d:u:www-se3:rwx /var/se3/unattended/install
1642  setfacl -R -m u:$ADMINSE3:rwx -m d:u:$ADMINSE3:rwx /var/se3/unattended/install/wpkg/rapports
1643  setfacl -R -m u::rwx -m g::rx -m o::rx -m d:m:rwx -m d:u::rwx -m d:g::rx -m d:o::rx /var/se3/unattended/install
1644  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1