Si Microsoft Fotos no se abre en Windows 11 (ni desde Inicio, ni con ms-photos:
, ni por CMD), la causa más habitual desde junio de 2024 es un conflicto entre la versión de la app y componentes de Windows App Runtime. Aquí encontrarás la causa, la solución más efectiva con Windows App SDK y cómo desplegarla de forma segura en entornos corporativos.
Resumen del problema
En múltiples equipos con Windows 11 Pro la app Microsoft Fotos deja de iniciar sin mostrar error visible. Reparar/restablecer la app, reinstalarla desde Microsoft Store o ejecutar sfc
/DISM
no corrige el síntoma. El patrón apunta a un fallo de compatibilidad entre actualizaciones de la app y los paquetes de Windows App Runtime presentes en el sistema.
Síntomas y alcance
Situación | Detalle |
---|---|
Inicio de Fotos | No arranca desde Inicio, ms-photos: (Win+R), PowerShell o CMD. |
Errores visibles | Frecuentemente no hay diálogo de error. En el Visor de eventos se suelen ver eventos de activación de UWP/WinApp con error (p.ej., 5973) relacionados con Photos. |
Ámbito | Afecta a varios usuarios y organizaciones, típicamente Windows 11 Pro en diferentes compilaciones. |
Impacto | No se pueden abrir imágenes con Fotos ni usar funciones como recorte, edición o Memories. |
Acciones ineficaces | Reparar/Restablecer la app, reinstalar desde Store, sfc /scannow o DISM /RestoreHealth rara vez ayudan. |
Causa probable (junio de 2024)
Una actualización reciente de Microsoft Fotos (por ejemplo, la rama 2024.11050) entró en conflicto con determinados paquetes del Windows App Runtime. Los equipos que no recibieron esa actualización de la Store no se vieron afectados. El choque se origina cuando la app solicita APIs de runtime que no están presentes o no coinciden con el conjunto de paquetes instalados (por ejemplo, discrepancias entre Main
, Singleton
y paquetes DDLM
asociados a la versión 1.5 del runtime).
Verificaciones iniciales recomendadas
- Probar la activación directa:
Start-Process "ms-photos:"
Si no abre, continúa. - Revisar el estado del runtime:
Get-AppxPackage -Name "appruntime" | Select-Object Name, Version, PackageFullName
- Comprobar la app de Fotos para todos los usuarios:
Get-AppxPackage -AllUsers -Name "Microsoft.Windows.Photos" | Select Name, Version, PackageFullName
- Mirar eventos de activación:
Get-WinEvent -LogName "Microsoft-Windows-AppModel-Runtime/Admin" -MaxEvents 200 | Where-Object {$_.Message -match "Photos"} | Select-Object TimeCreated, Id, LevelDisplayName, Message
Solución principal (recomendada): actualizar Windows App Runtime mediante Windows App SDK
Esta es la vía más fiable y con mejor tasa de éxito. Consiste en instalar la versión más reciente del Windows App SDK (WinAppSDK) con privilegios elevados, lo que actualiza los paquetes de runtime necesarios para la app.
- Instala la última versión del Windows App SDK ejecutando el instalador como administrador.
- Reinicia el equipo.
- Verifica que los paquetes del runtime se hayan instalado/actualizado correctamente:
Get-AppxPackage -Name "appruntime" | Select-Object -Property Name
Deberías ver, entre otros, nombres (o equivalentes recientes) como:MicrosoftCorporationII.WinAppRuntime.Main.1.5
MicrosoftCorporationII.WinAppRuntime.Singleton
Microsoft.WinAppRuntime.DDLM.5001.119.156.0-x6
Microsoft.WinAppRuntime.DDLM.5001.119.156.0-x8
Tras el reinicio, prueba de nuevo la app con Start-Process "ms-photos:"
. Si abre y puede cargar/editar imágenes, da el caso por remedidado.
Plan B si Fotos aún no abre: limpiar y reinstalar el runtime
Si algunos equipos siguen fallando, fuerza la desinstalación de los paquetes problemáticos para todos los usuarios y reinstala el WinAppSDK:
- Quita paquetes del runtime para todos los usuarios:
$apps = @( "MicrosoftCorporationII.WinAppRuntime.Main.1.5", "MicrosoftCorporationII.WinAppRuntime.Singleton", "Microsoft.WinAppRuntime.DDLM.5001.119.156.0-x6", "Microsoft.WinAppRuntime.DDLM.5001.119.156.0-x8" ) foreach ($app in $apps) { Get-AppxPackage -AllUsers -Name $app | Remove-AppxPackage }
- Instala de nuevo el Windows App SDK (última versión) como administrador.
- Reinicia y prueba otra vez Fotos.
Acciones que puedes omitir (según la evidencia)
- Reparar/Restablecer Microsoft Fotos desde Configuración > Aplicaciones rara vez solucionó el problema.
- Reinstalar Fotos desde la Store, en general, no ayudó.
- Una reparación in‑place de Windows 11 con ISO puede funcionar en casos aislados, pero no escala en entornos con muchos equipos.
Guía rápida (checklist)
- Confirmar fallo de apertura (
ms-photos:
no inicia). - Auditar
appruntime
con PowerShell. - Instalar WinAppSDK (versión más nueva) como administrador.
- Reiniciar y validar.
- Si persiste: ejecutar Plan B (limpieza y reinstalación del runtime) y reiniciar.
Sugerencias para entornos corporativos
Despliegue silencioso y controlado
- Distribuye el instalador del Windows App SDK en modo silencioso y con privilegios elevados mediante Intune/ConfigMgr/PSRemoting. Forzar el reinicio fuera de horario laboral.
- Anillos de despliegue: prueba primero en un subconjunto (piloto) de usuarios/equipos antes de expandir a toda la organización.
- Política de Store: si la organización bloquea actualizaciones, habilita temporalmente o empuja el runtime actualizado; valida en piloto.
Auditoría rápida (inventario)
# Comprobar versión de Fotos en todos los usuarios
Get-AppxPackage -AllUsers -Name "Microsoft.Windows.Photos" | Select Name, Version, PackageFullName
Comprobar estado de los runtimes
Get-AppxPackage -AllUsers -Name "appruntime" | Select Name, Version
Inventario remoto y exportación a CSV
$equipos = Get-Content .\equipos.txt
$salida = foreach ($eq in $equipos) {
Invoke-Command -ComputerName $eq -ScriptBlock {
Get-AppxPackage -AllUsers -Name "appruntime" |
Select-Object @{n='Equipo';e={$env:COMPUTERNAME}}, Name, Version
} -ErrorAction SilentlyContinue
}
$salida | Export-Csv .\Inventario_WinAppRuntime.csv -NoTypeInformation -Encoding UTF8
Detección (Intune/ConfigMgr)
Ejemplo de script de detección que marca como cumple si existe el paquete Main
1.5 y su versión es al menos 1.5.4; ajusta el umbral según tu estándar:
$min = [version]'1.5.4.0'
$pkg = Get-AppxPackage -AllUsers -Name "MicrosoftCorporationII.WinAppRuntime.Main.1.5" |
Sort-Object Version -Descending | Select-Object -First 1
if ($pkg -and ([version]$pkg.Version -ge $min)) { exit 0 } else { exit 1 }
Remediación (Intune)
Como script de remediación, puedes desencadenar la instalación del WinAppSDK (colocado en una ruta accesible o como contenido de la app) y, tras instalar, registrar un reinicio fuera de horas:
Start-Process -FilePath "$PSScriptRoot\WinAppSDK_Setup.exe" -ArgumentList "/quiet" -Wait -Verb RunAs
Opcional: avisar al usuario o programar reinicio
shutdown.exe /r /t 1800 /c "El equipo se reiniciará para completar la actualización del runtime."
Notas: verifica los parámetros silenciosos del instalador concreto que uses y prueba en laboratorio/piloto antes de producción.
Diagnóstico avanzado
Comprobaciones en el Visor de eventos
- Microsoft-Windows-AppModel-Runtime/Admin: fallos de activación de apps modernas.
- Microsoft-Windows-AppxDeployment-Server/Operational: instalación/actualización de paquetes MSIX.
- Aplicación: eventos 1000/1001 si la app llegó a iniciar y falló.
Filtra por “Photos” o por el PackageFullName de la app de Fotos para identificar correlaciones de tiempo con cambios de runtime.
Comprobaciones de integridad del runtime
# Resumen del runtime presente
Get-AppxPackage -AllUsers -Name "WinAppRuntime" | Sort-Object Name, Version |
Format-Table -AutoSize Name, Version, PackageFullName
Validación posterior a la corrección
- Abrir Fotos con
ms-photos:
y desde Inicio. - Probar apertura/edición de JPG/PNG/HEIC.
- Confirmar ausencia de nuevos eventos de error en los registros mencionados.
Preguntas frecuentes (FAQ)
¿Por qué sfc
o DISM
no arreglan esto?
Porque el problema no está en archivos del sistema o en la app en sí, sino en la compatibilidad entre la versión de Fotos y el conjunto de paquetes del Windows App Runtime. Es un tema de dependencias.
¿Afecta a Windows 10?
El patrón se ha observado sobre todo en Windows 11. En Windows 10 solo habría impacto si coincidieran versiones de la app y runtime con requisitos incompatibles.
¿Puedo “volver” a una Fotos anterior?
Restringir o revertir la versión de la Store puede ser una mitigación temporal, pero lo más robusto es actualizar el runtime para que la versión nueva de Fotos funcione.
¿Sirve cambiar la app predeterminada de fotos?
Como bypass temporal, sí (p. ej., usar el Visor de fotos clásico). Pero la solución real es alinear el runtime.
¿Reinstalar Fotos ayuda?
En la mayoría de los casos no, porque la dependencia rota sigue presente. Actualiza el runtime.
Riesgos, buenas prácticas y reversión
- Prueba en piloto antes de desplegar a gran escala.
- Ventana de mantenimiento con reinicio programado para cerrar manejadores y completar el registro de paquetes.
- Punto de restauración opcional en equipos críticos antes de limpiezas agresivas (
Remove-AppxPackage
para todos los usuarios).
Tabla de decisiones rápidas
Escenario | Acción recomendada | Por qué |
---|---|---|
Fotos no abre en varios equipos | Instalar WinAppSDK más reciente + reinicio | Actualiza dependencias del runtime requeridas por la app |
Tras actualizar, algunos aún fallan | Plan B: quitar paquetes Main/Singleton/DDLM y reinstalar | Elimina restos/colisiones de paquetes |
Entorno con Store bloqueada | Distribuir el runtime vía Intune/ConfigMgr | Permite controlar versión y ventana de instalación |
Plazo corto, usuarios urgentes | Asignar app alternativa temporal como visor por defecto | Mitiga el impacto mientras se despliega la solución |
Anexo: script integral (audita, corrige y valida)
Úsalo bajo tu responsabilidad en laboratorio/piloto. Verifica rutas, firmantes y parámetros del instalador que uses.
#region Configuración
$minRuntimeVersion = [version]'1.5.4.0' # ajusta según tu estándar
$appsToRemove = @(
"MicrosoftCorporationII.WinAppRuntime.Main.1.5",
"MicrosoftCorporationII.WinAppRuntime.Singleton",
"Microsoft.WinAppRuntime.DDLM.5001.119.156.0-x6",
"Microsoft.WinAppRuntime.DDLM.5001.119.156.0-x8"
)
$runtimeInstaller = "C:\Paquetes\WinAppSDK_Setup.exe" # reemplaza por tu ruta real
$installArgs = "/quiet"
$log = "C:\Logs\FixFotosWin11$(Get-Date -Format yyyyMMddHHmmss).log"
#endregion
function Write-Log { param(\[string]\$m) \$stamp = (Get-Date).ToString("s"); "\$stamp\`t\$m" | Tee-Object -FilePath \$log -Append }
Write-Log "=== Inicio de auditoría ==="
Auditoría: estado inicial
\$runtimePkgs = Get-AppxPackage -AllUsers -Name "appruntime" | Sort-Object Name, Version
\$photosPkgs = Get-AppxPackage -AllUsers -Name "Microsoft.Windows.Photos"
Write-Log "Paquetes runtime detectados: \$(\$runtimePkgs.Count)"
\$runtimePkgs | ForEach-Object { Write-Log " - \$(\$.Name) \$(\$.Version)" }
\$photosPkgs | ForEach-Object { Write-Log "Fotos: \$(\$.Version) \[\$(\$.PackageFullName)]" }
Detección rápida: ¿hay Main 1.5 >= 1.5.4?
\$main = \$runtimePkgs | Where-Object { $\_.Name -like "MicrosoftCorporationII.WinAppRuntime.Main.1.5" } |
Sort-Object Version -Descending | Select-Object -First 1
\$compliant = \$false
if (\$main) {
if (\[version]\$main.Version -ge \$minRuntimeVersion) { \$compliant = \$true }
}
if (-not \$compliant) {
Write-Log "Runtime no conforme. Procediendo con instalación de WinAppSDK..."
if (Test-Path \$runtimeInstaller) {
Start-Process -FilePath \$runtimeInstaller -ArgumentList \$installArgs -Wait -Verb RunAs
Write-Log "Instalación del runtime completada (según retorno del instalador)."
} else {
Write-Log "ERROR: no se encontró el instalador en \$runtimeInstaller"
exit 2
}
Relectura de paquetes
\$runtimePkgs = Get-AppxPackage -AllUsers -Name "appruntime" | Sort-Object Name, Version
\$main = \$runtimePkgs | Where-Object { $\_.Name -like "MicrosoftCorporationII.WinAppRuntime.Main.1.5" } |
Sort-Object Version -Descending | Select-Object -First 1
if (\$main -and (\[version]\$main.Version -ge \$minRuntimeVersion)) {
Write-Log "Runtime actualizado correctamente a \$(\$main.Version)."
} else {
Write-Log "La actualización no alcanzó la versión mínima. Ejecutando limpieza selectiva (Plan B)..."
foreach (\$app in \$appsToRemove) {
Get-AppxPackage -AllUsers -Name \$app | Remove-AppxPackage -ErrorAction SilentlyContinue
Write-Log "Eliminado (si existía): \$app"
}
\# Reinstalar otra vez
Start-Process -FilePath \$runtimeInstaller -ArgumentList \$installArgs -Wait -Verb RunAs
Write-Log "Reinstalación tras limpieza finalizada."
}
} else {
Write-Log "Runtime ya conforme. No se realizaron cambios."
}
Validación: intentar abrir Fotos
try {
Start-Process "ms-photos:" | Out-Null
Start-Sleep -Seconds 3
Write-Log "Validación: comando ms-photos lanzado."
} catch {
Write-Log "Validación: error al lanzar ms-photos: \$($\_.Exception.Message)"
}
Write-Log "=== Fin del proceso ==="
Resumen ejecutivo
El problema no es de archivos del sistema ni de la app en sí, sino de incompatibilidad entre una actualización de Fotos y versiones antiguas de Windows App Runtime. Actualizar (o reinstalar) el runtime con el Windows App SDK y reiniciar restablece el funcionamiento de Fotos en la mayoría de los casos y es la estrategia con mejor retorno en entornos individuales y corporativos.
Conclusión
Cuando Microsoft Fotos no abre en Windows 11 en múltiples equipos, enfoca el diagnóstico en las dependencias del runtime. La ruta ganadora es desplegar la versión más reciente del Windows App SDK, verificar los paquetes Main/Singleton/DDLM
y, si fuese necesario, aplicar la limpieza selectiva y reinstalación. Con buenas prácticas de despliegue (anillos piloto, reinicio controlado y scripts de detección/remediación) podrás estabilizar el parque de equipos con mínimo impacto para los usuarios.