Page 2 sur 3
Re: Paquet OFFICE 2016
Posté : 03 mai 2017 - 16:20
par fludo67
j'ai deux routines : une pour office 365 et une pour les compléments office (ça m'est arrivésur pas mal de postes avec office 2007 : #erreur -2146368439)
Code : Tout sélectionner
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)
Il y a peut-être moyen de faire plus propre en regroupant toutes les routines en une seule avec une boucle for, mais j'ai fais au plus simple.
mon def install ressemble à ça :
Code : Tout sélectionner
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: Paquet OFFICE 2016
Posté : 03 mai 2017 - 16:27
par Killian
fludo67 a écrit :j'ai deux routines : une pour office 365 et une pour les compléments office (ça m'est arrivésur pas mal de postes avec office 2007 : #erreur -2146368439)
Code : Tout sélectionner
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)
Il y a peut-être moyen de faire plus propre en regroupant toutes les routines en une seule avec une boucle for, mais j'ai fais au plus simple.
mon def install ressemble à ça :
Code : Tout sélectionner
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.')
Merci mon code ressemble à ça qu'es ce que tu en pense ?
Code : Tout sélectionner
# -*- 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: Paquet OFFICE 2016
Posté : 03 mai 2017 - 16:36
par fludo67
il faut appeler les fonctions que tu as défini , les ajouter après killsoft()
Code : Tout sélectionner
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: Paquet OFFICE 2016
Posté : 03 mai 2017 - 16:37
par Killian
fludo67 a écrit :il faut appeler les fonctions que tu as défini , les ajouter après killsoft()
Code : Tout sélectionner
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()
Oui je vient de remarquer mon erreur, j'ai donc édité mon précédent post
Re: Paquet OFFICE 2016
Posté : 03 mai 2017 - 16:42
par Killian
L'installation s'est terminée avec le code du post précédent :
Code : Tout sélectionner
installing Office 2016
Suppression des anciens modules office..
Suppression Office 365
EWaptSetupException: Fatal error : End audit did not find the software.
Voilà l'erreur, alors que office est bien installé sur l'ordinateur distant, comment je peu éviter cette erreur ?
Re: Paquet OFFICE 2016
Posté : 03 mai 2017 - 16:59
par fludo67
c'est sûrement lié à la variable softname = 'Microsoft Office Professionnel Plus 2016'
Dans ton script, il fait un test de présence du logiciel après l'installation. S'il ne le trouve pas, il génère cette erreur. Est-ce que dans la liste des applications sous windows, c'est bien office professionnel plus qui a été installé ?? (voir dans panneau de configuration -> applications -> et vérifier quelle version office a été installée. standard, professionnel etc..)
Re: Paquet OFFICE 2016
Posté : 03 mai 2017 - 17:01
par Killian
fludo67 a écrit :c'est sûrement lié à la variable softname = 'Microsoft Office Professionnel Plus 2016'
Dans ton script, il fait un test de présence du logiciel après l'installation. S'il ne le trouve pas, il génère cette erreur. Est-ce que dans la liste des applications sous windows, c'est bien office professionnel plus qui a été installé ?? (voir dans panneau de configuration -> applications -> et vérifier quelle version office a été installée. standard, professionnel etc..)
Non c'est Standard
Re: Paquet OFFICE 2016
Posté : 03 mai 2017 - 17:04
par fludo67
il faut adapter la variable softname en fonction de la version office que tu installes.
dans ce cas
softname="microsoft office standard 2016"
Re: Paquet OFFICE 2016
Posté : 04 mai 2017 - 08:48
par Killian
fludo67 a écrit :il faut adapter la variable softname en fonction de la version office que tu installes.
dans ce cas
softname="microsoft office standard 2016"
Merci beaucoup ! Le problème est résolu

Re: Paquet OFFICE 2016
Posté : 05 mai 2017 - 13:59
par Killian
Bonjour,
Je reviens sur ce sujet car j'aimerais avoir la possibilité de désinstaller office 2016 depuis la console wapt
voici mon code
Code : Tout sélectionner
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)