Pagina 1 di 1

Pacchetto di rimozione antivirus WAPT

Pubblicato: 15 febbraio 2022 - 11:01
di Eyji
Buongiorno,

Sto cercando di creare un pacchetto per disinstallare il vecchio antivirus tramite una chiave di registro, ma esistono diverse versioni e quindi diverse chiavi di registro.
Voglio che controlli le chiavi di registro e se esiste lo disinstalla, se non esiste passa a quello successivo e alla fine installa il nuovo antivirus e se è x64 installa la versione a 64 bit o se è un sistema operativo x86 installa la versione a 32 bit.
In allegato trovate la sceneggiatura che ho iniziato a scrivere ma che non funziona.
Ringrazio in anticipo chiunque possa aiutarmi.

Codice: Seleziona tutto

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

# Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls


def install():
    print("Installing: %s" % control.package)

if uninstall_key_exists('{867E468E-DD24-4599-8A61-C4454DD166FE}'):
        run('MSIEXEC.exe /qb /X {867E468E-DD24-4599-8A61-C4454DD166FE} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

elif uninstall_key_exists('{367F9C22-8DC9-4880-A14B-29B01881B05C}'):
        run('MSIEXEC.exe /qb /X {367F9C22-8DC9-4880-A14B-29B01881B05C} REBOOT="ReallySuppress" /q')

else: uninstall_key_exists('{B454B5C8-5C87-4F24-B9F5-2A9A199F08F5}')
        run('MSIEXEC.exe /qb /X {B454B5C8-5C87-4F24-B9F5-2A9A199F08F5} REBOOT="ReallySuppress" /q')

else: uninstall_key_exists('{7F98FC14-7576-4980-8985-BD5377EA765E}')
        run('MSIEXEC.exe /qb /X {7F98FC14-7576-4980-8985-BD5377EA765E} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

else: uninstall_key_exists('{7B3EFEF0-4D31-4221-8BA3-B1B1CBBAA5B8}')
        run('MSIEXEC.exe /qb /X {7B3EFEF0-4D31-4221-8BA3-B1B1CBBAA5B8} REBOOT="ReallySuppress" /q')

else: uninstall_key_exists('{92BA3DCC-50FA-4636-939F-254D454D2559}')
        run('MSIEXEC.exe /qb /X {92BA3DCC-50FA-4636-939F-254D454D2559} REBOOT="ReallySuppress" /q')

else: uninstall_key_exists('{26172EAA-2147-47B0-ABFB-D5FF4E6D4274}')
        run('MSIEXEC.exe /qb /X {26172EAA-2147-47B0-ABFB-D5FF4E6D4274} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

else: uninstall_key_exists('{7B3EFEF0-4D31-4221-8BA3-B1B1CBBAA5B8}')
        run('MSIEXEC.exe /qb /X {7B3EFEF0-4D31-4221-8BA3-B1B1CBBAA5B8} REBOOT="ReallySuppress" /q')

else: uninstall_key_exists('{8DDDE767-7175-46A3-BF28-939E8B755617}')
        run('MSIEXEC.exe /qb /X {8DDDE767-7175-46A3-BF28-939E8B755617} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

else: uninstall_key_exists('{92BA3DCC-50FA-4636-939F-254D454D2559}')
        run('MSIEXEC.exe /qb /X {92BA3DCC-50FA-4636-939F-254D454D2559} REBOOT="ReallySuppress" /q')

else: uninstall_key_exists('{3F509AE4-E4F1-4418-B0C2-92766748DC02}')
        run('MSIEXEC.exe /qb /X {3F509AE4-E4F1-4418-B0C2-92766748DC02} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

else: uninstall_key_exists('{F9699917-447C-4109-9479-5161D1636B24}')
        run('MSIEXEC.exe /qb /X {F9699917-447C-4109-9479-5161D1636B24} REBOOT="ReallySuppress" /q')

else: uninstall_key_exists('{082F6817-E4B9-406D-8E59-0551070D7B97}')
        run('MSIEXEC.exe /qb /X {082F6817-E4B9-406D-8E59-0551070D7B97} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

else: uninstall_key_exists('{E75932C3-67DD-42A7-A413-E748199C17C2}')
        run('MSIEXEC.exe /qb /X {E75932C3-67DD-42A7-A413-E748199C17C2} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

else: uninstall_key_exists('{19E36B07-F888-4822-BF50-49F9EA520018}')
        run('MSIEXEC.exe /qb /X {19E36B07-F888-4822-BF50-49F9EA520018} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

else: uninstall_key_exists('{CAC9C8AF-7485-48E0-AF87-FDC929B57E76}')
        run('MSIEXEC.exe /qb /X {CAC9C8AF-7485-48E0-AF87-FDC929B57E76} REBOOT="ReallySuppress" PASSWORD="mot de passe" /q')

def install():
    print("Installing: %s" % control.package)

if iswin64():
    print('Pc x64')
    run(r'"agent_cloud_x64.msi" -q /norestart')
else:
    print('Pc not x64')
    run(r'"agent_cloud_x86.msi" -q /norestart')

Re: Pacchetto di rimozione antivirus WAPT

Pubblicato: 15 febbraio 2022 - 14:22
di olaplanche
Buongiorno,

Nota che nel tuo script hai definito due volte la funzione def install():
Inoltre, usi due volte il parametro /q per la disinstallazione, il che è sconcertante!

Personalmente, proverei con il codice seguente:
Verificherà tutte le versioni installate di un determinato software (nome=blabla), le confronterà per verificare se la versione è precedente a quella del pacchetto da installare e avvierà automaticamente la disinstallazione dalla chiave di disinstallazione. Se la chiave di disinstallazione non è silenziosa, è necessario adattare il comando run()

Codice: Seleziona tutto

   # Uninstalling older versions of the software
    for to_uninstall in installed_softwares(name=r"lenomdemonantivirus"):
        if Version(to_uninstall["version"]) < Version(package_version) or force:
            print("Removing: %s (%s)" % (to_uninstall["name"], to_uninstall["version"]))
            killalltasks(control.impacted_process.split(","))
            run(uninstall_cmd(to_uninstall["key"]))
            wait_uninstallkey_absent(to_uninstall["key"])

Re: Pacchetto di rimozione antivirus WAPT

Pubblicato: 15 febbraio 2022 - 15:09
di Eyji
Salve,

grazie per la rapida risposta. :D
Mi scuso per aver dimenticato di fornire alcune informazioni.
Sto disinstallando il vecchio antivirus ESET per installare TREND Micro e, per disinstallare tutte le versioni precedenti di ESET, devo assolutamente utilizzare la chiave di registro con la password di amministratore perché ESET si disinstalla in modalità provvisoria tramite il programma di disinstallazione.
Ogni agente e ogni versione di ESET ha la propria chiave di registro a seconda della versione installata.
Mi scuso ancora.