Página 1 de 2

Error de WUA: No existe el archivo o directorio

Publicado: 10 de octubre de 2022 - 15:53
por t.heroult
Buen día

Durante los últimos días, he notado el siguiente error en varios sistemas Windows 10 al buscar Windows Update:

Código: Seleccionar todo

Ensure wuauserv Auto Update option is disabled
Scanning with windows updates rules:
{
 "direct_download": false,
 "default_allow": false,
 "include_potentially_superseded_updates": false,
 "filter": "Type='Software' or Type='Driver'",
 "download_scheduling": "5d",
 "install_scheduling": "24h",
 "install_delay": "1d",
 "postboot_delay": "10m"
}
Looking for updates with filter: Type='Software' or Type='Driver'
   Connecting to local update searcher using offline wsusscn2 file...
   Offline Update searcher ready...
Waiting for WUA search to complete
WUA Search completed !
Done searching
re-enabling wuauserv previous state: 2
[Errno 2] No such file or directory: 'C:\\WINDOWS\\TEMP\\gen_py\\3.8\\B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0\\ISearchResult.py.4580.temp'
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\gencache.py", line 233, in GetModuleForCLSID
    __import__(sub_mod_name)
ModuleNotFoundError: No module named 'win32com.gen_py.B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0.ISearchResult'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1894, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 699, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\enterprise.py", line 232, in _run
    self.result = wua.scan_updates_status(self.force)
  File "C:\Program Files (x86)\wapt\waptwua\client.py", line 919, in scan_updates_status
    for update in self.updates():
  File "C:\Program Files (x86)\wapt\waptwua\client.py", line 854, in updates
    search_result = self.update_searcher().EndSearch(search_job)
  File "C:\WINDOWS\TEMP\gen_py\3.8\B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0\IUpdateSearcher3.py", line 48, in EndSearch
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\__init__.py", line 96, in Dispatch
    return __WrapDispatch(dispatch, userName, resultCLSID, typeinfo, clsctx=clsctx)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\__init__.py", line 37, in __WrapDispatch
    klass = gencache.GetClassForCLSID(resultCLSID)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\gencache.py", line 180, in GetClassForCLSID
    mod = GetModuleForCLSID(clsid)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\gencache.py", line 241, in GetModuleForCLSID
    makepy.GenerateChildFromTypeLibSpec(sub_mod, info)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\makepy.py", line 319, in GenerateChildFromTypeLibSpec
    gen.generate_child(child, dir_path_name)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\genpy.py", line 1049, in generate_child
    self.file = self.open_writer(out_name)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\genpy.py", line 786, in open_writer
    return open(temp_filename, "wt", encoding=encoding)
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\WINDOWS\\TEMP\\gen_py\\3.8\\B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0\\ISearchResult.py.4580.temp'

2 : No such file or directory
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\gencache.py", line 233, in GetModuleForCLSID
    __import__(sub_mod_name)
ModuleNotFoundError: No module named 'win32com.gen_py.B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0.ISearchResult'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1894, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 699, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\enterprise.py", line 232, in _run
    self.result = wua.scan_updates_status(self.force)
  File "C:\Program Files (x86)\wapt\waptwua\client.py", line 919, in scan_updates_status
    for update in self.updates():
  File "C:\Program Files (x86)\wapt\waptwua\client.py", line 854, in updates
    search_result = self.update_searcher().EndSearch(search_job)
  File "C:\WINDOWS\TEMP\gen_py\3.8\B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0\IUpdateSearcher3.py", line 48, in EndSearch
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\__init__.py", line 96, in Dispatch
    return __WrapDispatch(dispatch, userName, resultCLSID, typeinfo, clsctx=clsctx)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\__init__.py", line 37, in __WrapDispatch
    klass = gencache.GetClassForCLSID(resultCLSID)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\gencache.py", line 180, in GetClassForCLSID
    mod = GetModuleForCLSID(clsid)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\gencache.py", line 241, in GetModuleForCLSID
    makepy.GenerateChildFromTypeLibSpec(sub_mod, info)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\makepy.py", line 319, in GenerateChildFromTypeLibSpec
    gen.generate_child(child, dir_path_name)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\genpy.py", line 1049, in generate_child
    self.file = self.open_writer(out_name)
  File "C:\Program Files (x86)\wapt\lib\site-packages\win32com\client\genpy.py", line 786, in open_writer
    return open(temp_filename, "wt", encoding=encoding)
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\WINDOWS\\TEMP\\gen_py\\3.8\\B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0\\ISearchResult.py.4580.temp'
La carpeta C:\Windows\temp\gen_py\3.8 está efectivamente presente...

Si tienes alguna idea, estoy todo oídos.

Atentamente,
Tomás

Re: Error de WUA: No existe el archivo o directorio

Publicado: 10 de octubre de 2022 - 16:47
por dcardon
Hola Tom,

hace tiempo que no oíamos hablar de gencache.py... Se trata de enlaces generados dinámicamente para objetos COM de Windows, concretamente para el objeto de Windows Update. No es la parte más elegante de Python en Windows.

Consultaré con mis compañeros para ver si podemos generar previamente estos enlaces durante la instalación/actualización del agente. Eso evitaría que intentara crearlos en TEMP. Creo que es el antivirus el que probablemente se sorprende al encontrar estos archivos.

Te mantendré informado. Mientras tanto, ¿podrías comprobar en la consola de tu antivirus si no ha eliminado los archivos en cuestión sobre la marcha?

Saludos cordiales,

Denis

Re: Error de WUA: No existe el archivo o directorio

Publicado: 11 de octubre de 2022 - 09:28
por t.heroult
Hola Denis

, de acuerdo, entiendo el problema que tienes, es un verdadero fastidio...
Bueno, acabo de revisar la consola (SentinelOne) y no veo ningún informe relacionado con este problema en ninguna de las máquinas afectadas.

Lo siento, pero parece que no hay solución. :(

En cualquier caso, estoy disponible para realizar algunas pruebas si quieres.

Un saludo,
Tom

Re: Error de WUA: No existe el archivo o directorio

Publicado: 15 de mayo de 2023 - 11:28
por t.heroult
Hola,

sigo experimentando este problema con regularidad.
Actualmente, afecta a 5 equipos con Windows 10 Pro.

Re: Error de WUA: No existe el archivo o directorio

Publicado: 16 de mayo de 2023 - 15:08
por sfonteneau
En este tipo de casos el archivo

Código: Seleccionar todo

C:\WINDOWS\TEMP\gen_py\
está presente en la máquina (sin reiniciar el servicio wapt)

Re: Error de WUA: No existe el archivo o directorio

Publicado: 22 de mayo de 2023 - 14:11
por t.heroult
Efectivamente, la carpeta existe.
Si la borro y realizo un análisis, se vuelve a crear y el error se repite.

Re: Error de WUA: No existe el archivo o directorio

Publicado: 22 de mayo de 2023 - 16:38
por sfonteneau
y el archivo

Código: Seleccionar todo

C:\WINDOWS\TEMP\gen_py\3.8\B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0\ISearchResult.py
¿Está presente?

Re: Error de WUA: No existe el archivo o directorio

Publicado: 23 de mayo de 2023 - 09:36
por t.heroult
Negativo.

Solo tengo 2 archivos en la carpeta 3.8:
- __init__.py
- dicts.dat

Re: Error de WUA: No existe el archivo o directorio

Publicado: 23 de mayo de 2023 - 09:59
por sfonteneau
El código que genera el archivo es el siguiente:

Código: Seleccionar todo

C:\Windows\System32>waptpython
Python 3.8.16 (default, Mar  1 2023, 11:11:02) [MSC v.1929 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import win32com.client
>>> win32com.client.gencache.EnsureDispatch("Microsoft.Update.Session")
¿Podrías intentar ejecutarlo en una terminal de Windows?

Al final, normalmente deberías tener el siguiente archivo:

Código: Seleccionar todo

type %tmp%\gen_py\3.8\B596CC9F-56E5-419E-A622-E01BB457431Ex0x2x0\__init__.py

Re: Error de WUA: No existe el archivo o directorio

Publicado: 23 de mayo de 2023 - 14:09
por t.heroult
¡Genial! Funcionó en ambas máquinas.

¡Gracias!