[RESOLU] Installation de Office365

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
Minus
Messages : 13
Inscription : 02 août 2019 - 09:05

02 août 2019 - 09:32

Bonjour à tous

Bon je me suis mis à WAPT il y a quelques semaines après avoir passé quelques années sur updatengine.

Cette migration ne s'est pas faite sans quelques douleurs, mais cela se passe bien pour le moment et je dois attaquer un gros morceau: le deploiement de Office365.

J'ai donc simplement utilisé l'outil de deploiement de windows pour télécharger la dernière version de Office365 puis:

Généré mon propre fichier xml (config-installation.xml) pour l'installation:

Code : Tout sélectionner

<Configuration>
  <Info Description="Domaine Office Customization V1" />
  <Add OfficeClientEdition="64" Channel="Monthly" ForceUpgrade="TRUE">
    <Product ID="O365BusinessRetail">
      <Language ID="fr-fr" />
      <ExcludeApp ID="Groove" />
      <ExcludeApp ID="Lync" />
    </Product>
  </Add>
  <Property Name="SharedComputerLicensing" Value="0" />
  <Property Name="PinIconsToTaskbar" Value="TRUE" />
  <Property Name="SCLCacheOverride" Value="0" />
  <Property Name="AUTOACTIVATE" Value="FALSE" />
  <Updates Enabled="TRUE" />
  <Updates Branch="Business" />
  <RemoveMSI>
    <IgnoreProduct ID="VisPro" />
    <IgnoreProduct ID="VisStd" />
  </RemoveMSI>
  <AppSettings>
    <Setup Name="Company" Value="Domaine" />
    <User Key="software\microsoft\office\16.0\excel\options" Name="defaultformat" Value="51" Type="REG_DWORD" App="excel16" Id="L_SaveExcelfilesas" />
    <User Key="software\microsoft\office\16.0\powerpoint\options" Name="defaultformat" Value="27" Type="REG_DWORD" App="ppt16" Id="L_SavePowerPointfilesas" />
    <User Key="software\microsoft\office\16.0\word\options" Name="defaultformat" Value="" Type="REG_SZ" App="word16" Id="L_SaveWordfilesas" />
  </AppSettings>
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>
Puis créé un fichier bat pour le lancement de l'installation

Code : Tout sélectionner

@echo off
setup.exe /configure config-installation.xml
exit
idem pour la partie désinstallation dont voici le xml (config-uninstall.xml):

Code : Tout sélectionner

<Configuration>
<Display Level="None" AcceptEULA="True" />
<Property Name="FORCEAPPSHUTDOWN" Value="True" />
<Remove>
<Product ID="O365BusinessRetail">
</Product>
</Remove>
</Configuration>
et le fichier bat:

Code : Tout sélectionner

@echo off
setup.exe /configure config-uninstall.xml
exit
lancé séparement les 2 fichiers bat fonctionnent parfaitement et font ce que je leur demande

donc derrière pour wapt, j'ai créé le fichier setup.py suivant:

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
	print('installing domaine-Office365Business')
	run('InstallOffice365.bat')

def uninstall():
	print('uninstalling domaine-Office365Business')
	run('UninstallOffice365.bat')
La partie installation fonctionne à merveille lors du redémarrage ou de l'arrêt de la machine, par contre la partie désinstallation ne fonctionne pas du tout.

Pour la desinstallatiion voila les infos que j'ai pu extraire de windows:

Code : Tout sélectionner

sofware name: Microsoft Office 365 Business - fr-fr
Uninstall key: O365BusinessRetail - fr-fr
version: 16.0.11727.20244
Il y a surement beaucoup plus simple et beaucoup plus propre à faire à tous les niveaux donc je suis preneur surtout en intégrant:

une installation qui se fasse sans obligation du redémarrage de la machine
une desinstallation qui fonctionne via la console WAPT

Merci par avance pour votre coup de main qui me permettra en même temps d'en apprendre plus sur WAPT

Serveur Debian 9.9
WAPT 1.5.1.26
Station création paquet sous W10
Christophe0110
Messages : 53
Inscription : 11 juin 2019 - 12:04

02 août 2019 - 14:13

Salut !

Alors je me suis attaqué à ce paquet pour Office 365 Business (2019) la semaine passée...
Donc je me permet de partager mon setup.py :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():

    if not installed_softwares(u'O365BusinessRetail'):
        print('Microsoft Office 365 Business 2019 : Installing...')

        killalltasks(['WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'])

        run(u'setup.exe /configure Configuration.xml',timeout=2000,accept_returncodes=[1641,3010,0])

        print('Microsoft Office 365 Business 2019 : Installation complete')
    else:
        print('Microsoft Office 365 Business 2019 : Already installed !')

    if not isdir(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall')):
        mkdirs(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall'))
    filecopyto('setup.exe',makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe'))
    filecopyto('ConfigurationUninstall.xml',makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','ConfigurationUninstall.xml'))

def uninstall():

    print('Microsoft Office 365 Business 2019 : Uninstalling...')

    #Closing applications :
    killalltasks(['WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'])

    #Uninstalling :
    if installed_softwares(u'O365BusinessRetail'):
        if isfile(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe')):
            run('"' + makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe') + r'" /configure ConfigurationUninstall.xml',timeout=2000,accept_returncodes=[1641,3010,0])
            remove_file(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe'))
            remove_file(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','ConfigurationUninstall.xml'))
            if dir_is_empty(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall')):
                remove_tree(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall'))

    print('Microsoft Office 365 Business 2019 : Uninstallation complete')


A la racine du paquet, j'ai placé le fichier "setup.exe" ainsi que le répertoire "Office" téléchargé grâce à la commande préalablement exécutée : setup.exe /download configuration.xml

Voici le contenu du fichier configuration.xml (mais c'est à toi de le configurer à ta guise) :

Code : Tout sélectionner

<Configuration ID="30ca9b8e-4c43-4a87-a12f-1e5966fdce99">
  <Info Description="NomSociete" />
  <Add OfficeClientEdition="32" Channel="Insiders" ForceUpgrade="TRUE">
    <Product ID="O365BusinessRetail">
      <Language ID="fr-fr" />
      <ExcludeApp ID="Groove" />
      <ExcludeApp ID="Lync" />
    </Product>
    <Product ID="ProofingTools">
      <Language ID="en-us" />
    </Product>
  </Add>
  <Property Name="SharedComputerLicensing" Value="0" />
  <Property Name="PinIconsToTaskbar" Value="TRUE" />
  <Property Name="SCLCacheOverride" Value="0" />
  <Property Name="AUTOACTIVATE" Value="FALSE" />
  <Updates Enabled="TRUE" />
  <RemoveMSI>
    <IgnoreProduct ID="VisPro" />
    <IgnoreProduct ID="VisStd" />
  </RemoveMSI>
  <AppSettings>
    <Setup Name="Company" Value="NomSociete" />
    <User Key="software\microsoft\office\16.0\access\security" Name="vbawarnings" Value="1" Type="REG_DWORD" App="access16" Id="L_VBAWarningsPolicy" />
    <User Key="software\microsoft\office\16.0\excel\options" Name="defaultformat" Value="51" Type="REG_DWORD" App="excel16" Id="L_SaveExcelfilesas" />
    <User Key="software\microsoft\office\16.0\powerpoint\options" Name="defaultformat" Value="27" Type="REG_DWORD" App="ppt16" Id="L_SavePowerPointfilesas" />
    <User Key="software\microsoft\office\16.0\word\options" Name="defaultformat" Value="" Type="REG_SZ" App="word16" Id="L_SaveWordfilesas" />
  </AppSettings>
  <Display Level="None" AcceptEULA="TRUE" />
  <Logging Level="Off" />
</Configuration>
Et le contenu du fichier configurationUninstall.xml :

Code : Tout sélectionner

<Configuration>
  <Display Level="None" AcceptEULA="TRUE" />
  <Property Name="FORCEAPPSHUTDOWN" Value="True" />
  <Remove>
    <Product ID="O365BusinessRetail">
      <Language ID="fr-fr" />
    </Product>
  </Remove>
  <Logging Level="Off" />
</Configuration>
Comme tu pourras le comprendre via le code, je copie durant l'installation le fichier "setup.exe" ainsi que le fichier "ConfigurationUninstall.xml" dans un dossier créé sous "Microsoft Office".
Ensuite, je l'utilise pour la désinstallation...

Ca fonctionne parfaitement ;)

A+
Chris.
Dernière modification par Christophe0110 le 28 juin 2022 - 08:18, modifié 1 fois.
Minus
Messages : 13
Inscription : 02 août 2019 - 09:05

02 août 2019 - 15:16

re

genial, un grand merci Christophe0110

bon la c'est vacances pour moi mais dés mon retour au boulot je ne manquerai pas de mettre à jour mon office.

Je te tiendrais au courant.
Avatar de l’utilisateur
Ben
Messages : 10
Inscription : 07 nov. 2019 - 17:19

07 nov. 2019 - 17:26

Bonjour,

Je suis également en pleine réflexion pour le déploiement d'O365. Je me suis basé sur le travail effectué par Christophe0110 (merci à lui au passage !) mais je rencontre un problème.
Pour l'installation, tout fonctionne parfaitement. Elle s'effectue correctement et tient compte du fichier XML de configuration.

Par contre, pour la désinstallation, ça coince : je rentre bien dans le script (les fichiers et le dossier "OfficeClickToRunWAPTUninstall" se supprime bien) ... mais O365 reste installé sur le poste. Côté console WAPT, le package n'est plus visible sur le poste, comme si tout s'était bien passé.

A priori, c'est la ligne suivante qui coince et ne lance pas l'installeur :

Code : Tout sélectionner

run('"' + makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe') + r'" /configure ConfigurationUninstall.xml',timeout=2000,accept_returncodes=[1641,3010,0])
L'un de vous aurait une idée, je sèche ?

Merci !
-------------------
Version de WAPT : 1.7.4 (Community Edition)
OS du serveur : Windows Server 2016
OS de la machine d'administration/création des paquets : Windows 10 1709
Avatar de l’utilisateur
Ben
Messages : 10
Inscription : 07 nov. 2019 - 17:19

13 nov. 2019 - 11:44

J'ai résolu mon problème qui était tout bête : il fallait passer le chemin absolu vers le fichier XML pour la désinstallation (contrairement à ce qui était proposé dans le script au dessus).

Ci-dessous mon script complet :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():

    if not installed_softwares(u'O365BusinessRetail'):
        print('Microsoft Office 365 Business 2019 : Installation...')

        killalltasks(['WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'])

        run(u'setup.exe /configure install.xml',timeout=2000,accept_returncodes=[1641,3010,0])

        print('Microsoft Office 365 Business 2019 : Installation complete')
    else:
        print('Microsoft Office 365 Business 2019 : Already installed !')

    if not isdir(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall')):
        mkdirs(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall'))
    filecopyto('setup.exe',makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe'))
    filecopyto('uninstall.xml',makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','uninstall.xml'))
    filecopyto('uninstall.bat',makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','uninstall.bat'))

def uninstall():

    print('Microsoft Office 365 Business 2019 : Uninstalling...')

    uninstallstring ='"%s\Microsoft Office\OfficeClickToRunWAPTUninstall\setup.exe" /configure "%s\Microsoft Office\OfficeClickToRunWAPTUninstall\uninstall.xml"' % (programfiles32,programfiles32)

    #Closing applications :
    killalltasks(['WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'])

    #Uninstalling :
    if installed_softwares(u'O365BusinessRetail'):
        print('O365 a ete trouve.')
        if isfile(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe')):
            print('Setup.exe trouve. Lancement de la commande de desinstallation ('+uninstallstring+')')

            run(uninstallstring,timeout=2000,accept_returncodes=[1641,3010,0])

            print('Nettoyage des fichiers de desinstallation.')
            remove_file(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe'))
            remove_file(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','uninstall.xml'))
            remove_file(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','uninstall.bat'))

            print('Suppression du dossier.')
            if dir_is_empty(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall')):
                remove_tree(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall'))

    print('Microsoft Office 365 Business 2019 : Uninstallation complete')
-------------------
Version de WAPT : 1.7.4 (Community Edition)
OS du serveur : Windows Server 2016
OS de la machine d'administration/création des paquets : Windows 10 1709
Christophe0110
Messages : 53
Inscription : 11 juin 2019 - 12:04

14 nov. 2019 - 14:57

Bonjour Ben,

Etrange en effet car chez moi, ça fonctionne sans donner le chemin complet vers le fichier xml...

Mais si ça marche comme ça, je modifierai mon script par sécurité (on ne sait jamais que chez certain ça passe et chez d'autres pas...).

A+
Minus
Messages : 13
Inscription : 02 août 2019 - 09:05

24 févr. 2020 - 11:42

Bonjour

Honte à moi j'ai oublié de faire un retour comme promis :oops: :oops:

Christophe0110 ca fonctionne parfaitement comme tel

J'ai fait quelques petits ajustements de rigueur et franchement ca fonctionne .

Merci pour ton partage.
Christophe0110
Messages : 53
Inscription : 11 juin 2019 - 12:04

02 mars 2020 - 11:49

De rien ;)
srvmac
Messages : 3
Inscription : 19 août 2020 - 09:34

19 août 2020 - 10:12

Bonjour à tous,

Je vous contacte car je dois installer Office 365 et j'ai suivi vos conseils et utilisé le setup.py proposé.

Malgré cela, il y a une erreur d'installation du paquet lorsque je lance l'installation depuis la console Wapt ou depuis le pc client via la bibliothèque wapt.

L'erreur est : une opération a échouée, voulez vous forcer l'installation / désinstallation ? Oui ou non importe peu.

Le fichier setup.exe se lance bien en local et j'ai bien généré le dossier Office dans le répertoire à la racine à partir de la commande setup.exe /download installOfficeBusRet64.xml. Cela a téléchargé tous les fichiers depuis MS et j'ai tout mis à la racine dans le dossier du paquet waptdev/office365.

Mon fichier de conf :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():

    if not installed_softwares(u'O365BusinessRetail'):
        print('Microsoft Office 365 Business 2019 : Installing...')

        killalltasks(['WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'])

        run(u'setup.exe /configure installOfficeBusRet64.xml',timeout=2000,accept_returncodes=[1641,3010,0])

        print('Microsoft Office 365 Business 2019 : Installation complete')
    else:
        print('Microsoft Office 365 Business 2019 : Already installed !')

    if not isdir(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall')):
        mkdirs(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall'))
    filecopyto('setup.exe',makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe'))
    filecopyto('ConfigurationUninstall.xml',makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','ConfigurationUninstall.xml'))

def uninstall():

    print('Microsoft Office 365 Business 2019 : Uninstalling...')

    #Closing applications :
    killalltasks(['WINWORD.EXE','POWERPNT.EXE','EXCEL.exe','MSPUB.EXE','MSACCESS.EXE','INFOPATH.EXE','lync.exe','ONENOTE.EXE','OUTLOOK.EXE','ONENOTEM.EXE','MSOSYNC.EXE','GROOVE.EXE'])

    #Uninstalling :
    if installed_softwares(u'O365BusinessRetail'):
        if isfile(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe')):
            run('"' + makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe') + r'" /configure ConfigurationUninstall.xml',timeout=2000,accept_returncodes=[1641,3010,0])
            remove_file(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe'))
            remove_file(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','ConfigurationUninstall.xml'))
            if dir_is_empty(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall')):
                remove_tree(makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall'))

    print('Microsoft Office 365 Business 2019 : Uninstallation complete')

Merci pour votre aide.

Seb
Christophe0110
Messages : 53
Inscription : 11 juin 2019 - 12:04

05 janv. 2021 - 09:55

Bonjour Seb,

Je vois seulement ton message maintenant en parcourant mes anciens messages...
Désolé pour ces 6 mois de retard...

As-tu pu résoudre ton problème ?

Quand tu dis :
Le fichier setup.exe se lance bien en local et j'ai bien généré le dossier Office dans le répertoire à la racine à partir de la commande setup.exe /download installOfficeBusRet64.xml. Cela a téléchargé tous les fichiers depuis MS et j'ai tout mis à la racine dans le dossier du paquet waptdev/office365.
Attention qu'il faut placer ces fichiers dans un dossier "Office" placé dans le répertoire du paquet (pas les fichiers directement à la racine du paquet).
Et laisser le setup.exe à côté de ce dossier "Office"...

A+
Christophe.
Verrouillé