Disinstallazione di OFFICE 2013

Condividi qui i tuoi suggerimenti o problemi riguardanti la console WAPT o l'agente 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
Bloccato
primo piano
Messaggi: 5
Registrazione: 24 ottobre 2018 - 15:59

24 ottobre 2018 - 16:26

Ciao a tutti,

Ho problemi durante la disinstallazione di OFFICE 2013 Standard tramite WAPT.
Ho provato diversi modi per disinstallare tutto, ma non ci riesco.

Innanzitutto, tramite la chiave di disinstallazione:
Ho recuperato l'UID tramite wapt-get list-registry, che me ne ha restituiti parecchi, ma quando provo a disinstallarlo da PyScripter non funziona (restituisce:

Codice: Seleziona tutto

Ligne de Commande : uninstall "C:\waptdev\Office2013Std_32bits-wapt\WAPT\.."
Uninstalling C:\waptdev\Office2013Std_32bits-wapt ...
None
Uninstallation done)
La chiave di disinstallazione si presenta così:

Codice: Seleziona tutto

uninstallkey = ['{90150000-002A-0000-1000-0000000FF1CE}','{90150000-002A-040C-1000-0000000FF1CE}','Office15.STANDARD','Office2013Std_32bits','{90150000-0012-0000-0000-0000000FF1CE}','{90150000-001F-0401-0000-0000000FF1CE}','{90150000-001F-0407-0000-0000000FF1CE}','{90150000-001F-0409-0000-0000000FF1CE}','{90150000-001F-040C-0000-0000000FF1CE}','{90150000-001F-0413-0000-0000000FF1CE}','{90150000-001F-0C0A-0000-0000000FF1CE}','{90150000-002C-040C-0000-0000000FF1CE}','{90150000-006E-040C-0000-0000000FF1CE}','{90150000-00E1-040C-0000-0000000FF1CE}','{90150000-00E2-040C-0000-0000000FF1CE}']
Ho provato anche a usare uninstallstring e ricevo lo stesso messaggio di uninstallkey:

Codice: Seleziona tutto

Ligne de Commande : uninstall "C:\waptdev\Office2013Std_32bits-wapt\WAPT\.."
Uninstalling C:\waptdev\Office2013Std_32bits-wapt ...
None
Uninstallation done)
La stringa di disinstallazione appare così:

Codice: Seleziona tutto

uninstallstring =['"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml"']
Ho provato a utilizzare una funzione uninstall() che visualizza il contenuto di uninstallstring:

Codice: Seleziona tutto

def uninstall():
    print("Desinstallation d\'Office")
    run('"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml"')
Indietro:

Codice: Seleziona tutto

Ligne de Commande : uninstall "C:\waptdev\Office2013Std_32bits-wapt\WAPT\.."
Uninstalling C:\waptdev\Office2013Std_32bits-wapt ...
Desinstallation d'Office
2018-10-24 16:11:02,690 CRITICAL Fatal error in uninstall function: CalledProcessErrorOutput: Command '"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\OFFICE15\\Office Setup Controller\\Setup.exe /uninstall Standard /config silent.xml"' returned non-zero exit status 1.
Output:Le chemin d'accÇùs spǸcifiǸ est introuvable.
:
Traceback (most recent call last):
  File "c:\wapt\waptpackage.py", line 1843, in call_setup_hook
    hookdata = hook_func()
  File "C:\waptdev\Office2013Std_32bits-wapt\setup.py", line 39, in uninstall
    run('"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml"')
  File "c:\wapt\common.py", line 3317, in run
    return ensure_unicode(setuphelpers.run(*arg,pidlist=self.pidlist,**args))
  File "c:\wapt\setuphelpers.py", line 1044, in run
    raise CalledProcessErrorOutput(proc.returncode,cmd,''.join(output))
CalledProcessErrorOutput: Command '"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\OFFICE15\\Office Setup Controller\\Setup.exe /uninstall Standard /config silent.xml"' returned non-zero exit status 1.
Output:Le chemin d'accŠs sp‚cifi‚ est introuvable.


FATAL ERROR : CalledProcessErrorOutput: Command '"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\OFFICE15\\Office Setup Controller\\Setup.exe /uninstall Standard /config silent.xml"' returned non-zero exit status 1.
Output:Le chemin d'accÇùs spǸcifiǸ est introuvable.

Exit code:  3

L'installazione avviene molto bene, è completamente trasparente, il file MSP è nel posto giusto, lo stesso vale per il file silent.xml.
Quando eseguo il seguente comando in una shell, funziona perfettamente e silenziosamente...

Codice: Seleziona tutto

C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml
Ho provato diverse cose, ho provato a passare i miei percorsi tramite una variabile in "raw":

Codice: Seleziona tutto

r"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /uninstall Standard /config silent.xml" 
Il risultato è lo stesso, ma pensavo di aver capito che la "r" o l'atto di circondare l'espressione con "espressione" faceva da escape agli spazi e alle barre...
Ho provato anche a usare la libreria "pathlib", ma non è integrata in WAPT e non sono riuscito a farla funzionare.

Ho incluso l'intero file setup.py qui sotto nel caso in cui possa darvi qualche idea, ma non c'è nulla di particolarmente originale rispetto ai vari argomenti su OFFICE che si possono trovare nei forum :)
Grazie in anticipo!

primo piano

Codice: Seleziona tutto

from setuphelpers import *
import time

windowspath64 = r"C:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Office Setup Controller"
windowspath32 = r"C:\Program Files\Common Files\microsoft shared\OFFICE15\Office Setup Controller"
waptpath = r"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits"

if iswin64():
	uninstallstring =['"%s\Setup.exe /uninstall Standard /config silent.xml"',windowspath64]
else:
	uninstallstring =['"C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE15\Office Setup Controller\Setup.exe /unininstall Standard /config silent.xml"']

def install():

    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 Standard 2013'
    check_installed_out = installed_softwares(softname)
    if not check_installed_out:
            print('installing Office 2013')
            killsoft()
            cmd = ('%s\setup.exe /adminfile setup.msp /config silent.xml',waptpath)
            run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])
            time.sleep(30)
            filecopyto("silent.xml",("C:\Program Files\Common Files\"))
    else:
            print('repair Office 2013')
            killsoft()
            cmd = '"C:\Program Files (x86)\Common Files\microsoft shared\OFFICE15\Office Setup Controller\setup.exe" /repair Standard /config silent.xml"'
            run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

24 ottobre 2018 - 16:45

Ciao fbst,
fbst ha scritto: 24 ott 2018 - 16:26 ERRORE FATALE: CalledProcessErrorOutput: il comando '"C:\\Programmi (x86)\\File comuni\\Microsoft Shared\\OFFICE15\\Office Setup Controller\\Setup.exe /uninstall Standard /config silent.xml"' ha restituito uno stato di uscita diverso da zero 1.
Output: Impossibile trovare il percorso di accesso specificato.
....

Codice: Seleziona tutto

            filecopyto("silent.xml",("C:\Program Files\Common Files\"))
È necessario specificare il percorso completo del file silent.xml poiché non si trova nella stessa directory di setup.exe. In alternativa, è necessario definire la directory di lavoro.

Sinceramente,

Denis
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
primo piano
Messaggi: 5
Registrazione: 24 ottobre 2018 - 15:59

24 ottobre 2018 - 17:41

Buongiorno,

Grazie per la risposta rapida, sono riuscito a trovare uno spunto per una soluzione!
Funziona bene direttamente sul server (installazione/disinstallazione)

Ecco il codice:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *
import time

uninstallkey = []
softname = 'Microsoft Office Standard 2013'

def install():

    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 ("Fermeture de %s" % soft)
           killalltasks(soft)

    if not installed_softwares(softname):
        open(makepath(programfiles32,'silent.xml'), "w" ).write(silentxml)
        print('Installation d\' Office 2013')
        cmd = '"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits\setup.exe" /adminfile "setup.msp"'
        remove_file(makepath(programfiles32,'silent.xml'))
    else:
        print('Reparation d\'Office 2013')
        cmd = '"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits\setup.exe" /repair Standard /config silent.xml"'


    killsoft()
    run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])

    if not installed_softwares(softname):
            error('%s : clef de desinstallation non trouvée',softname)

def uninstall():
    open(makepath(programfiles32,'silent.xml'), "w" ).write(silentxml)
    print("Desinstallation d\'Office")
    run('"%s" /uninstall Standard /config "%s"' % (makepath(programfiles32,'Common Files','microsoft shared','OFFICE15','Office Setup Controller','Setup.exe'),makepath(programfiles32,'silent.xml')),timeout=1200)
    remove_file(makepath(programfiles32,'silent.xml'))

silentxml = ur"""<Configuration Product="Standard">
<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />
   <Setting Id="SETUP_REBOOT" Value="NEVER" />
</Configuration>"""

Tuttavia, una volta compilato e caricato, quando provo a installarlo su una macchina remota, ricevo un messaggio di errore:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1374, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 515, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 960, in _run
    self.result.get('errors',[])))
Exception: Erreur lors de l'installation de [u'4C4C4544-0057-5810-8039-B8C04F534632(=2)']: erreurs dans les paquets [[u'4C4C4544-0057-5810-8039-B8C04F534632(=2)', PackageEntry(u'4C4C4544-0057-5810-8039-B8C04F534632',u'2') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nEWaptUnavailablePackage: Missing dependencies: Office2013Std_32bits\n']]

Exception: Erreur lors de l'installation de [u'4C4C4544-0057-5810-8039-B8C04F534632(=2)']: erreurs dans les paquets [[u'4C4C4544-0057-5810-8039-B8C04F534632(=2)', PackageEntry(u'4C4C4544-0057-5810-8039-B8C04F534632',u'2') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nEWaptUnavailablePackage: Missing dependencies: Office2013Std_32bits\n']]
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1374, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 515, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 960, in _run
    self.result.get('errors',[])))
Exception: Erreur lors de l'installation de [u'4C4C4544-0057-5810-8039-B8C04F534632(=2)']: erreurs dans les paquets [[u'4C4C4544-0057-5810-8039-B8C04F534632(=2)', PackageEntry(u'4C4C4544-0057-5810-8039-B8C04F534632',u'2') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nEWaptUnavailablePackage: Missing dependencies: Office2013Std_32bits\n']]

Avete qualche idea per caso? :/

Grazie in anticipo,

Sinceramente
primo piano
Messaggi: 5
Registrazione: 24 ottobre 2018 - 15:59

24 ottobre 2018 - 18:34

In aggiunta al mio messaggio precedente, vorrei chiarire che il fatto che io specifichi il percorso completo di setup.exe:

Codice: Seleziona tutto

cmd = '"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits\setup.exe" /adminfile "setup.msp"'
Questo perché se inserisco setup.exe da solo, ricevo un messaggio che mi informa che setup.exe non è stato trovato.
Per vostra informazione, ecco la struttura delle directory del mio pacchetto:
Cattura.PNG
Capture.PNG (34,91 KB) Visualizzato 7160 volte
Il file di installazione si trova nella directory principale e l'ho copiato anche nella cartella WAPT e poi nella cartella Microsoft Office 2013 a 32 bit. Quindi ho qualche difficoltà a capire dove si trovi la directory di lavoro dello script Python... qualcuno potrebbe aiutarmi? :)

Il fatto che il percorso sia codificato nello script potrebbe generare l'errore sopra indicato?

Inoltre, per cercare di essere il più completo possibile, ecco il mio pacchetto visualizzato nella console:
Cattura2.PNG
Capture2.PNG (31,03 KB) Visualizzato 7160 volte
Ricevo il messaggio quando faccio clic con il pulsante destro del mouse su un host / Aggiungi una dipendenza / Seleziono il pacchetto e poi clicco su Avvia installazioni.
(Lo dico nel caso in cui commettessi un errore) :) )


Infine, ecco il file di controllo del pacchetto:
Cattura3.PNG
Capture3.PNG (19,76 KB) Visualizzato 7160 volte
Grazie mille... buona serata
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

25 ottobre 2018 - 19:45

Buonasera fbst,
fbst ha scritto: 24 ott 2018 - 18:34 In aggiunta al mio messaggio precedente, vorrei chiarire che il fatto che io specifichi il percorso completo di setup.exe:

Codice: Seleziona tutto

cmd = '"C:\waptdev\Office2013Std_32bits-wapt\Microsoft Office 2013 32bits\setup.exe" /adminfile "setup.msp"'
Questo perché se inserisco setup.exe da solo, ricevo un messaggio che mi informa che setup.exe non è stato trovato.
Lo script setup.py viene eseguito in una directory temporanea con un nome di directory generato casualmente. Se il programma di installazione necessita di un percorso di esecuzione completo, dovrei poter usare qualcosa del tipo:

Codice: Seleziona tutto

import os 
dir_path = os.path.dirname(os.path.realpath(__file__))
Nel tuo caso:

Codice: Seleziona tutto

cmd = '"%s\setup.exe" /adminfile "%s\setup.msp"' % (dir_path,dir_path)
Sinceramente,

Denis
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
primo piano
Messaggi: 5
Registrazione: 24 ottobre 2018 - 15:59

30 ottobre 2018 - 15:25

Buongiorno,

Ci scusiamo per il tempo di risposta un po' lungo...
Grazie per la risposta

Dopo aver effettuato dei test, sembra che questa soluzione non funzioni meglio:

Ricevo questo messaggio quando distribuisco il pacchetto su Windows 7 con Office 2010 installato:

Codice: Seleziona tutto

Installation d' Office 2013
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 3512, in install_wapt
    exitstatus = setup.install()
  File "c:\windows\temp\wapt83htmv\setup.py", line 23, in install
  File "C:\Program Files (x86)\wapt\common.py", line 3317, in run
    return ensure_unicode(setuphelpers.run(*arg,pidlist=self.pidlist,**args))
  File "C:\Program Files (x86)\wapt\setuphelpers.py", line 1044, in run
    raise CalledProcessErrorOutput(proc.returncode,cmd,''.join(output))
CalledProcessErrorOutput: Command '"c:\\windows\\temp\\wapt83htmv\\setup.exe" /adminfile "c:\\windows\\temp\\wapt83htmv\\setup.msp" /config "c:\\windows\\temp\\wapt83htmv\\silent.xml"' returned non-zero exit status -2146368439.
Output:
CalledProcessErrorOutput: Command '"c:\\windows\\temp\\wapt83htmv\\setup.exe" /adminfile "c:\\windows\\temp\\wapt83htmv\\setup.msp" /config "c:\\windows\\temp\\wapt83htmv\\silent.xml"' returned non-zero exit status -2146368439.
Output:
Il file MSP è configurato per disinstallare le versioni precedenti:

ecco il mio codice

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *
import os

dir_path = os.path.dirname(os.path.realpath('__file__'))

uninstallkey = []
softname = 'Microsoft Office Standard 2013'


def install():

    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 ("Fermeture de %s" % soft)
           killalltasks(soft)

    if not installed_softwares(softname):
        killsoft()
        print('Installation d\' Office 2013')
        cmd = '"%s\setup.exe" /adminfile "%s\setup.msp" /config "%s\silent.xml"' % (dir_path,dir_path,dir_path)
        run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])
        killsoft()
    else:
        print('Deinstallation d\'office')
        cmd = '"%s\setup.exe" /uninstall Standard /config "%s\silent.xml"' % (dir_path,dir_path)
        run(cmd,timeout=1200,accept_returncodes=[1641,3010,0])


def uninstall():
    open(makepath(programfiles32,'silent.xml'), "w" ).write(silentxml)
    killsoft()
    print("Desinstallation d\'Office")
    run('"%s" /uninstall Standard /config "%s"' % (makepath(programfiles32,r'Common Files',r'microsoft shared','OFFICE15',r'Office Setup Controller','Setup.exe'),makepath(programfiles32,'silent.xml')),timeout=1200)
    remove_file(makepath(programfiles32,'silent.xml'))


I file setup.exe / setup.MSP / silent.xml si trovano nella radice del pacchetto Office insieme a setup.py e a tutte le cartelle Office.
Confesso che ho qualche difficoltà a capire il problema che sto riscontrando :)

grazie in anticipo,

Sinceramente



MODIFICA: e confermo che una cartella in windows/temp/XXXX è effettivamente creata sul computer client, con tutti i file di Office presenti nel pacchetto sul server (setup.msp, setup.py, silent.xml + tutte le cartelle di Office)
Bloccato