Premièrement pour que l'installation et la mise à jour de l'agent fonctionne alors qu'un mot de passe de désinstallation est configuré, il ne faut pas utiliser le package msi (installation OK, mise à jour KO le mot de passe de protection de l'agent est demandé...).
Il faut créer un package exe d'installation depuis le serveur qui fonctionnera pour l'installation et la mise à jour sans demander le mot de passe :
Le code du paquet wapt adapté :
Code : Tout sélectionner
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = ['{1841AFE1-4BA7-44D4-8700-6ACF860A8ED1}']
def install():
# Initializing variables
package_version = control.get_software_version()
# Vérification de la version pour gestion d'erreur
for to_install in installed_softwares('Trend Micro Apex One Security Agent'):
if Version(to_install["version"]) < Version(package_version) or force:
print ('installing %s' % control.package)
install_exe_if_needed('TrendMicroSecurityAgent.exe')
else:
print ('%s already installed' % control.package)
uninstallkey.remove('{1841AFE1-4BA7-44D4-8700-6ACF860A8ED1}')
Pour la désinstallation, je vous propose deux solutions que j'ai pu tester :
Solution 1 :
Désactiver la mot de passe de désinstallation depuis la console serveur, cela aura pour effet de passer la clé de registre "Allow Uninstall" à 1 sur les agents. Désinstallation possible avec le code suivant :
Code : Tout sélectionner
def uninstall():
print ('uninstalling %s' % control.package)
run(r'"msiexec.exe" /x {1841AFE1-4BA7-44D4-8700-6ACF860A8ED1} /qn')
Solution 2 :
Désinstallation possible avec le code suivant sans désactiver le mot de passe dans la console admin (le mot de passe sera en clair dans le paquet) :
Code : Tout sélectionner
def uninstall():
print ('uninstalling %s' % control.package)
run(r'"%s\Trend Micro\Security Agent\pccntmon.exe" -m <uninstall_password>' % programfiles32)
source
Quelques pistes qui n'ont pas abouties :
La création du package exe depuis le client packager s'appuie sur le fichier de conf ofcscan.ini du server, en éditant ce fichier on retrouve les options d'auto protection de l'agent :
[INI_CLIENT_SECTION]
SP_EnableFileProtection = 1
SP_EnableRegistryKeyProtection = 1
SP_EnableProcessProtection = 1
Malheureusement les mettre à 0 ne semble pas fonctionner...
Par contre dans la base de registre de l'agent suivante on retrouve bien les clés des options d'auto protection :
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TrendMicro\PC-cillinNTCorp\CurrentVersion\AEGIS
En passant la clé "SP_EnableRegistryKeyProtection" à 0, le protection de la base de registre est bien désactivée, on peut donc à nouveau modifier la clé "Allow Uninstall" depuis un paquet wapt sans désactiver le mot de passe de l'agent. Le problème, c'est qu'il n'est pas possible de modifier la clé "SP_EnableRegistryKeyProtection" tant que l'agent est lancé... Il faut d'abord fermer l'agent qui demande alors le mot de passe... bref je ne vois pas comment automatiser la désinstallation à 100% dans un paquet wapt.