[RESUELTO] Instalación de Office 365

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Menos
Mensajes: 13
Inscripción: 2 de agosto de 2019 - 9:05 a. m.

2 de agosto de 2019 - 09:32

Hola a todos

Bueno, comencé a usar WAPT hace unas semanas después de pasar algunos años en updateengine.

Esta migración no ha estado exenta de dificultades, pero hasta ahora va bien y tengo que afrontar una gran tarea: la implementación de Office365.

Entonces simplemente usé la herramienta de implementación de Windows para descargar la última versión de Office 365 y luego:

Generé mi propio archivo XML (config-installation.xml) para la instalación:

Código: Seleccionar todo

<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>
Luego crea un archivo por lotes para iniciar la instalación

Código: Seleccionar todo

@echo off
setup.exe /configure config-installation.xml
exit
Lo mismo se aplica al proceso de desinstalación; aquí está el archivo XML (config-uninstall.xml):

Código: Seleccionar todo

<Configuration>
<Display Level="None" AcceptEULA="True" />
<Property Name="FORCEAPPSHUTDOWN" Value="True" />
<Remove>
<Product ID="O365BusinessRetail">
</Product>
</Remove>
</Configuration>
y el archivo por lotes:

Código: Seleccionar todo

@echo off
setup.exe /configure config-uninstall.xml
exit
Cuando se ejecutan por separado, los dos archivos por lotes funcionan perfectamente y hacen lo que les pido

Entonces, para Wapt, creé el siguiente archivo setup.py:

Código: Seleccionar todo

# -*- 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 de instalación funciona perfectamente al reiniciar o apagar la máquina, sin embargo la parte de desinstalación no funciona en absoluto.

Para la desinstalación, aquí está la información que pude extraer de Windows:

Código: Seleccionar todo

sofware name: Microsoft Office 365 Business - fr-fr
Uninstall key: O365BusinessRetail - fr-fr
version: 16.0.11727.20244
Seguramente hay formas mucho más sencillas y limpias de hacerlo en todos los niveles, así que estoy totalmente a favor, especialmente si incorpora:

una instalación que se puede realizar sin necesidad de reiniciar la máquina
una desinstalación que funciona a través de la consola WAPT

Gracias de antemano por su ayuda, que también me permitirá aprender más sobre WAPT

Servidor Debian 9.9
WAPT 1.5.1.26
Estación de creación de paquetes W10
Cristóbal0110
Mensajes: 53
Inscripción: 11 de junio de 2019 - 12:04

2 de agosto de 2019 - 14:13

Hola !

Así que abordé este paquete para Office 365 Business (2019) la semana pasada...
Entonces me gustaría compartir mi setup.py:

Código: Seleccionar todo

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


En la raíz del paquete coloqué el archivo "setup.exe" así como el directorio "Office" descargado mediante el comando ejecutado anteriormente: setup.exe /download configuration.xml

Aquí está el contenido del archivo configuration.xml (pero depende de usted configurarlo como desee):

Código: Seleccionar todo

<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>
Y el contenido del archivo configurationUninstall.xml:

Código: Seleccionar todo

<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>
Como puede ver en el código, durante la instalación copio el archivo "setup.exe" y el archivo "ConfigurationUninstall.xml" en una carpeta creada en "Microsoft Office".
Luego lo uso para desinstalar...

Funciona perfectamente ;)

A+
Cristóbal.
Última edición realizada por Christophe0110 el 28 de junio de 2022 a las 08:18; editado 1 vez.
Menos
Mensajes: 13
Inscripción: 2 de agosto de 2019 - 9:05 a. m.

2 de agosto de 2019 - 15:16

¡Genial

, muchas gracias Christophe0110!

Bueno, ahora estoy de vacaciones, pero en cuanto vuelva al trabajo actualizaré mi Office.

Te mantendré al tanto.
Avatar de usuario
Ben
Mensajes: 10
Inscripciones: 7 nov 2019 - 17:19 horas.

7 de noviembre de 2019 - 17:26

Buen día,

También estoy planificando la implementación de O365. Basé mi plan en el trabajo de Christophe0110 (¡gracias a él, por cierto!), pero me encuentro con un problema.
El proceso de instalación funciona perfectamente. Se ejecuta correctamente y tiene en cuenta el archivo XML de configuración.

Sin embargo, la desinstalación falla: Puedo acceder al script correctamente (los archivos y la carpeta "OfficeClickToRunWAPTUninstall" se eliminan correctamente), pero O365 permanece instalado en el equipo. En la consola WAPT, el paquete ya no está visible en el equipo, como si todo hubiera ido bien.

Parece que la siguiente línea es el problema y evita que se inicie el instalador:

Código: Seleccionar todo

run('"' + makepath(programfiles32,'Microsoft Office','OfficeClickToRunWAPTUninstall','setup.exe') + r'" /configure ConfigurationUninstall.xml',timeout=2000,accept_returncodes=[1641,3010,0])
¿Alguien tiene alguna idea? Estoy perplejo

GRACIAS !
-------------------
Versión de WAPT: 1.7.4 (Edición Comunitaria)
Sistema operativo del servidor: Windows Server 2016
Administración/Creación de paquetes Sistema operativo de la máquina: Windows 10 1709
Avatar de usuario
Ben
Mensajes: 10
Inscripciones: 7 nov 2019 - 17:19 horas.

13 de noviembre de 2019 - 11:44

Resolví mi problema que era muy simple: se debía pasar la ruta absoluta al archivo XML para la desinstalación (al contrario de lo propuesto en el script anterior).

A continuación se muestra mi guión completo:

Código: Seleccionar todo

# -*- 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')
-------------------
Versión de WAPT: 1.7.4 (Edición Comunitaria)
Sistema operativo del servidor: Windows Server 2016
Administración/Creación de paquetes Sistema operativo de la máquina: Windows 10 1709
Cristóbal0110
Mensajes: 53
Inscripción: 11 de junio de 2019 - 12:04

14 de noviembre de 2019 - 14:57

Hola Ben,

eso es realmente extraño, porque a mí me funciona sin especificar la ruta completa al archivo XML...

Pero si funciona así, modificaré mi script por si acaso (nunca se sabe, puede que funcione para algunos y para otros no...).

¡Saludos!
Menos
Mensajes: 13
Inscripción: 2 de agosto de 2019 - 9:05 a. m.

24 de febrero de 2020 - 11:42

Hola,

disculpen, olvidé dar mi opinión como prometí, :ups: :ups:

Christophe0110. Funciona perfectamente tal como está.

Hice algunos ajustes menores y, sinceramente, funciona.

Gracias por compartirlo.
Cristóbal0110
Mensajes: 53
Inscripción: 11 de junio de 2019 - 12:04

2 de marzo de 2020 - 11:49

No fue nada ;)
srvmac
Mensajes: 3
Inscripción: 19 de agosto de 2020 - 09:34

19 de agosto de 2020 - 10:12

Hola a todos,

Me comunico con usted porque necesito instalar Office 365 y seguí su consejo y utilicé el archivo setup.py que me proporcionó.

A pesar de esto, hay un error de instalación del paquete cuando inicio la instalación desde la consola Wapt o desde la PC cliente a través de la biblioteca wapt.

El error es: una operación falló. ¿Desea forzar la instalación/desinstalación? Sí o no, no importa.

El archivo setup.exe se ejecuta correctamente localmente y generé correctamente la carpeta de Office en el directorio raíz con el comando `setup.exe /download installOfficeBusRet64.xml`. Esto descargó todos los archivos de Microsoft y los coloqué en la carpeta del paquete waptdev/office365 en la raíz.

Mi archivo de configuración:

Código: Seleccionar todo

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

Gracias por su ayuda.

Seb
Cristóbal0110
Mensajes: 53
Inscripción: 11 de junio de 2019 - 12:04

5 de enero de 2021 - 9:55 AM

Hola Seb,

Recién ahora veo tu mensaje mientras navego por mis mensajes antiguos...
Perdón por el retraso de 6 meses...

¿Pudiste resolver tu problema?

Cuando dices:
El archivo setup.exe se ejecuta correctamente localmente y generé correctamente la carpeta de Office en el directorio raíz con el comando `setup.exe /download installOfficeBusRet64.xml`. Esto descargó todos los archivos de Microsoft y los coloqué en la carpeta del paquete waptdev/office365 en la raíz.
Tenga en cuenta que estos archivos deben colocarse en una carpeta "Office" ubicada en el directorio del paquete (no los archivos directamente en la raíz del paquete).
Y deja el archivo setup.exe al lado de la carpeta "Office"...

A+
Cristóbal.
Bloqueado