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:
- Visitar https://www.catalog.update.microsoft.com/
- Buscar por el número de KB (por ejemplo,
KB5063878
). - 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: