Hello! Based on the log you shared, the remaining missing icons are mostly system components and background services. Here is a script that should fix most of them.
- Press Windows key
- Type PowerShell
- On the right side of it, click Run as administrator
- Then copy and paste this command
Basically, this command already knows where each program's icon is located on your PC and tells Windows to use it, so instead of searching for it, it goes straight to the right place. However, this is not guaranteed since it still depends on where the programs are actually installed on your PC. Since everyone's setup is different, some may still show as$msIcon = "C:\Windows\System32\msi.dll" $vcIcon = "C:\Windows\System32\shell32.dll,242" $dotnetIcon = "C:\Windows\System32\imageres.dll,120" $gameInput = "C:\Windows\System32\shell32.dll,117" $fixes = @{ 'Epic Games Launcher' = "Epic Games\Launcher\Portal\Binaries\Win64\EpicGamesLauncher.exe" 'Epic Online Services' = "Epic Games\Launcher\Portal\Binaries\Win64\EpicGamesLauncher.exe" 'Epic Games Launcher Prerequisites (x64)' = "Epic Games\Launcher\Portal\Binaries\Win64\EpicGamesLauncher.exe" 'EA app' = "Electronic Arts\EA Desktop\EA Desktop\EADesktop.exe" 'Cloudflare One Client' = "Cloudflare\Cloudflare WARP\warp-svc.exe" 'PowerShell 7-x64' = "PowerShell\7\pwsh.exe" 'Microsoft GameInput' = $gameInput 'ROG Live Service' = "ASUS\ROG Live Service\ROGLiveService.exe" 'ASUS Aura SDK' = "ASUS\AURA\aura.exe" 'AURA Service' = "ASUS\AURA\aura.exe" 'AURA lighting effect add-on' = "ASUS\AURA\aura.exe" 'AURA lighting effect add-on x64' = "ASUS\AURA\aura.exe" 'ASUS Smart Display Control' = "ASUS\ASUS Smart Display Control\AsusSmartDisplayControl.exe" 'ASUS Update Helper' = "ASUS\ASUS Update Helper\AsusUpdateHelper.exe" 'ASUS Ambient HAL' = "ASUS\AURA\aura.exe" 'ASUS Aac_NBDT HAL' = "ASUS\AURA\aura.exe" 'GameSDK Service' = "ASUS\GameSDK Service\GameSDK.exe" 'Logi Plugin Service' = "LogiOptionsPlus\logioptionsplus.exe" 'Documentation Manager' = "Intel\Documentation Manager\DocManager.exe" } $msFixes = @( 'Microsoft Visual C++ 2005 Redistributable', 'Microsoft Visual C++ 2005 Redistributable (x64)', 'Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.6161', 'Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219', 'Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.61030', 'Microsoft Visual C++ 2012 x86 Additional Runtime - 11.0.61030', 'Microsoft Visual C++ 2013 x64 Minimum Runtime - 12.0.40664', 'Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.40664', 'Microsoft Visual C++ 2013 x86 Minimum Runtime - 12.0.40664', 'Microsoft Visual C++ 2013 x86 Additional Runtime - 12.0.40664', 'Microsoft Visual C++ 2022 X64 Minimum Runtime - 14.50.35719', 'Microsoft Visual C++ 2022 X64 Additional Runtime - 14.50.35719', 'Microsoft Visual C++ 2022 X86 Minimum Runtime - 14.50.35719', 'Microsoft Visual C++ 2022 X86 Additional Runtime - 14.50.35719' ) $dotnetFixes = @( 'Microsoft .NET Host FX Resolver - 9.0.16 (x64)', 'Microsoft .NET Runtime - 10.0.8 (x64)', 'Microsoft .NET Host FX Resolver - 8.0.27 (x64)', 'Microsoft .NET Host - 9.0.16 (x64)', 'Microsoft .NET Runtime - 9.0.16 (x64)', 'Microsoft .NET Host FX Resolver - 8.0.21 (x64)', 'Microsoft .NET Host - 10.0.8 (x64)', 'Microsoft .NET Host FX Resolver - 10.0.8 (x64)', 'Microsoft .NET Runtime - 8.0.21 (x64)', 'Microsoft .NET Runtime - 8.0.27 (x64)', 'Microsoft .NET Host - 8.0.27 (x64)', 'Microsoft .NET Runtime - 8.0.27 (x86)', 'Microsoft .NET Host FX Resolver - 8.0.27 (x86)', 'Microsoft .NET Host - 8.0.27 (x86)', 'Microsoft Windows Desktop Runtime - 9.0.16 (x64)', 'Microsoft Windows Desktop Runtime - 8.0.27 (x64)', 'Microsoft Windows Desktop Runtime - 10.0.8 (x64)', 'Microsoft Windows Desktop Runtime - 8.0.27 (x86)', 'Microsoft ASP.NET Core Runtime - 10.0.8 (x64)', 'Microsoft ASP.NET Core 8.0.27 Shared Framework (x64)', 'Microsoft ASP.NET Core 8.0.27 Shared Framework (x86)' ) foreach ($name in $msFixes) { $fixes[$name] = $vcIcon } foreach ($name in $dotnetFixes) { $fixes[$name] = $dotnetIcon } $paths = @( 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' ) $fixed = 0 $skipped = 0 foreach ($path in $paths) { Get-ItemProperty -Path $path -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -and -not $_.DisplayIcon } | ForEach-Object { $name = $_.DisplayName if ($fixes.ContainsKey($name)) { $targetPath = $fixes[$name] $resolvedIcon = $null if ($targetPath -like "C:\Windows\*") { $resolvedIcon = $targetPath } else { $normalPF = Join-Path $env:ProgramFiles $targetPath $x86PF = Join-Path ${env:ProgramFiles(x86)} $targetPath if (Test-Path $normalPF) { $resolvedIcon = $normalPF } elseif (Test-Path $x86PF) { $resolvedIcon = $x86PF } } if ($resolvedIcon) { Set-ItemProperty -Path $_.PSPath -Name DisplayIcon -Value $resolvedIcon -Force Write-Host "[FIXED] $name" -ForegroundColor Green $fixed++ } else { Write-Host "[NOT FOUND] $name -- Could not find app binary path" -ForegroundColor Yellow $skipped++ } } } } Write-Host "" Write-Host "Fixed: $fixed | Skipped: $skipped" -ForegroundColor Cyan Write-Host "Done! Reopen Programs and Features to see changes." -ForegroundColor Green[NOT FOUND]which would need to be fixed manually. - Hit Enter
- Wait for it to finish. Once done, open Control Panel > Programs and Features.
Feel free to send me the results once it's done!