[RISOLTO] Installazione di Office365

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Meno
Messaggi: 13
Registrazione: 2 agosto 2019 - ore 9:05

2 agosto 2019 - 09:32

Ciao a tutti

Bene, ho iniziato a usare WAPT qualche settimana fa, dopo aver trascorso alcuni anni su updateengine.

Questa migrazione non è stata priva di difficoltà, ma finora sta procedendo bene e ora devo affrontare un compito importante: la distribuzione di Office 365.

Quindi ho semplicemente utilizzato lo strumento di distribuzione di Windows per scaricare l'ultima versione di Office 365, quindi:

Ho generato il mio file XML (config-installation.xml) per l'installazione:

Codice: Seleziona tutto

<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>
Quindi creare un file batch per avviare l'installazione

Codice: Seleziona tutto

@echo off
setup.exe /configure config-installation.xml
exit
Lo stesso vale per il processo di disinstallazione; ecco il file XML (config-uninstall.xml):

Codice: Seleziona tutto

<Configuration>
<Display Level="None" AcceptEULA="True" />
<Property Name="FORCEAPPSHUTDOWN" Value="True" />
<Remove>
<Product ID="O365BusinessRetail">
</Product>
</Remove>
</Configuration>
e il file batch:

Codice: Seleziona tutto

@echo off
setup.exe /configure config-uninstall.xml
exit
Avviati separatamente, i due file batch funzionano perfettamente e fanno ciò che chiedo loro

Quindi, per Wapt, ho creato il seguente file setup.py:

Codice: Seleziona tutto

# -*- 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 parte di installazione funziona perfettamente quando si riavvia o si spegne la macchina, ma la parte di disinstallazione non funziona affatto.

Per la disinstallazione, ecco le informazioni che sono riuscito a estrarre da Windows:

Codice: Seleziona tutto

sofware name: Microsoft Office 365 Business - fr-fr
Uninstall key: O365BusinessRetail - fr-fr
version: 16.0.11727.20244
Ci sono sicuramente modi molto più semplici e puliti per farlo a tutti i livelli, quindi sono completamente a favore, soprattutto se incorpora:

un'installazione che può essere eseguita senza richiedere il riavvio della macchina
una disinstallazione che funziona tramite la console WAPT

Grazie in anticipo per il vostro aiuto, che mi permetterà anche di saperne di più su WAPT

Server Debian 9.9
Versione WAPT 1.5.1.26
Stazione di creazione pacchetti W10
Christophe0110
Messaggi: 53
Registrazione: 11 giugno 2019 - 12:04

2 agosto 2019 - 14:13

CIAO !

Quindi la settimana scorsa ho affrontato questo pacchetto per Office 365 Business (2019)...
Quindi vorrei condividere il mio setup.py:

Codice: Seleziona tutto

# -*- 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')


Nella radice del pacchetto ho posizionato il file "setup.exe" e la directory "Office" scaricata utilizzando il comando eseguito in precedenza: setup.exe /download configuration.xml

Ecco il contenuto del file configuration.xml (ma sta a te configurarlo come preferisci):

Codice: Seleziona tutto

<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>
E il contenuto del file configurationUninstall.xml:

Codice: Seleziona tutto

<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>
Come puoi vedere dal codice, durante l'installazione copio il file "setup.exe" e il file "ConfigurationUninstall.xml" in una cartella creata in "Microsoft Office".
Poi lo uso per la disinstallazione...

Funziona perfettamente ;)

A+
Chris.
Ultima modifica di Christophe0110 il 28 giugno 2022 alle 08:18, modificato 1 volta.
Meno
Messaggi: 13
Registrazione: 2 agosto 2019 - ore 9:05

2 agosto 2019 - 15:16

Ottimo

, grazie mille Christophe0110!

Va bene, ora sono in vacanza, ma non appena torno al lavoro aggiornerò sicuramente il mio Office.

Ti terrò aggiornato.
Avatar utente
Ben
Messaggi: 10
Registrazione: 7 novembre 2019 - 17:19

7 novembre 2019 - 17:26

Buongiorno,

Sto anche pianificando l'implementazione di O365. Ho basato il mio piano sul lavoro svolto da Christophe0110 (grazie a lui, tra l'altro!), ma sto riscontrando un problema.
Il processo di installazione funziona perfettamente. Procede correttamente e tiene conto del file XML di configurazione.

Tuttavia, la disinstallazione non riesce: riesco ad accedere allo script (i file e la cartella "OfficeClickToRunWAPTUninstall" vengono eliminati correttamente)... ma O365 rimane installato sul computer. Nella console WAPT, il pacchetto non è più visibile sul computer, come se tutto fosse andato liscio.

Sembra che il problema sia la seguente riga, che impedisce l'avvio del programma di installazione:

Codice: Seleziona tutto

run('"' + makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe') + r'" /configure ConfigurationUninstall.xml',timeout=2000,accept_returncodes=[1641,3010,0])
Qualcuno ha qualche idea? Sono perplesso

GRAZIE !
-------------------
Versione WAPT: 1.7.4 (Community Edition)
Sistema operativo del server: Windows Server 2016
Sistema operativo della macchina di amministrazione/creazione pacchetti: Windows 10 1709
Avatar utente
Ben
Messaggi: 10
Registrazione: 7 novembre 2019 - 17:19

13 novembre 2019 - 11:44

Ho risolto il mio problema, che era molto semplice: per la disinstallazione era necessario passare il percorso assoluto al file XML (contrariamente a quanto proposto nello script sopra).

Di seguito il mio script completo:

Codice: Seleziona tutto

# -*- 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')
-------------------
Versione WAPT: 1.7.4 (Community Edition)
Sistema operativo del server: Windows Server 2016
Sistema operativo della macchina di amministrazione/creazione pacchetti: Windows 10 1709
Christophe0110
Messaggi: 53
Registrazione: 11 giugno 2019 - 12:04

14 novembre 2019 - 14:57

Ciao Ben,

è davvero strano, perché a me funziona anche senza specificare il percorso completo del file XML...

Ma se funziona anche in quel modo, modificherò il mio script per sicurezza (non si sa mai, potrebbe funzionare per alcuni e non per altri...).

Saluti!
Meno
Messaggi: 13
Registrazione: 2 agosto 2019 - ore 9:05

24 febbraio 2020 - 11:42

Ciao,

che vergogna, ho dimenticato di darti un feedback come promesso, :oops: :oops:

Christophe0110. Funziona perfettamente così com'è.

Ho fatto qualche piccola modifica e, a dire il vero, funziona.

Grazie per averlo condiviso.
Christophe0110
Messaggi: 53
Registrazione: 11 giugno 2019 - 12:04

2 marzo 2020 - 11:49

Non era niente ;)
srvmac
Messaggi: 3
Iscrizioni: 19 agosto 2020 - 09:34

19 agosto 2020 - 10:12

Ciao a tutti,

Ti contatto perché ho bisogno di installare Office 365 e ho seguito il tuo consiglio e ho utilizzato il file setup.py che mi hai fornito.

Nonostante ciò, si verifica un errore di installazione del pacchetto quando avvio l'installazione dalla console Wapt o dal PC client tramite la libreria wapt.

L'errore è: operazione non riuscita. Vuoi forzare l'installazione/disinstallazione? Non importa se sì o no.

Il file setup.exe funziona correttamente in locale e ho generato correttamente la cartella Office nella directory principale utilizzando il comando `setup.exe /download installOfficeBusRet64.xml`. In questo modo sono stati scaricati tutti i file da Microsoft e ho inserito il tutto nella cartella del pacchetto waptdev/office365 nella directory principale.

Il mio file di configurazione:

Codice: Seleziona tutto

# -*- 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')

Grazie per l'aiuto.

Seb
Christophe0110
Messaggi: 53
Registrazione: 11 giugno 2019 - 12:04

5 gennaio 2021 - 9:55

Ciao Seb,

Vedo il tuo messaggio solo ora mentre scorro i miei vecchi messaggi...
Ci scusiamo per il ritardo di 6 mesi...

Sei riuscito a risolvere il tuo problema?

Quando dici:
Il file setup.exe funziona correttamente in locale e ho generato correttamente la cartella Office nella directory principale utilizzando il comando `setup.exe /download installOfficeBusRet64.xml`. In questo modo sono stati scaricati tutti i file da Microsoft e ho inserito il tutto nella cartella del pacchetto waptdev/office365 nella directory principale.
Si noti che questi file devono essere posizionati in una cartella "Office" situata nella directory del pacchetto (non i file direttamente nella radice del pacchetto).
E lascia il file setup.exe accanto alla cartella "Office"...

A+
Cristoforo.
Bloccato