existem várias maneiras de resolver isso.
O procmon é bom para monitorar o que um processo faz, mas não fornece um resumo das alterações em um sistema.
existem muitas ferramentas para isso, mas o único gratuito que eu conheço é o sysdiff da microsoft. é muito antigo e irá conter muito ruído no resultado, mas deve fazer o trabalho. você pode executar a etapa um (analisar sistema), reiniciar, executar a etapa dois (analisar e comparar).
se você quiser comparar apenas as alterações do registro, "regshot" será suficiente.
outra tentativa de solucionar o problema é verificar o que é executado na inicialização do Windows (e interrompe o aplicativo). você pode usar sunsinternals autoruns para isso, ou lugares habituais (como pasta de inicialização e "run" regkey) manualmente
se sua configuração for um arquivo msi, você poderá permitir que ele grave um arquivo de log ao reparar e verifique qual arquivo / regkey estava faltando (com msiexec.exe / i mysetup.msi /l*vc:\mylog.log)
outra forma seria (também funciona apenas com MSIs) é repará-lo seletivamente e verificar se funciona novamente. por exemplo. msiexec / fu mysetup.msi (apenas reparar chaves HKCU, se funcionar agora, o problema é um regkey) msiexec / fo mysetup.msi (reparar arquivos ausentes) etc etc
diga-me se precisar de mais informações sobre um método específico, Eu estou apenas dando uma visão geral aqui. mais detalhes sobre cada método seria um pouco demais para escrever agora:)