Bonjour.
J'utilise WAPT (community) sur une centaine de postes, sans
gros soucis. Mais aujourd'hui, j'ai passé pas mal de temps à
débuguer un problème sur un de ces postes. Le poste enregistré
dans l'inventaire ne remontait plus son état (par exemple, un
logiciel que j'ai installé en version 3 manuellement avec
wapt-get install apparaissait toujours en version 2 dans
l'inventaire). En débugant plus, en fait, toutes les commandes
remontaient la même erreur :
FATAL ERROR : 'ascii' codec can't encode character
u'\xe9' in position 4: ordinal not in range(128) : faulty
string is 'u'17 d\xe9cembre 2019''
Traceback (most recent call last):
File "<string>", line 1431, in <module>
File "<string>", line 1213, in main
File "C:\Program Files (x86)\wapt\common.py", line
5477, in register_computer
inv = self._get_host_status_data(old_hashes,
new_hashes, force=True, include_dmi=True, include_wmi=True)
File "C:\Program Files (x86)\wapt\common.py", line
5770, in _get_host_status_data
_add_data_if_updated(inv,'installed_softwares',setuphelpers.installed_softwares(''),old_hashes,new_hashes)
File "C:\Program Files
(x86)\wapt\setuphelpers_windows.py", line 2961, in
installed_softwares
result.extend(list_fromkey("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",noredir=False))
File "C:\Program Files
(x86)\wapt\setuphelpers_windows.py", line 2924, in
list_fromkey
date =
str(reg_getvalue(appkey,'InstallDate','')).replace('\x00','')
UnicodeEncodeError: 'ascii' codec can't encode character
u'\xe9' in position 4: ordinal not in range(128)
Exception at 00442147: UnicodeEncodeError:
exceptions.UnicodeEncodeError: 'ascii' codec can't encode
character u'\xe9' in position 4: ordinal not in range(128).
J'ai fini par trouver le responsable dans la BdR : un des
logiciels installé utilisait la chaîne "19 Décembre 2019"
dans le InstallDate (alors que tous les autres soft
utilisent un format YYYMMJJ). Et en supprimant l'accent,
tout est OK.
Ne faudrait-il pas que WAPT ignore la date, si il
n'arrive pas à la parser, plutôt que de s'arrêter
brutalement ? C'est peut être rare comme cas, mais on n'a
aucun contrôle sur ce que renseignent les logiciels dans ce
champs
++