Hola Denis,
Desafortunadamente, hay una gran cantidad de máquinas que se ven afectadas por este inventario fantasma.
Por eso estaba buscando una forma de automatizarlo, dada la imposibilidad de limpiar fácilmente el inventario de una máquina después de una migración de servidor.
Así que se me ocurrió este código muy simple:
Es posible olvidar un paquete conocido sólo por el cliente ya que no está registrado en los paquetes asignados a la máquina en la consola, por lo tanto no hay reinstalación.
Código: Seleccionar todo
# -----------------------------------------------------------------------
# This script was made in an effort to manage previous WAPT registred packages.
# Made by Renaud Counhaye for Ymagis.
# -----------------------------------------------------------------------
from setuphelpers import *
list_replaces=["chrome-fr","firefox-esr-fr","adobereader-mui"] #liste de vieux paquet aillant un remplacant
list_replaced=["chrome","firefox","adobereader"] #liste des paquets remaplcants les anciens! attention doit être dans le meme ordre!
#list de paquets à oublier tout simplement.
list_forgets=["check-viscosity","fr-standard-applications","apple-software-update","ie11","fr04-fr-Office365-and-Standard-applications","fr-web-browsers","deploy-ymagis-nxt","trend-micro-security-agent"]
uninstallkey = []
#def main():
def install():
#check si le fichier précédent existe, si oui, kill
if(isfile(makepath('C:','sys','logs','waptgetlist.txt'))):
print('previous file is present')
remove_file(makepath('C:','sys','logs','waptgetlist.txt'))
print('start...')
run('cmd /c wapt-get list > C:\sys\logs\waptgetlist.txt') #creation d'un fichier contenant la lsite des packets actif sur la machine
if(isfile(makepath('C:','sys','logs','waptgetlist.txt'))):
print('file is present')
f=open(makepath('C:','sys','logs','waptgetlist.txt'), "r")
if f.mode == 'r':
f1 = f.readlines() #lecture ligne par ligne du fichier
for line in f1:
data = line.split(" ")
package = data[0]
if package in list_replaces:
print '--in replaces' #si le paquet lu est dans la liste des pack a remplacer, on forget puis wapt.install
point=list_replaces.index(package)
if(point != -1):
cmd = "cmd /c wapt-get forget "+package+" --force"
run(cmd)
WAPT.install(list_replaced[point],force=WAPT.options.force)
else:
if package in list_forgets:
print '--in forgets' #si le paquet lu est dans la liste des pack a oublier, on forget
point = list_forgets.index(package)
if(point != -1):
print str(point)+' found forgets'
cmd = "cmd /c wapt-get forget "+package+" --force"
run(cmd)
else:
print '++not found'
print 'end.'
if __name__ == '__main__': #run debug
install()
PD: Sería interesante permitir que un paquete WAPT con una clave especial fuerce a que un paquete no se asigne a la máquina en la que se está ejecutando.
Buen día,