Controle de versão para configuração do Windows

8

Como posso colocar minha configuração pessoal do Windows em controle de versão ?

Resumo (detalhes e exemplos a seguir):

  • Configuração pessoal (por exemplo, preferências de desktop), não configuração do sistema (por exemplo, drivers); deve funcionar sem direitos de administrador
  • Controle de versão, não backups ou imagens de disco

Aqui estão algumas coisas que eu quero fazer:

  • Confirme o estado atual da minha configuração em um repositório, de preferência com alguma granularidade (se fiz duas alterações, gostaria de poder cometer uma sem comprometer a outra).
  • Escreva uma entrada do changelog sempre que eu confirmar e veja a lista de entradas do changelog para cada arquivo de configuração.
  • Veja as diferenças entre o estado atual e uma versão do repositório.
  • Faça o check-out do 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).

< adicionado1 > Eu não tentarei dar uma definição completamente precisa de “configuração”; Eu 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 meu menu "Programas" específico do usuário,…). Não quero incluir meus documentos ou aplicativos instalados. < / adicionado1 >

< adicionado2 > Observe que estou direcionando minha configuração pessoal, não a configuração do sistema (isso também seria útil, mas não é o propósito dessa pergunta). Por exemplo, espero que uma solução funcione sem direitos de administrador. < / adicionado1 >

O que faço no unix é colocar (uma seleção) meus arquivos de ponto sob controle de versão . No Windows, eu presumo que devo cometer o registro e alguns arquivos (quais?) Em Application Data . Eu gostaria de algo melhor do que colocar o arquivo de registro inteiro sob controle de versão (isso não é granularidade suficiente e temo problemas de bloqueio). < added1 > O ideal seria usar 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. < / adicionado1 >

Atualmente, preciso trabalhar com o Windows 2000 e o Windows XP. Como isso é para uma máquina de trabalho, o payware não serve (o código aberto seria ideal). Estou mais confortável com a linha de comando do que com GUIs.

< adicionado1 > Aqui está um exemplo de fluxo de trabalho:

  • Um dia, decido que quero que meu plano de fundo da área de trabalho fique rosa. Então eu faço a mudança através da GUI. Isso modifica uma linha em um arquivo de configuração no registro. Eu então confirmo a mudança, para acompanhar isso.
  • Mais tarde, pergunto-me por que meu plano de fundo da área de trabalho é rosa. Então eu procuro por “cor desktop” no changelog.
  • Um dia, preciso usar uma nova máquina. Então eu faço check-out do meu repositório de configuração e voilà, área de trabalho rosa.

Aqui estão algumas coisas que não estou tentando fazer:

  • Não estou tentando fazer backups. Eu quero ser capaz de rastrear alterações (por semântica, ou pelo menos sintaxe, não apenas por data), e para compartilhar informações entre máquinas (um repositório, vários checkouts).

  • Eu não estou tentando replicar uma instalação do Windows. Não quero transferir dependências de hardware, aplicativos instalados ou documentos.

< / adicionado1 >

    
por Gilles 15.09.2010 / 20:44

7 respostas

9

Até onde eu sei, a configuração do Windows é muito dispersa para fazer 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 até mesmo na mesma), porque muitas chaves são muito específicas para a máquina e porque algumas delas são protegidas pelo Windows.

A restauração do sistema visa manter o estado da máquina, mas não é confiável, pois decidirá quais backups serão excluídos para economizar espaço e terá outros problemas negativos, como não estar disponível no Windows 2000.

A única solução universal que posso ver é a imagem do disco do sistema em sua totalidade e para restaurá-lo quando necessário, usando um produto de imagem de disco.

Existem vários produtos de imagem de disco de qualidade muito boa, o que posso recomendar se você achar que essa solução lhe interessa. Vários deles mantêm um repositório de imagens com descritivo. Embora os melhores sejam comerciais, os freeware ainda são muito bons.

A criação de imagens em disco funciona melhor quando a unidade do sistema não contém dados do usuário.

    
por 24.09.2010 / 08:41
2

Vindo do lado do servidor da cerca, onde você esperaria que fôssemos muito paranóicos sobre as mudanças de configuração e de onde elas vieram, posso dizer que elas realmente não existem. O rastreamento global de configuração é um processo totalmente manual na maioria das vezes. É possível monitorar (mas não prevenir ) áreas específicas de registro para mudanças, mas eu não conheço nenhum pacote de software livre / barato que permita isso e vários muito caros (é um problema muito mais complexo que o rastreamento informações de arquivo e, em seguida, a difusão de dois arquivos de texto, portanto, caro).

Isso deixa os administradores do Unix insatisfeitos. Kyle Brandt , sysadmin para StackOverflow Inc, estava reclamando sobre esse tipo de coisa há algumas semanas atrás, enquanto ele estava encenando um novo lote de máquinas Windows para o StackExchange. Todos os SysAdmins do Linux / Windows se solidarizaram com ele. Simplesmente não há um equivalente no Windows para colocar o / etc no VCS. Existem alguns kludges feios por aí, como imagem de disco / instantâneo ou apenas forçando alterações de configuração através de Diretivas de Grupo (e rastreie alterações nos GPOs manualmente), mas nada tão elegante.

Desculpe.

    
por 26.09.2010 / 06:53
2

Pessoalmente, acompanho as alterações no registro do Windows com Registro . Você tira um instantâneo antes da mudança e depois um segundo depois de fazer isso. Você também pode obter um bom relatório HTML das alterações. É claro que você precisa 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 no sistema de arquivos, o acompanhamento / backup mais próximo provavelmente será DocShield . Você pode rastrear qualquer pasta com ele, embora os dados do aplicativo sejam, provavelmente, o seu melhor palpite para suas preferências pessoais, mudanças da maioria dos softwares com reconhecimento de 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} das pastas que você precisa e depois zipar / 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.

    
por 26.09.2010 / 10:44
1

Não seria simples, mas você poderia usar o Sysinternals Process Monitor para determinar quais arquivos e configurações do Registro foram alterados. Você poderia então 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 AutoIt. Em seguida, verifique o script resultante em seus vcs. Eu uso um método semelhante para automatizar configurações estranhas em scripts de logon e modelos de administração de diretiva de grupo personalizados.

    
por 26.09.2010 / 05:47
1

Eu não tenho uma solução de sistema operacional para você, mas existe uma possibilidade paga. O que você poderia fazer é fazer o backup da sua unidade usando o XML do DriveImage

O formato de backup é XML. Você pode então salvar este arquivo xml (os diffs também são possíveis) para o seu sistema de controle de versão favorito.

Como HarryMC disse, você não pode realmente usar essa imagem para fazer alterações em um novo sistema, mas você definitivamente poderia usar a imagem em um novo sistema com exatamente o mesmo hardware.

    
por 27.09.2010 / 05:34
1

Você pode usar o software de gerenciamento de perfis do ForensiT para copiar todo o seu perfil com a configuração de uma caixa do Windows. Acesse aqui para conferir: Gerenciador de perfis de usuário

    
por 30.09.2010 / 15:03
-2

Parece-me que você está descrevendo um aplicativo de banco de dados onde você 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 pesquisar o banco de dados para o Pink Desk top e obter a instrução que implementará essa alteração em um computador diferente. Isto é, se eu entendi suas intenções

    
por 27.09.2010 / 03:17