Como posso colocar minha configuração pessoal do Windows sob controle de versão ?
Resumo (detalhes e exemplos a seguir):
- Configuração pessoal (por exemplo, preferências da área de trabalho), não configuração do sistema (por exemplo, drivers); deve funcionar sem direitos de administrador
- Controle de versão, não backups ou imagem de disco
Aqui estão algumas coisas que eu quero poder fazer:
- Confirme o estado atual da minha configuração em um repositório, de preferência com alguma granularidade (se eu tiver feito duas alterações, gostaria de poder confirmar uma sem confirmar a outra).
- Escreva uma entrada no registro de alterações sempre que eu confirmar, e veja a lista de entradas para cada arquivo de configuração.
- Veja as diferenças entre o estado atual e uma versão do repositório.
- Faça check-out no meu repositório em uma nova máquina Windows e reproduza minha configuração (pelo menos se a nova máquina tiver a mesma versão do Windows).
<added1> Não tentarei dar uma definição completamente precisa de "configuração"; Estou tentando cobrir todos os tipos de preferências pessoais (por exemplo, qualquer coisa configurável no painel de controle sem direitos de administrador, atalhos no menu “Programas” específicos do usuário,…). Não quero incluir meus documentos ou aplicativos instalados. </added1>
<added2> Observe que estou direcionando minha configuração pessoal, não a configuração do sistema (isso seria útil também, mas não é o objetivo desta pergunta). Por exemplo, espero que uma solução funcione sem direitos de administrador. </added1>
O que faço no unix é colocar (uma seleção de) meus arquivos de ponto sob controle de versão . No Windows, presumo que devo confirmar o registro e alguns arquivos (quais?) Application Data
. Gostaria de algo melhor do que colocar todo o arquivo do Registro sob controle de versão (isso não é granularidade suficiente e receio bloquear problemas). <added1> Idealmente, eu usaria wrappers ou scripts com algum software de controle de versão comum (Bazaar, CVS, Darcs, Git, Mercurial, Subversion, ...), mas isso não é um requisito absoluto. </added1>
Atualmente, preciso trabalhar com o Windows 2000 e Windows XP. Como isso é para uma máquina de trabalho, o payware não funciona (código aberto seria o ideal). Estou mais à vontade com a linha de comando do que com as GUIs.
<added1> Veja um exemplo de fluxo de trabalho:
- Um dia, decido que quero que o fundo da minha área de trabalho seja rosa. Então, eu faço a alteração através da GUI. Isso modifica uma
linha em umachave doarquivo de configuraçãono registro. Em seguida, comprometo a alteração, para acompanhá-la. - Mais tarde, eu me pergunto por que meu plano de fundo da área de trabalho é rosa. Então, eu procuro por "cor da área de trabalho" no registro de alterações.
- Um dia eu preciso usar uma nova máquina. Então, eu saio do meu repositório de configuração e voilà, desktop rosa.
Aqui estão algumas coisas que não estou tentando fazer:
Não estou tentando fazer backups. Quero poder rastrear alterações (por semântica, ou pelo menos sintaxe, não apenas por data) e compartilhar informações entre máquinas (um repositório, vários checkouts).
Não estou tentando replicar uma instalação do Windows. Não quero manter dependências de hardware, aplicativos instalados ou documentos.
</added1>
fonte
Respostas:
Até onde eu sei, a configuração do Windows é muito dispersa para um backup confiável, entre muitos arquivos e locais no registro.
É impossível fazer backup do registro em uma máquina e restaurá-lo em outra (ou mesmo na mesma), porque muitas chaves são específicas demais para a máquina e porque algumas são protegidas pelo Windows.
A Restauração do sistema visa manter o estado da máquina, mas, para o seu propósito, não é confiável, pois decide quais backups excluir para economizar espaço e tem outros problemas negativos, como não estar disponível no Windows 2000.
A única solução universal que posso encontrar é criar uma imagem completa do disco do sistema e restaurá-lo quando necessário, usando um produto de imagem de disco.
Existem vários produtos de imagem de disco de muito boa qualidade, que eu recomendo se você achar que esta solução lhe interessa. Vários deles mantêm um repositório de imagens com descritivo. Embora os melhores sejam comerciais, os de freeware ainda são muito bons.
As imagens de disco funcionam melhor quando a unidade do sistema não contém dados do usuário.
fonte
Vindo do lado do servidor, onde você espera que fiquemos paranóicos com relação às alterações de configuração e de onde elas vieram, posso dizer que elas realmente não existem. O rastreamento de configuração global é um processo totalmente manual para a maior parte. É possível monitorar (mas não impedir ) áreas de registro específicas em busca de alterações, mas não conheço nenhum pacote de software gratuito / barato que permita isso e vários muito caros (é um problema muito mais complexo do que rastrear informações do arquivo e depois diferenciar dois arquivos de texto; portanto, caro).
Isso deixa os administradores do Unix extravagantes. Kyle Brandt , administrador de sistemas da StackOverflow Inc, estava discutindo esse tipo de coisa há algumas semanas, enquanto preparava um novo lote de máquinas Windows para o StackExchange. O crossover Linux / Windows SysAdmins todos se solidarizaram com ele. Simplesmente não há equivalente ao Windows em colocar / etc no VCS. Existem alguns argumentos feios por aí, como criação de imagens / instantâneos de disco ou apenas forçar alterações de configuração por meio das Diretivas de Grupo (e acompanhar manualmente as alterações nos GPOs), mas nada tão elegante.
Desculpa.
fonte
Pessoalmente, acompanho as alterações no registro do Windows com o Regshot . Você tira um instantâneo antes da alteração e depois um segundo depois de fazer a alteração. Você também pode obter um bom relatório HTML das alterações. É claro que você deve garantir que apenas algumas alterações sejam feitas entre os instantâneos, se quiser descobrir o que cada alteração faz. Regshot é um programa de código aberto.
Se você estiver procurando por alterações / rastreamento de sistema de arquivos o mais próximo possível, provavelmente haveria o DocShield . Você pode rastrear qualquer pasta com ele, embora os dados do aplicativo sejam provavelmente o seu melhor palpite para as alterações nas preferências pessoais do software que reconhece a maioria dos perfis de usuários do Windows. O DocShield é gratuito para usuários domésticos. Você pode imitar o que ele faz usando
xcopy /d:{m-d-y}
as pastas necessárias e depois compactar / 7z a saída.Em seguida, adicione a saída de ambos os backups a qualquer repositório de controle de versão com suas observações.
fonte
reg.exe
e Cygwinregtool
? Quanto ao DocShield, o que faz com que qualquer software de controle de versão não funcione melhor?Não seria simples, mas você poderia usar o Sysinternals Process Monitor para determinar quais arquivos e configurações do registro foram alterados. Você pode adicionar as edições do registro e os arquivos atualizados em um programa maior que fará as alterações para você. Você provavelmente poderia usar o Power Shell ou algo como o AutoIt. Em seguida, verifique o script resultante em seus vcs. Uso um método semelhante para automatizar configurações estranhas em scripts de logon e modelos de administração de Diretiva de Grupo personalizados.
fonte
Application Data
conteúdo, certo? Como eu detectaria as alterações feitas quando o programa monitor não está sendo executado por algum motivo? Existe uma maneira razoável de estender o fluxo de trabalho para ativar as operações de atualização (ou seja, eu já fiz uma verificação geral e quero aplicar mais algumas alterações feitas em outra máquina)?Não tenho uma solução de SO para você, mas existe uma possibilidade paga. O que você pode fazer é fazer backup da sua unidade usando o DriveImage XML
O formato de backup é XML. Você pode salvar esse arquivo xml (difs também são possíveis) no seu sistema de controle de versão favorito.
Como o HarryMC disse, você realmente não pode usar esta imagem para fazer alterações em um novo sistema, mas definitivamente pode usar a imagem em um novo sistema com exatamente o mesmo hardware.
fonte
Você pode usar o software de gerenciamento de perfis do ForensiT para copiar todo o seu perfil com a ativação de uma caixa do Windows. Acesse aqui para conferir: User Profile Manager
fonte
Parece-me que você está descrevendo um aplicativo de banco de dados em que rastreia as chaves do registro e as indexa por uma tag. Embora eu não seja técnico o suficiente com chaves de registro para fazer isso, no seu exemplo, você deseja procurar no Pink Desk top do banco de dados e obter as instruções que implementarão essa alteração em outro computador. Ou seja, se eu entendo suas intenções
fonte