Extracción de URLs de Descarga de Actualizaciones de Windows desde WindowsUpdate.log y Caché Local

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

En entornos corporativos o de troubleshooting avanzado, puede ser necesario identificar la URL directa de descarga de una actualización de Windows (por ejemplo, un parche .msu, .cab o .psf).
Windows 10/11 no siempre muestra estas URLs en el WindowsUpdate.log, ya que muchas descargas se gestionan mediante Delivery Optimization (DoSvc), pero existen métodos para obtenerlas desde los registros y la caché local.

Failed: 0x80240034 Update failed to download.

1. Generar el archivo WindowsUpdate.log

En Windows 10/11, el log clásico de Windows Update no se encuentra de forma legible directamente, sino que debe generarse desde PowerShell:

Get-WindowsUpdateLog

Esto creará un archivo WindowsUpdate.log en el escritorio del usuario actual:

C:\Users\<usuario>\Desktop\WindowsUpdate.log

2. Extraer URLs desde WindowsUpdate.log

2.1. Mostrar todas las líneas que contienen URLs

Select-String -Path "C:\Users\<usuario>\Desktop\WindowsUpdate.log" -Pattern 'https?://[^\s"<>]+'

2.2. Mostrar solo las URLs (sin el resto de la línea)

Select-String -Path "C:\Users\<usuario>\Desktop\WindowsUpdate.log" -Pattern 'https?://[^\s"<>]+' -AllMatches |
  ForEach-Object { $_.Matches.Value } |
  Sort-Object -Unique

2.3. Filtrar únicamente URLs relevantes de Windows Update

Para obtener solo enlaces de dominios oficiales y que apunten a archivos .msu, .cab o .psf:

$exts = '\.(msu|cab|psf)(?:\?|$)'
$domains = 'download\.windowsupdate\.com|catalog\.s\.download\.windowsupdate\.com|(?:^|\.)delivery\.mp\.microsoft\.com'

Select-String -Path "C:\Users\<usuario>\Desktop\WindowsUpdate.log" -Pattern 'https?://[^\s"<>]+' -AllMatches |
  ForEach-Object { $_.Matches.Value } |
  Where-Object { ($_ -match $exts) -and ($_ -match $domains) } |
  Sort-Object -Unique

3. Exportar resultados a un archivo .txt

Si queremos guardar la salida en un archivo de texto:

3.1. Guardar líneas completas con URLs

Select-String -Path "C:\Users\<usuario>\Desktop\WindowsUpdate.log" -Pattern 'https?://[^\s"<>]+' |
  Out-File "C:\Users\<usuario>\Desktop\urls.txt" -Encoding UTF8

3.2. Guardar solo URLs únicas

Select-String -Path "C:\Users\<usuario>\Desktop\WindowsUpdate.log" -Pattern 'https?://[^\s"<>]+' -AllMatches |
  ForEach-Object { $_.Matches.Value } |
  Sort-Object -Unique |
  Out-File "C:\Users\<usuario>\Desktop\urls.txt" -Encoding UTF8

4. Búsqueda de URLs en la caché de Windows Update

Además del log, las URLs pueden aparecer en la caché de actualizaciones en:

C:\Windows\SoftwareDistribution\Download

Para buscar todas las URLs en esa ubicación:

Select-String -Path 'C:\Windows\SoftwareDistribution\Download\*' -Pattern 'https?://[^\s"<>]+' -AllMatches -ErrorAction SilentlyContinue |
  ForEach-Object { $_.Matches.Value } |
  Sort-Object -Unique

Filtrando solo URLs de parches:

$exts = '\.(msu|cab|psf)(?:\?|$)'
$domains = 'download\.windowsupdate\.com|catalog\.s\.download\.windowsupdate\.com|(?:^|\.)delivery\.mp\.microsoft\.com'

Select-String -Path 'C:\Windows\SoftwareDistribution\Download\*' -Pattern 'https?://[^\s"<>]+' -AllMatches -ErrorAction SilentlyContinue |
  ForEach-Object { $_.Matches.Value } |
  Where-Object { ($_ -match $exts) -and ($_ -match $domains) } |
  Sort-Object -Unique

5. Obtener URLs desde trabajos BITS activos

Si la descarga está en curso, se puede listar desde Background Intelligent Transfer Service (BITS):

$exts = '\.(msu|cab|psf)(?:\?|$)'
Get-BitsTransfer -AllUsers -ErrorAction SilentlyContinue |
  Where-Object { $_.DisplayName -match 'Windows Update' -or $_.Description -match 'Update' } |
  ForEach-Object { $_.FileList | Select-Object -ExpandProperty RemoteName } |
  Where-Object { $_ -match $exts } |
  Sort-Object -Unique

6. Consultar URLs desde Delivery Optimization

Si Windows Update usa Delivery Optimization:

$exts = '\.(msu|cab|psf)(?:\?|$)'
Get-DeliveryOptimizationStatus -ErrorAction SilentlyContinue |
  Where-Object { $_.SourceUrl } |
  Select-Object -ExpandProperty SourceUrl |
  Where-Object { $_ -match $exts } |
  Sort-Object -Unique

7. Alternativa: Obtener URL oficial desde Microsoft Update Catalog

Si no se encuentra la URL en el log o en caché, lo más fiable es descargar el parche desde el Catálogo de Microsoft Update:

  1. Visitar https://www.catalog.update.microsoft.com/
  2. Buscar por el número de KB (por ejemplo, KB5063878).
  3. Descargar el archivo correspondiente a la arquitectura (x64, x86, arm64).

Conclusión

Mediante estos procedimientos podemos identificar y extraer las URLs directas de descarga de parches de Windows, ya sea desde el WindowsUpdate.log, la caché local (SoftwareDistribution), trabajos BITS activos o Delivery Optimization. En caso de no encontrarlas, el Microsoft Update Catalog sigue siendo la fuente más confiable.

Compartir:

Binario 0
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.