Pagina 2 di 3
Re: Pacchetto OFFICE 2016
Pubblicato: 3 maggio 2017 - 16:20
di fludo67
Ho due routine: una per Office 365 e una per i componenti aggiuntivi di Office (mi è successo su parecchie macchine con Office 2007: #error -2146368439)
Codice: Seleziona tutto
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)
Forse ci sarebbe un modo più semplice per farlo, ovvero raggruppare tutte le routine in una sola con un ciclo for, ma io ho optato per l'approccio più semplice.
La mia installazione definitiva si presenta così:
Codice: Seleziona tutto
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: Pacchetto OFFICE 2016
Pubblicato: 3 maggio 2017 - 16:27
di Killian
fludo67 ha scritto:Ho due routine: una per Office 365 e una per i componenti aggiuntivi di Office (mi è successo su parecchie macchine con Office 2007: #error -2146368439)
Codice: Seleziona tutto
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)
Forse ci sarebbe un modo più semplice per farlo, ovvero raggruppare tutte le routine in una sola con un ciclo for, ma io ho optato per l'approccio più semplice.
La mia installazione definitiva si presenta così:
Codice: Seleziona tutto
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.')
Grazie, il mio codice è simile a questo, cosa ne pensi?
Codice: Seleziona tutto
# -*- 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: Pacchetto OFFICE 2016
Pubblicato: 3 maggio 2017 - 16:36
di fludo67
Devi chiamare le funzioni che hai definito e aggiungerle dopo killsoft()
Codice: Seleziona tutto
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: Pacchetto OFFICE 2016
Pubblicato: 3 maggio 2017 - 16:37
di Killian
fludo67 ha scritto:Devi chiamare le funzioni che hai definito e aggiungerle dopo killsoft()
Codice: Seleziona tutto
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ì, mi sono appena accorto del mio errore, quindi ho modificato il mio post precedente
Re: Pacchetto OFFICE 2016
Pubblicato: 3 maggio 2017 - 16:42
di Killian
L'installazione è terminata con il codice del post precedente:
Codice: Seleziona tutto
installing Office 2016
Suppression des anciens modules office..
Suppression Office 365
EWaptSetupException: Fatal error : End audit did not find the software.
Ecco l'errore: anche se Office è installato correttamente sul computer remoto, come posso evitare questo errore?
Re: Pacchetto OFFICE 2016
Pubblicato: 3 maggio 2017 - 16:59
di fludo67
Questo problema è quasi certamente correlato alla variabile `softname = 'Microsoft Office Professional Plus 2016'`.
Il tuo script verifica la presenza del software dopo l'installazione. Se non lo trova, genera questo errore. Nell'elenco delle applicazioni di Windows, Office Professional Plus è la versione installata? (Controlla in Pannello di controllo -> App -> e verifica quale versione di Office è stata installata: Standard, Professional, ecc.)
Re: Pacchetto OFFICE 2016
Pubblicato: 3 maggio 2017 - 17:01
di Killian
fludo67 ha scritto:Probabilmente è correlato alla variabile `softname = 'Microsoft Office Professional Plus 2016'`.
Nel tuo script, viene verificata la presenza del software dopo l'installazione. Se non lo trova, genera questo errore. Nell'elenco delle applicazioni in Windows, Office Professional Plus è quello installato? (Controlla in Pannello di controllo -> App -> e verifica quale versione di Office è stata installata: Standard, Professional, ecc.)
No, è Standard
Re: Pacchetto OFFICE 2016
Pubblicato: 3 maggio 2017 - 17:04
di fludo67
È necessario adattare la variabile softname in base alla versione di Office che si sta installando.
In questo caso,
softname="microsoft office standard 2016"
Re: Pacchetto OFFICE 2016
Pubblicato: 4 maggio 2017 - 08:48
di Killian
fludo67 ha scritto:Devi adattare la variabile softname in base alla versione di Office che installi.
In questo caso,
softname="Microsoft Office Standard 2016"
Grazie mille! Il problema è risolto

Re: Pacchetto OFFICE 2016
Pubblicato: 5 maggio 2017 - 13:59
di Killian
Buongiorno,
Riporto questo argomento perché vorrei poter disinstallare Office 2016 dalla console WAPT
ecco il mio codice
Codice: Seleziona tutto
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)