Para mim, este é um caso infeliz da Lei de Conway . O Windows é um sistema operacional muito complexo, com décadas de história e um grande número de partes móveis. O que isto significa é que algo que parece simples, como fazer a pergunta "wtf tudo está instalado no meu computador?" infelizmente é muito complicado. O que torna o "software instalado" complicado é que ele vem de várias fontes diferentes. Há software de 64 bits, software de 32 bits e software instalado apenas para determinados usuários, além de software instalado para todos os usuários e software que foi instalado ou atribuído a você por meio da Diretiva de Grupo e muito mais.
Felizmente, o Monitor de processos da Sysinternal pode revelar tudo para você. Basta ativá-lo, monitorar os eventos do Registro e, em seguida, clicar no applet do painel de controle Adicionar / Remover Programas e ver o que o Windows está fazendo em segundo plano.
Ele lê várias fontes diferentes:
HKLM\Software\Installer\Products
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\...
HKCU\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\...
HKCU\Software\Microsoft\Installer\Products
HKLM\Software\Microsoft\Windows\CurrentVersion\Group Policy\AppMgmt
HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\...
E mais!
Por um lado, é possível ver exatamente qual sequência de consultas de registro é necessária para reconstruir com precisão o que você vê em "Adicionar / Remover Programas", que é uma "visão" baseada no momento. Por outro lado, acho que você chegará rapidamente à conclusão de que é um muito trabalho e que talvez a reconstrução de uma visão exata de Adicionar / Remover Programas talvez não seja tão importante para você em primeiro lugar. :)