여러 컴퓨터간에 Windows 레지스트리 동기화


9

Windows XP 레지스트리에는 Dropbox 스타일의 두 컴퓨터간에 동기화하려는 특정 폴더가 있습니다. 내가 원하는 방식은 한 컴퓨터에서 레지스트리를 변경할 때마다 다른 컴퓨터에 나타납니다.

가능한? 어떻게?

(이 작업을 수행하려는 이유가 궁금한 경우 모든 컴퓨터에서 동일한 PuTTY 세션을 원합니다.)


뭔가에 대한 작은 아이디어가 있습니다 ... 당신이 원하는 퍼티 레지스트리 키의 정확한 경로를 말해 줄 수 있습니까? 나는 지금 나가고 있지만 약 1 시간 후에 돌아와서 더 많은 것을 도울 것입니다.
윌리엄 힐섬

@ 윌리엄 힐섬 : HKEY_CURRENT_USER\Software\SimonTatham\PuTTY.
Ram Rachum 18:32에

1
이러한 컴퓨터는 일반적으로 동일한 네트워크에 있습니까? 아니면 이것이 원격으로 작동하기를 원합니까?
music2myear

@Ram Rachum 두 컴퓨터에서 동일합니까?
윌리엄 힐섬

2
이것이 퍼티에 관한 것이라면 왜 휴대용 퍼티를 사용하지 않습니까? 설정을 파일에 저장합니다. 보관 용 상자 등을 통해 휴대용 퍼티 사본을 동기화하십시오.
Zoredache

답변:


6

너무 오래 걸려서 죄송합니다. 답을 쓰는 데 걸린 시간이 가장 오래 걸린 것 같습니다!

오래 전, 비슷한 기능을 원했지만 그 방법을 찾을 수 없었습니다. 이제 좀 더 많은 프로그래밍을 알고 있으므로 무언가를 만들려고 노력할 가치가 있다고 생각했습니다.

몇 시간 후에 저는 여러분에게 드리겠습니다 RegSync v1.

여기에 이미지 설명을 입력하십시오

전체 레지스트리 경로 (귀하의 경우 HKEY_CURRENT_USER\Software\SimonTatham\PuTTY) 의 사본을 상자에 붙여 넣기 만하면 됩니다.

시작을 클릭하면 추가, 삭제 또는 변경 사항이 있는지 해당 레지스트리 키를 자동으로 모니터링합니다.

변경 사항을 감지 하면 응용 프로그램이 실행되는 폴더와 같은 폴더에 *있는 레지스트리 파일 을 내 보냅니다 regsync.reg.

* 한 번에 두 개 이상의 변경이 발생한 경우 첫 번째 변경 후 5 초 동안 기다립니다.

시작 버튼을 누르면 / 후에 regsync.reg파일 변경 사항이있는 폴더를 모니터링하고 변경 사항을 감지하면 로컬에서 선택한 레지스트리 키의 모든 항목을 삭제하고 레지스트리 파일을 가져옵니다. ( .Reg파일이 모니터링하는 위치와 파일이 일치 하는지 확인하지 않으므로 각 PC에 다른 위치를 입력하면 잘못 될 수 있습니다).

따라서 ... dropbox 또는 Windows 공유 또는 다른 폴더 공유 서비스에서이를 실행할 수 있습니다. 두 컴퓨터에서 모두 실행하고 모니터링 할 레지스트리 키를 선택하십시오.

추가 메모 ...

  • 이를 위해서는 .NET 프레임 워크 버전 4가 필요합니다.

  • 하위 키는 모니터링하지 않지만 다른 폴더에서 도구의 추가 사본을 실행할 수 있습니다 (이미 개선 할 아이디어가 있지만 사람들이 도구가 필요한 경우에만).

  • UAC 권한 상승이 필요하지는 않지만 레지스트리에서 가져 오거나 내보낼 때마다 (기본적으로 regedit.exe/ 호출 reg.exe) 상승 할 때 버그가 발생 하므로 프로그램을 높게 실행하는 것이 좋습니다. 여러 번 수행됩니다. 매우 성 가실 것입니다.

  • 보증 없음- "Works on my PC"배지를 받고 몇 대의 컴퓨터에서 테스트했지만 코드 검토 및 테스트 시간이 없었습니다 ... 몇 시간 안에 완료됩니다.

당신이 그것을 사용하지 않더라도, 나는 그것이 누군가에게 유용하기를 바랍니다!

다운로드 링크


좋은! 비공개 소스를 유지하고 있습니까?
Ram Rachum

@Ram Rachum-나는 오픈 소스 (전체 프로젝트)를 정말로 "하지"않는다. 누군가 궁금한 점이 있거나 궁금한 점이 있으면 샘플 코드를 제공하거나 기꺼이 공유 할 것이다. Dropbox를 통해 친구들과 코드를 작성해보세요. 제안이 있거나 개선이 필요하면 알려주십시오. ... 나는 여전히 새로운 프로그래머이며 VCS 시스템을 둘러 보려고 노력하고 있습니다 ... 이해하면 업로드 / 공유를 시작할 수 있습니다!
윌리엄 힐섬

1
@ 윌리엄; 오픈 소스는 화려할 필요가 없습니다. 소스를 압축하여 함께 업로드하면 오픈 소스입니다!
Phoshi

@Phoshi-: / 좋은 지적 ... 아마도 곧!
윌리엄 힐섬

RegSync v1은 향후 오픈 소스와 같은 코드로 제공 될 예정입니까? 우리 회사는 환경에 응용 프로그램이나 프로그램을 설치하기 전에 감사 소스 코드가 필요합니다.
Kiquenet April

5

원하는 정확한 항목이 포함 된 레지스트리 파일을 사용하여 자동 모드에서 regedit.exe를 실행하는 것이 더 쉬울 수 있습니다. 공유 위치에서 실행하도록 각 컴퓨터를 설정할 수 있으므로 파일을 업데이트하기 만하면 다음에 예약 된 regedit.exe 실행이 각 컴퓨터에서 실행될 때 새 항목을 얻습니다.

같은 :

regedit.exe /S puttyentries.reg

한 컴퓨터에서 레지스트리 키를 가져 오려면 다음을 사용하십시오.

regedit.exe /E puttyentries.reg "registry_key"

vbscript를 사용하여 전체 프로세스를 자동화하거나 레지스트리에 대한 원격 읽기 / 쓰기 기능이있는 autoit을 사용하는 더 우아한 방법이있을 것입니다.

다음은 원격 컴퓨터와 30 분마다 동기화되는 AutoIt의 예입니다 (캐비티, 실제로 테스트하지는 않았습니다).

While 1 ;loop indefinitely
    $i1 = 1 ;set initial counter
    While 1 ;loops through all sessions
        $keyname = RegEnumVal("\\REMOTECOMPUTER\HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions", $i1) ;reads session names
        If @error <> 0 Then ExitLoop ;exits when no more sessions exist
        $i2 = 1 ;set initial counter
        While 1 ;loops through all value in key until done
            $valuename = RegEnumVal("\\REMOTECOMPUTER\HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions" & "\" & $keyname, $i2) ;read value name from remote machine
            If @error <> 0 Then ExitLoop ;errors and escapes when no more values to read
            $type = @extended ;sets registry value type
            $value = RegRead("HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Session" & "\" & $keyname, $valuename) ;read value
            RegWrite("HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Session" & "\" & $keyname, $valuename, $type, $value) ;write key value to local machine
            $i2 = $i2 + 1 ;increment by 1
        WEnd
        $i1 = $i1 + 1 ;increment by 1
    WEnd
    Sleep(1800000) ;sleep 30 min
WEnd

파일을 수동으로 편집하고 싶지 않습니다. regedit자동 모드로 레지스트리에서 추출 할 수도 있습니까?
Ram Rachum 18:32에

읽기 옵션을 추가하기 위해 편집하면 더 우아한 스크립트 옵션으로 작성할 수있는 내용을 볼 수 있습니다.
MaQleod

1
요청한 사람에게는 적합 할 수 있지만 설정 삭제는 동기화되지 않습니다. 따라서 하나의 호스트 내보내기에서 퍼티 설정을 삭제하고 섹션 호스트에서 다시 가져 오면 삭제되지 않습니다. 구성 항목을 삭제 한 호스트에서 내보내고 다시 가져 오면 삭제 된 항목이 복원됩니다.
Zoredache

자, 전체 프로세스를 자체적으로 수행하는 autoit 예제를 추가했습니다 (적어도 테스트하지 않았으므로 모든 것을 먼저 백업하십시오).
MaQleod
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.