Menyinkronkan registri Windows di antara beberapa komputer

9

Ada folder tertentu di registri Windows XP saya yang ingin saya sinkronkan antara 2 komputer saya, gaya Dropbox. Yang saya inginkan adalah setiap kali saya membuat perubahan registri di satu komputer, itu muncul di komputer lain.

Bisa jadi? Bagaimana?

(Jika Anda ingin tahu mengapa saya ingin melakukan ini: Saya ingin memiliki sesi Putty yang sama di semua komputer.)

Ram Rachum
sumber
Saya punya sedikit ide untuk sesuatu ... Bisakah Anda memberi tahu saya jalur yang tepat dari kunci registri dempul yang Anda inginkan? Saya keluar sekarang tetapi akan kembali sekitar satu jam dan akan mencoba untuk membantu lebih lanjut.
William Hilsum
@ William Hilsum: Ini HKEY_CURRENT_USER\Software\SimonTatham\PuTTY.
Ram Rachum
1
Apakah komputer ini umumnya di jaringan yang sama? Atau Anda ingin ini bekerja dari jarak jauh juga?
music2myear
@ Ram Rachum Apakah itu sama di kedua komputer?
William Hilsum
2
Jika ini tentang Dempul, Mengapa tidak menggunakan dempul portabel ? Ini menyimpan pengaturan dalam file. Sinkronkan salinan Portable Putty Anda melalui dropbox atau apa pun.
Zoredache

Jawaban:

6

Maaf sudah lama, saya pikir ini adalah yang terpanjang yang saya ambil untuk menulis jawaban!

Beberapa waktu yang lalu, saya ingin fungsionalitas yang sangat mirip, tetapi, saya tidak dapat menemukan cara untuk melakukannya ... sekarang saya tahu lebih banyak pemrograman, saya pikir itu akan layak dicoba untuk membuat sesuatu.

Jadi, beberapa jam kemudian, aku memberimu RegSync v1,.

masukkan deskripsi gambar di sini

Cukup ambil salinan jalur registri lengkap (dalam kasus Anda HKEY_CURRENT_USER\Software\SimonTatham\PuTTY) dan tempel ke dalam kotak.

Klik mulai dan itu akan secara otomatis memonitor kunci registri itu untuk setiap penambahan, penghapusan atau perubahan.

Jika mendeteksi perubahan, itu akan *mengekspor file registri yang disebut regsync.regdalam folder yang sama dengan aplikasi yang sedang berjalan.

* Jika ada lebih dari satu perubahan pada satu waktu, itu akan menunggu selama 5 detik setelah perubahan pertama.

Ketika / setelah tombol mulai ditekan, ia akan memonitor folder itu untuk setiap perubahan pada regsync.regfile, dan jika mendeteksi perubahan, itu akan menghapus SEMUA entri dalam kunci registri yang Anda pilih secara lokal dan mengimpor file registri. (Harap berhati-hati, itu tidak akan memeriksa .Regfile yang cocok dengan lokasi yang dipantau, jadi, jika Anda mengetik lokasi yang berbeda pada setiap pc, itu mungkin memburuk).

Jadi ... Anda dapat menjalankan ini dari dropbox atau share windows, atau layanan berbagi folder lainnya. Jalankan di kedua komputer dan pilih kunci registri untuk dipantau.

Catatan tambahan ...

  • Ini membutuhkan .NET framework versi 4.

  • Itu tidak memonitor subkunci, Anda dapat menjalankan salinan tambahan alat meskipun di folder yang berbeda (saya sudah punya ide untuk meningkatkan ini, tetapi, hanya jika orang membutuhkan alat tersebut).

  • Meskipun tidak memerlukan peningkatan UAC, itu akan mengganggu Anda untuk peningkatan setiap kali mencoba mengimpor atau mengekspor dari registri (pada dasarnya panggilan regedit.exe/ reg.exe), jadi, saya sarankan Anda menjalankan program yang ditinggikan ... Itu melakukan ini beberapa kali dan itu akan menjadi sangat menjengkelkan.

  • Tidak ada jaminan - Ini mendapat lencana "Bekerja pada PC saya", dan saya telah mengujinya di beberapa mesin, tetapi, ini belum memiliki tinjauan kode dan jam pengujian ... Mulai selesai dalam beberapa jam.

Bahkan jika Anda tidak menggunakannya, saya harap ini berguna bagi seseorang di luar sana!

Unduh Tautan

William Hilsum
sumber
Bagus! Apakah Anda menjaganya tetap tertutup?
Ram Rachum
@Ram Rachum - Saya benar-benar tidak "melakukan" open source (seluruh proyek) banyak ... Jika ada yang punya pertanyaan / ingin melihat sesuatu, saya akan sangat senang untuk memberikan kode sampel dari itu ... atau berbagi kode dengan teman-teman melalui Dropbox .... Jika Anda memiliki saran atau menginginkan perbaikan, beri tahu saya. ... Saya masih seorang programmer yang baru dan telah mencoba untuk mendapatkan kepalaku di sekitar sistem VCS ... Ketika saya memahaminya, saya dapat mengunggah / mulai berbagi!
William Hilsum
1
@ William; Open Source tidak harus mewah, cukup zip up sumbernya dan unggah bersama dan itu open source!
Phoshi
@ Phoshi -: / Poin bagus ... Mungkin segera!
William Hilsum
RegSync v1 akan berada dalam codeplex di masa depan seperti open source? perusahaan saya memerlukan kode sumber audit sebelum menginstal aplikasi atau program apa pun di lingkungan.
Kiquenet
5

mungkin lebih mudah untuk menjalankan regedit.exe dalam mode diam dengan file registri yang berisi entri persis yang Anda inginkan. Anda dapat mengatur setiap komputer untuk menjalankannya dari lokasi bersama sehingga yang perlu Anda lakukan adalah memperbarui file dan ketika menjalankan jadwal berikutnya regedit.exe berjalan di setiap komputer, mereka mendapatkan entri baru.

sesuatu seperti:

regedit.exe /S puttyentries.reg

Untuk menarik kunci registri dari satu komputer, Anda akan menggunakan:

regedit.exe /E puttyentries.reg "registry_key"

Mungkin akan ada cara yang lebih elegan untuk mengotomatisasi seluruh proses menggunakan vbscript atau autoit dengan fungsi baca / tulis jarak jauh untuk registri.

Berikut ini adalah contoh dengan AutoIt yang akan menyinkronkan setiap 30 menit dengan komputer jarak jauh (peringatan, saya benar-benar belum menguji ini):

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
MaQleod
sumber
Saya tidak ingin mengedit file secara manual. Bisakah regeditjuga mengekstrak dari registri dalam mode diam?
Ram Rachum
diedit untuk menambahkan opsi baca, saya akan melihat apa yang bisa saya tulis untuk opsi skrip yang lebih elegan
MaQleod
1
Ini mungkin memadai untuk orang yang bertanya, tetapi ini tidak akan menyinkronkan penghapusan pengaturan. Jadi, jika Anda menghapus pengaturan dempul pada satu ekspor host, impor kembali pada host bagian Anda, penghapusan tidak akan terjadi. Ketika Anda mengekspor dan mengimpor kembali host yang Anda hapus item konfigurasi, item yang Anda hapus akan dikembalikan.
Zoredache
ok, menambahkan contoh autoit yang akan melakukan seluruh proses sendiri (atau setidaknya seharusnya, saya belum mengujinya, jadi tolong cadangkan semuanya dulu).
MaQleod