Bem, fazer uma reinstalação de fábrica lhe daria uma pista - há um bom trabalho em segundo plano. Eles basicamente configuram um script de instalação autônomo que instalará o software em uma instalação nova, fará a configuração inicial e assim por diante. Você também pode usar scripts pós-instalação para executar instalações e configurar as preferências do usuário.
Para versões modernas do Windows, isso exigiria o uso de WAIK e construindo uma instalação de referência . Você também pode ter um script que instale software - há uma página no sourceforge que é um excelente recurso sobre os switches para vários instaladores .
No entanto, para nós menores mortais, que só fazem a instalação rara ...
Organização é tudo. Eu tenho uma pasta de backup com chaves para um sistema. Eu tenho mídia (e baixei o que preciso diretamente do MS). Eu uso o rufus para construir USBs de inicialização (instalações USB são mais rápidas)
Tenho a tendência de fazer uma nova instalação, depois atualizar as coisas com atualização off-line do wsus - Eu mantenho um conjunto de atualizações para os sistemas operacionais Eu uso o diretório, então não preciso fazer o download de cada vez.
Instale o software o mais longe possível de forma automatizada - eu prefiro ninite mas oneget ou chocolaty é uma opção melhor. Isso garante que eu tenha a versão mais recente e seja mais fácil do que manipular tudo manualmente.
Em alguns casos, tenho pastas com cópias das configurações do meu usuário. O Hexchat, por exemplo, tem customização que datam de décadas e 3-4 diferentes xchat forks para mim, e eu apenas os copio.
Eu o construo, faço uma imagem 'gold' e uso isso quando preciso reinstalar restaurando essa configuração. Diferente de uma caixa linux, eu preciso fazer o software de vários lugares no momento, e isso acelera as coisas, mesmo quando o ninite cobre a maior parte do meu básico.