<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div>Ben c'etait tout simple en faite, pour ceux que ça intéresse voila un setup.py pour office 2013 standard sur windows (7,8,10) 32 et 64 bits:<br></div><div><br data-mce-bogus="1"></div><div>Merci à tous pour votre aide ! <br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em># -*- coding: utf-8 -*-</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>from setuphelpers import *</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>import time</em></span><br><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>if iswin64():</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>    uninstallstring =['"C:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Office Setup Controller\Setup.exe" /uninstall STANDARD /config "C:\Program Files\Common Files\uninstall.xml"']</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>else:</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>     uninstallstring =['"C:\Program Files\Common Files\microsoft shared\OFFICE15\Office Setup Controller\Setup.exe" /uninstall STANDARD /config "C:\Program Files\Common Files\uninstall.xml"']</em></span><br><br><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>def install():</em></span><br><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>    def killsoft():</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>      for soft in ('WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'):</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>        if isrunning(soft):</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>           print ("closing %s" % soft)</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>           killalltasks(soft)</em></span><br><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>    softname = 'Microsoft Office Professionnel Standard 2013'</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>    check_installed_out = installed_softwares(softname)</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>    if not check_installed_out:</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            print('installing Office 2013')</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            killsoft()</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            cmd = '"setup.exe" /adminfile "silent.msp"'</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            time.sleep(30)</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            filecopyto("uninstall.xml",("C:\\Program Files\\Common Files\\"))</em></span><br><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>    else:</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            print('repair Office 2013')</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            killsoft()</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            cmd = '"setup.exe" /repair Standard /config repair.xml"'</em></span><br><span data-mce-style="color: #0000ff;" style="color: rgb(0, 0, 255);"><em>            run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])</em></span><br></div><div><br></div><div data-marker="__SIG_PRE__"><div>Cordialement. <br></div><div><br></div><div><img doc="Briefcase/didier.jpg" src="cid:b033670c82a1ba1a543aa3862b069e657959b65e@zimbra" data-mce-src="/home/didier.paulin@lepuyenvelay.fr/Briefcase/didier.jpg"></div></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><b>De: </b>"Didier Paulin" <didier.paulin@lepuyenvelay.fr><br><b>À: </b>"Denis Cardon" <denis.cardon@tranquil-it-systems.fr><br><b>Cc: </b>wapt@lists.tranquil.it<br><b>Envoyé: </b>Lundi 24 Août 2015 17:43:50<br><b>Objet: </b>Re: [Wapt] Paquet Microsoft Office<br></div><div><br></div><div data-marker="__QUOTED_TEXT__"><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000;"><div>Merci, avec vos informations j'ai bien avancé. La commande msiex.exe avec office 2013 renvoie effectivement un erreur fatal,  d’après les retour du web c'est normal..., il faut passer par un setup.exe /uninstall avec un fichiers de réponse xml.<br></div><br><div>Pour ceux que ça intéresse voila la commande pour un office standard :<br></div><br><div><em><span style="color: #0000ff;" data-mce-style="color: #0000ff;">uninstallstring =['"C:\Program Files\Common Files\microsoft shared\OFFICE15\Office Setup Controller\Setup.exe" /uninstall STANDARD /config "uninstall.xml"']</span></em></div><br><div>Le xml : <br></div><br><div><em><span style="font-size: 11pt; color: #0000ff;" data-mce-style="font-size: 11pt; color: #0000ff;"><Configuration Product="STANDARD"> </span></em><br><em><span style="font-size: 11pt; color: #0000ff;" data-mce-style="font-size: 11pt; color: #0000ff;"><Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /></span></em><br><em><span style="font-size: 11pt; color: #0000ff;" data-mce-style="font-size: 11pt; color: #0000ff;"><Setting Id="SETUP_REBOOT" Value="Never" /></span></em><br><em><span style="font-size: 11pt; color: #0000ff;" data-mce-style="font-size: 11pt; color: #0000ff;"></Configuration></span></em></div><br><div>La bonne nouvelle c'est que ça fonctionne bien <img data-zim-uri="DWT73" id="DWT73" src="data:image/gif;base64,R0lGODlhEgASAPQfAHlgDsbGxpZ6DOrPEcq2at7SMr+qTu/v7vPwWdC9HlI9DbSYDPzwNmhUEsSrGfvmHvr6+uDYuv79cfryR8S8nbqeLtfX1tXDMf75N7mbHMKmMv77WvjaEiYKAqqKAgAAACH5BAUAAB8ALAAAAAASABIAQAXV4CeKUGmWo3gsEuYyz8MNA2dvyzFCFmVoDofGQLFAUhBDQjK5XBgM50SSMBwhFMcmBuh4O4DYxkE5kgiLC0IiQVwWBPMnWdi4FIp7HrMpWA8ZCAwDHjaGHB4DDxMZOjwaCQgYMA8MGAgJGkYpcxEGGR4eGQYRciMHFQ4IGxNQExsIDhU6nSytDQpQuAxTC6WACBMuAA3DxRgTCI0rLTCHhjUTOQcGBQwcAgAJNgkAAhwMfgcQ1AlbDw4CAg5iVeMqFgYOBa+sBQ4GFrRIBxYB/wH0mQoBADs=" data-mce-src="data:image/gif;base64,R0lGODlhEgASAPQfAHlgDsbGxpZ6DOrPEcq2at7SMr+qTu/v7vPwWdC9HlI9DbSYDPzwNmhUEsSrGfvmHvr6+uDYuv79cfryR8S8nbqeLtfX1tXDMf75N7mbHMKmMv77WvjaEiYKAqqKAgAAACH5BAUAAB8ALAAAAAASABIAQAXV4CeKUGmWo3gsEuYyz8MNA2dvyzFCFmVoDofGQLFAUhBDQjK5XBgM50SSMBwhFMcmBuh4O4DYxkE5kgiLC0IiQVwWBPMnWdi4FIp7HrMpWA8ZCAwDHjaGHB4DDxMZOjwaCQgYMA8MGAgJGkYpcxEGGR4eGQYRciMHFQ4IGxNQExsIDhU6nSytDQpQuAxTC6WACBMuAA3DxRgTCI0rLTCHhjUTOQcGBQwcAgAJNgkAAhwMfgcQ1AlbDw4CAg5iVeMqFgYOBa+sBQ4GFrRIBxYB/wH0mQoBADs="> J'ai juste un problème pour cette fameuse "uninstallstring" car elle diffère de windows 32 et 64 bits.... (<em><span style="color: #0000ff;" data-mce-style="color: #0000ff;">C:\Program Files</span></em> et <em><span style="color: #0000ff;" data-mce-style="color: #0000ff;">C:\Program Files</span></em> (x86)<br></div><br><br><div>Question : Comment faire un if <em>iswin64() /else:</em> sur un uninstallstring ?<br></div><br><br><br><div>Merci d'avance  !. <br></div><div><br><br></div><br><hr id="zwchr"><div><b>De: </b>"Denis Cardon" <denis.cardon@tranquil-it-systems.fr><br><b>À: </b>"Didier Paulin" <didier.paulin@lepuyenvelay.fr>, "Fonteneau Simon" <sfonteneau@stemarie-aizenay.fr><br><b>Cc: </b>wapt@lists.tranquil.it<br><b>Envoyé: </b>Lundi 24 Août 2015 13:32:08<br><b>Objet: </b>Re: [Wapt] Paquet Microsoft Office<br></div><br><div>Bonjour Didier,<br><br>> Et pour la desintall avez vous une idée ? :<br>><br>> Par contre la desintall me retourne : /"returns code 1603"/ et ne se<br>> desinstall pas. (j'ai bien vérifié et modifier la uninstallkey)<br><br>l'erreur MSI 1603, "erreur Fatale", peut avoir un peu n'importe quoi <br>comme cause. Quand on a cette erreur, le mieux c'est de lancer le <br>désinstalleur en ligne de commande SANS les flags silencieux, et de voir <br>le message d'erreur visuellement. Peut être que l'application n'était <br>pas fermé par exemple...<br><br>Cordialement,<br><br>Denis Cardon<br><br><br>><br>><br>><br>> Cordialement.<br>><br>><br>> ------------------------------------------------------------------------<br>> *De: *"Fonteneau Simon" <sfonteneau@stemarie-aizenay.fr><br>> *À: *"Denis Cardon" <denis.cardon@tranquil-it-systems.fr>,<br>> wapt@lists.tranquil.it<br>> *Envoyé: *Lundi 24 Août 2015 10:40:19<br>> *Objet: *Re: [Wapt] Paquet Microsoft Office<br>><br>> Bonjour Denis<br>><br>> Effectivement je l'intègre depuis que j'ai eu un soucis avec<br>> libre-office une fois.<br>> Le logiciel était considéré comme installé par wapt mais non présent sur<br>> la machine. Un code erreur 0 peut être.<br>><br>> Effectivement le installed_softwares() n'indique pas forcement que le<br>> paquet est bien installée.<br>> Du coup j'intègre aussi parfois un test de fichier avec numéro de<br>> version.  (Je minimise les risques)<br>><br>> Hubert m'avais parlée d’intégrer la vérification de la présence de la<br>> uninstallkey a la fin de l'installation (puisque si elle n'est pas<br>> présente ce ne serait pas logique).<br>><br>> Merci beaucoup pour ces info Denis<br>><br>> Simon<br>> http://blog.lesfourmisduweb.org<br>><br>><br>><br>><br>> Le 24/08/2015 10:21, Denis Cardon a écrit :<br>>  > Bonjour Simon,<br>>  ><br>>  > ...<br>>  >> A la fin du l'installation on test si le logiciel est présent dans la<br>>  >> liste des logiciels.<br>>  >> Si il n'est pas présent, on génère une erreur pour que la machine<br>>  >> apparaisse en erreur dans la console et retente d'installer le logiciel<br>>  >> au prochain upgrade.<br>>  >><br>>  >> /check_installed_out = installed_softwares(softname)/<br>>  >> /    if not check_installed_out:/<br>>  >> /        error('End audit did not find the software.')<br>>  >> /<br>>  >><br>>  >> Ce test n'est pas indispensable, d’ailleurs les paquets de tranquil.it<br>>  >> ne les intègres pas, mais comme je viens du monde wpkg, j'ai conservée<br>>  >> mes vielles habitudes.<br>>  ><br>>  > par rapport à cette vérification, on ne la met pas dans les paquets<br>>  > car on part du principe que si l'installeur renvoie un bon code de<br>>  > retour, c'est qu'il a bien fait son boulot. D'une certaine manière, le<br>>  > fait de vérifier la chaine de caractère avec la fonction<br>>  > installed_softwares() revient aussi à faire confiance à ce que dit<br>>  > l'installeur . Il pourrait tout à fait créer cette entrée de<br>>  > désinstallation, sans pour autant avoir bien installé le logiciel, de<br>>  > la même manière qu'il pourrait tout à fait renvoyer un code d'erreur 0<br>>  > (ie installation ok) alors qu'il n'a pas tout bien installé.<br>>  ><br>>  > Par contre c'est vrai que l'on pourrait tout à fait intégrer dans le<br>>  > code par défaut WAPT la vérification que la chaine de désinstallation<br>>  > est bien présente suite à l'installation. Cela ne devrait pas être<br>>  > très compliqué, et pourrait être une vérification supplémentaire que<br>>  > le paquet est bien fait, ie que la désinstallation est correctement<br>>  > configuré.<br>>  ><br>>  > D'ailleurs la fonction install_msi_if_needed() fait déjà cela tout<br>>  > seul. Ca pourrait être généralisé.<br>>  ><br>>  > Merci beaucoup pour ces remarques Simon, et à bientôt,<br>>  ><br>>  > Denis<br>>  ><br>>  >><br>>  >> Simon<br>>  >><br>>  >><br>>  >><br>>  >><br>>  >> Si vous n'installez pas cette version, effectivement<br>>  >><br>>  >><br>>  >> Le 21/08/2015 16:44, Bastien HERMITTE a écrit :<br>>  >>> Bonjour,<br>>  >>><br>>  >>> Le programme ne trouve pas le nom défini par la variable "softname"<br>>  >>> dans la liste des programmes installé.<br>>  >>> C'est pour cela qu'il génère l'erreur "End audit did not find the<br>>  >>> software".<br>>  >>> Avez vous vérifié que cette variable est bien renseignée avec le nom<br>>  >>> exacte du programme ?<br>>  >>><br>>  >>> Cordialement,<br>>  >>> Bastien<br>>  >>><br>>  >>> Le 21/08/2015 16:35, Didier Paulin a écrit :<br>>  >>>> J'avance, en enlevant à partie de la ligne 30 du setup.py , l'install<br>>  >>>> se passe bien:<br>>  >>>><br>>  >>>> /check_installed_out = installed_softwares(softname)/<br>>  >>>> /    if not check_installed_out:/<br>>  >>>> /        error('End audit did not find the software.')/<br>>  >>>><br>>  >>>> Par contre la desintall me retourne : /"returns code 1603"/ et ne se<br>>  >>>> desinstall pas. (j'ai bien vérifié et modifier la uninstallkey)<br>>  >>>><br>>  >>>> Une idée ?<br>>  >>>><br>>  >>>><br>>  >>>><br>>  >>>> Cordialement.<br>>  >>>><br>>  >>>><br>>  >>>><br>> ------------------------------------------------------------------------<br>>  >>>><br>>  >>>> *De: *"Didier Paulin" <didier.paulin@lepuyenvelay.fr><br>>  >>>> *À: *"Fonteneau Simon" <sfonteneau@stemarie-aizenay.fr><br>>  >>>> *Cc: *wapt@lists.tranquil.it<br>>  >>>> *Envoyé: *Vendredi 21 Août 2015 15:43:57<br>>  >>>> *Objet: *Re: [Wapt] Paquet Microsoft Office<br>>  >>>><br>>  >>>> Après un premier test, le paquet install bien Office avec la prise en<br>>  >>>> compte du silent.msp mais le serveur wapt reçois l'erreur suivante et<br>>  >>>> tante en vain de réinstaller le paquet :<br>>  >>>><br>>  >>>><br>>  >>>> /2015-08-21 14:43:33,115 CRITICAL Fatal error in install script:<br>>  >>>> EWaptSetupExcept/<br>>  >>>> /ion: Fatal error : End audit did not find the software.:Traceback<br>>  >>>> (most recent c/<br>>  >>>> /all last):/<br>>  >>>> /  File "C:\wapt\common.py", line 3266, in install_wapt/<br>>  >>>> /    exitstatus = setup.install()/<br>>  >>>> /  File "c:\users\utilis~1\appdata\local\temp\waptbpkrt6\setup.py",<br>>  >>>> line 32, in i/<br>>  >>>> /nstall/<br>>  >>>> /    error('End audit did not find the software.')/<br>>  >>>> /  File "C:\wapt\setuphelpers.py", line 3160, in error/<br>>  >>>> /    raise EWaptSetupException(u'Fatal error : %s' % reason)/<br>>  >>>> /EWaptSetupException: Fatal error : End audit did not find the<br>>  >>>> software./<br>>  >>>><br>>  >>>> /2015-08-21 14:43:33,424 CRITICAL Package nt-office2013 not installed<br>>  >>>> due/<br>>  >>>> / to errors : EWaptSetupException: Fatal error : End audit did not<br>>  >>>> find the softw/<br>>  >>>> /are./<br>>  >>>><br>>  >>>> /Results :/<br>>  >>>><br>>  >>>> / === install packages ===/<br>>  >>>> /  ntoffice2013          | nt-office2013 (2013-0)/<br>>  >>>><br>>  >>>> / === errors packages ===/<br>>  >>>> /  nt-office2013          | nt-office2013 (2013-0)/<br>>  >>>><br>>  >>>><br>>  >>>><br>>  >>>> Cordialement.<br>>  >>>><br>>  >>>><br>>  >>>><br>> ------------------------------------------------------------------------<br>>  >>>><br>>  >>>> *De: *"Fonteneau Simon" <sfonteneau@stemarie-aizenay.fr><br>>  >>>> *À: *wapt@lists.tranquil.it<br>>  >>>> *Envoyé: *Jeudi 20 Août 2015 15:35:46<br>>  >>>> *Objet: *Re: [Wapt] Paquet Microsoft Office<br>>  >>>><br>>  >>>> Petite précision, il ne prend pas en charge l'activation<br>>  >>>><br>>  >>>> A vous donc de mettre un system d'activation kms en place<br>>  >>>><br>>  >>>> Simon<br>>  >>>><br>>  >>>> Le 20/08/2015 15:23, Fonteneau Simon a écrit :<br>>  >>>><br>>  >>>>     Bonjour<br>>  >>>><br>>  >>>>     Ici:<br>>  >>>><br>>  >>>> http://wapt.lesfourmisduweb.org/wapt/smp-msoffice_2013-0_all.wapt<br>>  >>>><br>>  >>>>     Fonctionnement du paquet, si Microsoft Office 2013 est déjà<br>>  >>>>     présent, une réparation est lancée.<br>>  >>>><br>>  >>>>     Si microsoft office 2013 n'est pas présent, une installation est<br>>  >>>>     lancée.<br>>  >>>><br>>  >>>>     Marche a suivre Pour mettre en fonctionnement le paquet:<br>>  >>>><br>>  >>>>     Copier le contenue de l'iso msoffice 2013 dans<br>>  >>>>     c:\waptdev\my-msoffice-wapt\<br>>  >>>>     Créer le fichier silent.msp avec la commande<br>>  >>>>     c:\waptdev\my-msoffice-wapt\setup.exe /admin<br>>  >>>><br>>  >>>>     Simon<br>>  >>>><br>>  >>>><br>>  >>>><br>>  >>>>     Le 20/08/2015 15:18, Didier Paulin a écrit :<br>>  >>>><br>>  >>>>         Bonjour, avant de me lancer dans un paquet d’installation<br>>  >>>>         d'office (de 2007 à 2013) , je me suis dit que peut être<br>>  >>>>         quelqu'un dans la communauté c'est déjà  frotter à ce<br>>  >>>> logiciel .<br>>  >>>><br>>  >>>>         J'en appelle à votre bon cœur, si quelqu'un à un setup.py que<br>>  >>>>         je puisse me servir comme exemple, je suis preneur<br>>  >>>><br>>  >>>>         Merci d'avance.<br>>  >>>><br>>  >>>>         Cordialement.<br>>  >>>><br>>  >>>><br>>  >>>><br>>  >>>>         _______________________________________________<br>>  >>>>         WAPT mailing list<br>>  >>>>         WAPT@lists.tranquil.it<br>>  >>>>         http://lists.tranquil.it/listinfo/wapt<br>>  >>>><br>>  >>>><br>>  >>>><br>>  >>>><br>>  >>>> _______________________________________________<br>>  >>>> WAPT mailing list<br>>  >>>> WAPT@lists.tranquil.it<br>>  >>>> http://lists.tranquil.it/listinfo/wapt<br>>  >>>><br>>  >>>> _______________________________________________<br>>  >>>> WAPT mailing list<br>>  >>>> WAPT@lists.tranquil.it<br>>  >>>> http://lists.tranquil.it/listinfo/wapt<br>>  >>>><br>>  >>>><br>>  >>>> _______________________________________________<br>>  >>>> WAPT mailing list<br>>  >>>> WAPT@lists.tranquil.it<br>>  >>>> http://lists.tranquil.it/listinfo/wapt<br>>  >>><br>>  >>><br>>  >>><br>>  >>> _______________________________________________<br>>  >>> WAPT mailing list<br>>  >>> WAPT@lists.tranquil.it<br>>  >>> http://lists.tranquil.it/listinfo/wapt<br>>  >><br>>  >><br>>  >><br>>  >> _______________________________________________<br>>  >> WAPT mailing list<br>>  >> WAPT@lists.tranquil.it<br>>  >> http://lists.tranquil.it/listinfo/wapt<br>>  >><br>>  ><br>><br>> _______________________________________________<br>> WAPT mailing list<br>> WAPT@lists.tranquil.it<br>> http://lists.tranquil.it/listinfo/wapt<br><br>-- <br>Denis Cardon<br>Tranquil IT Systems<br>Les Espaces Jules Verne, bâtiment A<br>12 avenue Jules Verne<br>44230 Saint Sébastien sur Loire<br>tel : +33 (0) 2.40.97.57.55<br>http://www.tranquil-it-systems.fr<br></div></div><br>_______________________________________________<br>WAPT mailing list<br>WAPT@lists.tranquil.it<br>http://lists.tranquil.it/listinfo/wapt<br></div></div></body></html>