Share via

Application icons missing in Programs and Features

Anime Guy 95 Reputation points
2026-05-30T04:03:25.16+00:00

Basically, applications icons are missing in Control Panel's Programs and Features section.

Screenshot 2026-05-30 090950

Weirdly enough, they are present in Settings > Apps > Installed apps...

Except Discord for some reason... I have already re-installed it via Microsoft Store but the issue still remains.Screenshot 2026-05-30 091847I have raised this issue on another similar topic but since didn't receive any response, asking this question again.

So, how do I fix this issue?

Windows for home | Windows 11 | Apps
0 comments No comments

Answer accepted by question author

Quinn.HP 8,955 Reputation points Independent Advisor
2026-05-31T15:25:26.64+00:00

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.

  1. Press Windows key
  2. Type PowerShell
  3. On the right side of it, click Run as administrator
  4. Then copy and paste this command
       $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
    
    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 [NOT FOUND] which would need to be fixed manually.
  5. Hit Enter
  6. Wait for it to finish. Once done, open Control Panel > Programs and Features.

Feel free to send me the results once it's done!

Was this answer helpful?

1 person found this answer helpful.

Answer accepted by question author

Quinn.HP 8,955 Reputation points Independent Advisor
2026-05-31T12:17:11.46+00:00

Hello! Thank you for sending it, I was only making sure that the main issue here was missing Display Icon in registry editor.

  1. Press Windows key
  2. Type PowerShell
  3. On the right side of it, click Run as administrator
  4. Then copy and paste this command:
       $ErrorActionPreference = 'SilentlyContinue'
       $Fixed    = 0
       $NotFound = 0
       $Log      = [System.Collections.Generic.List[string]]::new()
       function Write-Log($msg) { $Log.Add($msg); Write-Host $msg }
       function Find-Icon($Name, $InstallLocation, $UninstallString) {
       $dirs = [System.Collections.Generic.List[string]]::new()
       if ($InstallLocation -and (Test-Path $InstallLocation)) { $dirs.Add($InstallLocation) }
       if ($UninstallString) {
         $exe = ($UninstallString -replace '"','') -split ' ' | Select-Object -First 1
         if ($exe -and (Test-Path $exe)) { $dirs.Add((Split-Path $exe -Parent)) }
       }
       $local = [Environment]::GetFolderPath('LocalApplicationData')
       $pf    = $env:ProgramFiles
       $pf86  = ${env:ProgramFiles(x86)}
       $safe  = $Name -replace '[^a-zA-Z0-9 \-_]',''
       foreach ($base in @($pf, $pf86, $local, "$local\Programs")) {
         $candidate = Join-Path $base $safe
         if (Test-Path $candidate) { $dirs.Add($candidate) }
       }
       foreach ($dir in ($dirs | Select-Object -Unique)) {
         $ico = Get-ChildItem $dir -Filter '*.ico' -Recurse -Depth 2 -ErrorAction SilentlyContinue | Select-Object -First 1
         if ($ico) { return $ico.FullName }
         $safeName = ($Name -replace '[^a-zA-Z0-9]','').ToLower()
         $exe = Get-ChildItem $dir -Filter '*.exe' -Recurse -Depth 2 -ErrorAction SilentlyContinue |
                Where-Object { ($_.BaseName -replace '[^a-zA-Z0-9]','').ToLower() -like "*$safeName*" } | Select-Object -First 1
         if ($exe) { return $exe.FullName }
         $any = Get-ChildItem $dir -Filter '*.exe' -Depth 0 -ErrorAction SilentlyContinue | Select-Object -First 1
         if ($any) { return $any.FullName }
       }
       return $null
       }
       $paths = @(
       'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
       'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
       'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
       )
       Write-Log "======================================"
       Write-Log " Fix-ProgramIcons  $(Get-Date -Format 'yyyy-MM-dd HH:mm')"
       Write-Log "======================================"
       foreach ($path in $paths) {
       Get-ItemProperty -Path $path -ErrorAction SilentlyContinue |
       Where-Object { $_.DisplayName -and -not $_.DisplayIcon } |
       ForEach-Object {
         $name = $_.DisplayName
         $icon = Find-Icon -Name $name -InstallLocation $_.InstallLocation -UninstallString $_.UninstallString
         if ($icon) {
             try {
                 Set-ItemProperty -Path $_.PSPath -Name DisplayIcon -Value $icon -Force
                 Write-Log "[FIXED]   $name"
                 Write-Log "          -> $icon"
                 $script:Fixed++
             } catch {
                 Write-Log "[ERROR]   $name -- registry write failed"
                 $script:NotFound++
             }
         } else {
             Write-Log "[MISSING] $name -- could not find icon automatically"
             $script:NotFound++
         }
       }
       }
       Write-Log ""
       Write-Log "======================================"
       Write-Log "  Fixed    : $Fixed"
       Write-Log "  No icon  : $NotFound"
       Write-Log "======================================"
       $log = Join-Path ([Environment]::GetFolderPath('Desktop')) "Fix-ProgramIcons_$(Get-Date -Format 'yyyyMMdd_HHmm').log"
       $Log | Out-File $log -Encoding UTF8
       Write-Host ""
       Write-Host "Log saved to: $log" -ForegroundColor Cyan
       Write-Host "Done. Reopen Programs and Features to see changes." -ForegroundColor Green
    
  5. Hit Enter
  6. Wait for it to finish. Once done, open Control Panel > Programs and Features.

Kindly check if the issue still persists.

Was this answer helpful?

1 person found this answer helpful.

2 additional answers

Sort by: Most helpful
  1. Quinn.HP 8,955 Reputation points Independent Advisor
    2026-05-30T06:57:56.8433333+00:00

    Hello again, and thanks for the detailed info — that actually helps a lot. Based on what you have said, let's try this fix:

    This is still in Registry Editor, but I will explain it in a very detailed manner.

    For Discord:

    1. Press Win + R key
    2. Type regedit
    3. Hit Enter
    4. Click Yes
    5. See picture below, the red box is the search bar, type: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Discord User's image
    6. See picture below, right-click the empty space, select New > String Value, and name it DisplayIcon.User's image
    7. Double-click DisplayIcon and paste the path to the Discord icon. It will look something like this (ensure you replace with your actual Windows username): C:\Users\YOUR_USERNAME\AppData\Local\Discord\app.icoUser's image

    Note: Your Windows username refers to the folder name under C:\Users you can search this in the search bar in File Explorer (Press Win + E key).

    1. Once done, click OK.
    2. Finally, check Settings to verify if it worked.

    I’ll continue checking the remaining affected applications. For now, please try this solution and let me know if it works.

    Was this answer helpful?


  2. Quinn.HP 8,955 Reputation points Independent Advisor
    2026-05-30T05:05:11.4066667+00:00

    Hello, I'm Quinn and here to help!

    May I know what troubleshooting steps you have already tried? Also, does this issue affect all programs in Programs and Features, or only certain entries such as the ASUS and Autodesk applications shown in your screenshot? Please choose one affected program (for example, ASUS Smart Display Control) and kindly do the following:

    1. Press Win + R, type regedit, and press Enter.
    2. Navigate to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall If you do not find the program there, also check: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
    3. Locate the uninstall key for the affected application.
    4. Please provide the values for the following entries:
      1. DisplayName
      2. DisplayIcon
      3. UninstallString

    Alternatively, you can send a screenshot of the registry key and its values. This will help determine the cause. Thank you.

    Was this answer helpful?


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.