A modificação do registro do Cygwin não funciona

1

Estou tentando importar um arquivo .reg do shell Cygwin usando

regedit.exe <registryfile>.reg

As caixas de diálogo aparecem perguntando se eu quero aplicar as alterações do registro e clico em sim, mas nenhuma alteração é feita. Se eu executar exatamente o mesmo comando por meio do prompt de comando ou clicando duas vezes no arquivo .reg, as alterações serão aplicadas corretamente. O que é que o Cygwin impede que o regedit funcione, e como posso modificar o registro do Cygwin?

Descobri que minhas alterações estavam sendo aplicadas, mas a algum outro arquivo dat em algum lugar. Quando acabo de chamar o regedit do Cygwin, recebo um monte de chaves diferentes do esperado (por exemplo, todas as chaves MSSQL não estão lá, mas muitas outras chaves são) ... Por que o Cygwin abre um arquivo diferente?

    
por Samuel 24.10.2013 / 14:45

2 respostas

2

Partes desta resposta presumem que você esteja executando uma versão de 64 bits do Windows.

O Windows possui alguns redirecionamentos de registro, o que faz com que pareça diferente, dependendo do ambiente do qual você está visualizando. Os mais destacados são HKEY_CURRENT_USER , que é carregado dependendo do perfil do usuário em uso, e o redirecionamento para processos de 32 bits - um exemplo é a Wow6432Node em SOFTWARE , que é o que os aplicativos de 32 bits veem quando eles procuram pela chave SOFTWARE .

Provavelmente, o processo do Cygwin está sendo executado em um usuário diferente e, portanto, iniciando regedit sob esse usuário. Caso contrário, pode ser devido à execução no modo de 32 bits - sem saber quais chaves específicas você está segmentando, não posso dizer com certeza. Também pode haver outros redirecionamentos dos quais não conheço.

Para obter mais informações sobre o redirecionamento de registro de 32 bits (WOW64), consulte aqui .

Há uma lista de chaves redirecionadas aqui .

Para programadores, existem sinalizadores você pode usar para acessar uma versão específica do registro. Para o resto de nós, execute a versão apropriada do Regedit - pelo menos no Windows 7 e 8, %SystemRoot%\regedit.exe é sempre a versão de 64 bits e %SystemRoot%\SysWOW64\regedit.exe é sempre a versão de 32 bits.

    
por 24.10.2013 / 15:27
0

Para importar um arquivo chamado /tmp/file.reg para o registro usando o bash do Cygwin, tente:

reg=/tmp/file.reg
unix2dos $reg
cmd /c "%SystemRoot%\regedit.exe \s 'cygpath -w $reg'"
    
por 23.11.2013 / 01:23