Página 2 de 3
Re: Paquete de OFFICE 2016
Publicado: 3 de mayo de 2017 - 16:20
por fludo67
Tengo dos rutinas: una para Office 365 y otra para los complementos de Office (esto me ha sucedido en bastantes máquinas con Office 2007: #error -2146368439)
Código: Seleccionar todo
def uninstall_office_modules():
print('Suppression des anciens modules office..')
check_installed_soft = installed_softwares('Microsoft Office System')
if check_installed_soft:
for uninstall in check_installed_soft:
key=uninstall['key']
if installed_softwares(uninstallkey=key):
cmd = WAPT.uninstall_cmd(uninstall['key'])
run(cmd)
def uninstall_office365():
print('Suppression Office 365')
check_installed_soft = installed_softwares('office 365')
if check_installed_soft:
for uninstall in check_installed_soft:
key=uninstall['key']
if installed_softwares(uninstallkey=key):
cmd = WAPT.uninstall_cmd(uninstall['key'])
run(cmd)
Quizás haya una forma más limpia de hacer esto agrupando todas las rutinas en una con un bucle for, pero opté por el enfoque más simple.
Mi instalación definitiva se ve así:
Código: Seleccionar todo
def install():
msoname = 'Microsoft Office Standard 2016'
msoversion='16.0.4266.1001'
check_installed_mso = installed_softwares(msoname)
if not check_installed_mso:
killsoft()
uninstall_office_modules()
uninstall_office365()
print('Installation de Microsoft Office 2016')
install_exe_if_needed('setup.exe',silentflags='/adminfile "silent.msp"',min_version=msoversion,key=None,timeout=1200)
check_installed_out = installed_softwares(softname)
if not check_installed_out:
error('End audit did not find the software.')
Re: Paquete de OFFICE 2016
Publicado: 3 de mayo de 2017 - 16:27
por Killian
fludo67 escribió:Tengo dos rutinas: una para Office 365 y otra para los complementos de Office (esto me ha sucedido en bastantes máquinas con Office 2007: #error -2146368439)
Código: Seleccionar todo
def uninstall_office_modules():
print('Suppression des anciens modules office..')
check_installed_soft = installed_softwares('Microsoft Office System')
if check_installed_soft:
for uninstall in check_installed_soft:
key=uninstall['key']
if installed_softwares(uninstallkey=key):
cmd = WAPT.uninstall_cmd(uninstall['key'])
run(cmd)
def uninstall_office365():
print('Suppression Office 365')
check_installed_soft = installed_softwares('office 365')
if check_installed_soft:
for uninstall in check_installed_soft:
key=uninstall['key']
if installed_softwares(uninstallkey=key):
cmd = WAPT.uninstall_cmd(uninstall['key'])
run(cmd)
Quizás haya una forma más limpia de hacer esto agrupando todas las rutinas en una con un bucle for, pero opté por el enfoque más simple.
Mi instalación definitiva se ve así:
Código: Seleccionar todo
def install():
msoname = 'Microsoft Office Standard 2016'
msoversion='16.0.4266.1001'
check_installed_mso = installed_softwares(msoname)
if not check_installed_mso:
killsoft()
uninstall_office_modules()
uninstall_office365()
print('Installation de Microsoft Office 2016')
install_exe_if_needed('setup.exe',silentflags='/adminfile "silent.msp"',min_version=msoversion,key=None,timeout=1200)
check_installed_out = installed_softwares(softname)
if not check_installed_out:
error('End audit did not find the software.')
Gracias, mi código se ve así, ¿qué opinas?
Código: Seleccionar todo
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []
def install():
def uninstall_office_modules():
print('Suppression des anciens modules office..')
check_installed_soft = installed_softwares('Microsoft Office System')
if check_installed_soft:
for uninstall in check_installed_soft:
key=uninstall['key']
if installed_softwares(uninstallkey=key):
cmd = WAPT.uninstall_cmd(uninstall['key'])
run(cmd)
def uninstall_office365():
print('Suppression Office 365')
check_installed_soft = installed_softwares('office 365')
if check_installed_soft:
for uninstall in check_installed_soft:
key=uninstall['key']
if installed_softwares(uninstallkey=key):
cmd = WAPT.uninstall_cmd(uninstall['key'])
run(cmd)
def killsoft():
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'):
if isrunning(soft):
print ("closing %s" % soft)
killalltasks(soft)
softname = 'Microsoft Office Professionnel Plus 2016'
check_installed_out = installed_softwares(softname)
print('installing Office 2016')
if not check_installed_out:
cmd = '"setup.exe" /adminfile "silent.msp"'
else:
cmd = 'msiexec.exe /p silent.msp'
killsoft()
uninstall_office_modules()
uninstall_office365()
run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])
check_installed_out = installed_softwares(softname)
if not check_installed_out:
error('End audit did not find the software.')
def uninstall():
fichier = open("%s\silent.xml" % programfiles32, "w" )
fichier.write('<Configuration Product="ProPlus"> \n')
fichier.write('<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /> \n')
fichier.write(' <Setting Id="SETUP_REBOOT" Value="NEVER" /> \n')
fichier.write('</Configuration> \n')
fichier.close()
run('"%s\Common Files\microsoft shared\OFFICE16\Office Setup Controller\Setup.exe" /uninstall ProPlus /config "%s\silent.xml"' % (programfiles32,programfiles32),timeout=1200)
remove_file(r'%s\silent.xml'% programfiles32)
Re: Paquete de OFFICE 2016
Publicado: 3 de mayo de 2017 - 16:36
por fludo67
Debes llamar a las funciones que definiste y agregarlas después de killsoft()
Código: Seleccionar todo
print('installing Office 2016')
if not check_installed_out:
cmd = '"setup.exe" /adminfile "silent.msp"'
else:
cmd = 'msiexec.exe /p silent.msp'
killsoft()
uninstall_office_modules()
uninstall_office_365()
Re: Paquete de OFFICE 2016
Publicado: 3 de mayo de 2017 - 16:37
por Killian
fludo67 escribió:Debes llamar a las funciones que definiste y agregarlas después de killsoft()
Código: Seleccionar todo
print('installing Office 2016')
if not check_installed_out:
cmd = '"setup.exe" /adminfile "silent.msp"'
else:
cmd = 'msiexec.exe /p silent.msp'
killsoft()
uninstall_office_modules()
uninstall_office_365()
Sí, acabo de darme cuenta de mi error, así que edité mi publicación anterior
Re: Paquete de OFFICE 2016
Publicado: 3 de mayo de 2017 - 16:42
por Killian
La instalación finalizó con el código del post anterior:
Código: Seleccionar todo
installing Office 2016
Suppression des anciens modules office..
Suppression Office 365
EWaptSetupException: Fatal error : End audit did not find the software.
Aquí está el error: aunque Office esté instalado correctamente en la computadora remota, ¿cómo puedo evitar este error?
Re: Paquete de OFFICE 2016
Publicado: 3 de mayo de 2017 - 16:59
por fludo67
Esto casi con toda seguridad está relacionado con la variable `softname = 'Microsoft Office Professional Plus 2016'`.
En tu script, se comprueba la presencia del software después de la instalación. Si no lo encuentra, se genera este error. En la lista de aplicaciones de Windows, ¿es Office Professional Plus la versión instalada? (Compruébalo en el Panel de control -> Aplicaciones -> y verifica qué versión de Office se instaló: Standard, Professional, etc.)
Re: Paquete de OFFICE 2016
Publicado: 3 de mayo de 2017 - 17:01
por Killian
fludo67 escribió:Probablemente esté relacionado con la variable `softname = 'Microsoft Office Professional Plus 2016'`.
En tu script, se comprueba la presencia del software después de la instalación. Si no lo encuentra, se genera este error. En la lista de aplicaciones de Windows, ¿es Office Professional Plus la que se instaló? (Compruébalo en el Panel de control -> Aplicaciones -> y verifica qué versión de Office se instaló: Standard, Professional, etc.)
No, es estándar
Re: Paquete de OFFICE 2016
Publicado: 3 de mayo de 2017 - 17:04
por fludo67
Debes adaptar la variable softname según la versión de Office que estés instalando.
En este caso,
softname="microsoft office standard 2016"
Re: Paquete de OFFICE 2016
Publicado: 4 de mayo de 2017 - 8:48 a. m.
por Killian
fludo67 escribió:Debes adaptar la variable softname según la versión de Office que instales.
En este caso,
softname="Microsoft Office Standard 2016"
¡Muchas gracias! El problema está resuelto

Re: Paquete de OFFICE 2016
Publicado: 5 de mayo de 2017 - 13:59
por Killian
Buen día,
Vuelvo a mencionar esto porque me gustaría poder desinstalar Office 2016 desde la consola WAPT
Aquí está mi código
Código: Seleccionar todo
def uninstall():
fichier = open("%s\silent.xml" % programfiles32, "w" )
fichier.write('<Configuration Product="ProPlus"> \n')
fichier.write('<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" /> \n')
fichier.write(' <Setting Id="SETUP_REBOOT" Value="NEVER" /> \n')
fichier.write('</Configuration> \n')
fichier.close()
run('"%s\Common Files\microsoft shared\OFFICE16\Office Setup Controller\Setup.exe" /uninstall ProPlus /config "%s\silent.xml"' % (programfiles32,programfiles32),timeout=1200)
remove_file(r'%s\silent.xml'% programfiles32)