Windows XP 레지스트리에는 Dropbox 스타일의 두 컴퓨터간에 동기화하려는 특정 폴더가 있습니다. 내가 원하는 방식은 한 컴퓨터에서 레지스트리를 변경할 때마다 다른 컴퓨터에 나타납니다.
가능한? 어떻게?
(이 작업을 수행하려는 이유가 궁금한 경우 모든 컴퓨터에서 동일한 PuTTY 세션을 원합니다.)
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY
.
Windows XP 레지스트리에는 Dropbox 스타일의 두 컴퓨터간에 동기화하려는 특정 폴더가 있습니다. 내가 원하는 방식은 한 컴퓨터에서 레지스트리를 변경할 때마다 다른 컴퓨터에 나타납니다.
가능한? 어떻게?
(이 작업을 수행하려는 이유가 궁금한 경우 모든 컴퓨터에서 동일한 PuTTY 세션을 원합니다.)
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY
.
답변:
너무 오래 걸려서 죄송합니다. 답을 쓰는 데 걸린 시간이 가장 오래 걸린 것 같습니다!
오래 전, 비슷한 기능을 원했지만 그 방법을 찾을 수 없었습니다. 이제 좀 더 많은 프로그래밍을 알고 있으므로 무언가를 만들려고 노력할 가치가 있다고 생각했습니다.
몇 시간 후에 저는 여러분에게 드리겠습니다 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"배지를 받고 몇 대의 컴퓨터에서 테스트했지만 코드 검토 및 테스트 시간이 없었습니다 ... 몇 시간 안에 완료됩니다.
당신이 그것을 사용하지 않더라도, 나는 그것이 누군가에게 유용하기를 바랍니다!
원하는 정확한 항목이 포함 된 레지스트리 파일을 사용하여 자동 모드에서 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
자동 모드로 레지스트리에서 추출 할 수도 있습니까?