Windows kayıt defterini birkaç bilgisayar arasında senkronize etme


9

Windows XP kayıt defterinde, Dropbox tarzı 2 bilgisayarım arasında senkronize etmek istediğim belirli bir klasör var. İstediğim şekilde, bir bilgisayarda her kayıt defteri değişikliği yaptığımda, diğer bilgisayarlarda görünür.

Mümkün? Nasıl?

(Bunu neden yapmak istediğimi merak ediyorsanız: Tüm bilgisayarlarda aynı PuTTY oturumlarına sahip olmak istiyorum.)


Bir şey için küçük bir fikrim var ... Bana istediğiniz macun kayıt defteri anahtarlarının tam yolunu söyleyebilir misiniz? Şimdi çıkıyorum ama yaklaşık bir saat içinde geri olacak ve daha fazla yardım etmeye çalışacağız.
William Hilsum

@William Hilsum: Öyle HKEY_CURRENT_USER\Software\SimonTatham\PuTTY.
Ram Rachum

1
Bu bilgisayarlar genellikle aynı ağda mı? Yoksa bunun uzaktan da çalışmasını mı istiyorsunuz?
music2my

@Ram Rachum Her iki bilgisayarda da aynı mı?
William Hilsum

2
Bu Putty ile ilgili ise, neden taşınabilir macun kullanmıyorsunuz ? Ayarları bir dosyada saklar. Portable Putty kopyalarınızı dropbox veya başka bir yöntemle senkronize edin.
Zoredache

Yanıtlar:


6

Bu kadar uzun sürdüğüm için özür dilerim, cevap yazdığım en uzun süre bu bence!

Yıllar önce, çok benzer bir işlevsellik istedim, ama bunu yapmanın bir yolunu bulamadım ... şimdi biraz daha fazla programlama bildiğime göre, bir şey yapmaya çalışmanın değerli olacağını düşündüm.

Birkaç saat sonra sana veriyorum RegSync v1.

resim açıklamasını buraya girin

Kayıt defterinin tam yolunun bir kopyasını (sizin durumunuzda HKEY_CURRENT_USER\Software\SimonTatham\PuTTY) almanız ve kutuya yapıştırmanız yeterlidir .

Başlat'a tıklayın, bu kayıt defteri anahtarını herhangi bir ekleme, silme veya değişiklik için otomatik olarak izler.

Herhangi bir değişiklik algılarsa , uygulamanın çalıştığı klasörde *çağrılan bir kayıt defteri dosyasını dışa regsync.regaktarır.

* Bir seferde birden fazla değişiklik olması durumunda, ilk değişiklikten sonra 5 saniye bekleyecektir.

Başlat düğmesine basıldıktan / basıldıktan sonra, regsync.regdosyada yapılan değişiklikler için bulunduğu klasörü izler ve bir değişiklik algılarsa, yerel olarak seçtiğiniz kayıt defteri anahtarındaki TÜM girdileri siler ve kayıt defteri dosyasını alır. (Lütfen dikkatli olun, .Regdosyanın izlediği konumla eşleşmediğini kontrol etmeyecektir , bu nedenle, her bilgisayarda farklı konumlar yazarsanız, kötü gidebilir).

Yani ... bunu dropbox veya windows paylaşımlarından veya başka bir klasör paylaşım servisinden çalıştırabilirsiniz. Her iki bilgisayarda da çalıştırın ve izlenecek kayıt defteri anahtarını seçin.

Ekstra notlar...

  • Bu, .NET framework sürüm 4 gerektirir.

  • Alt anahtarları izlemez, farklı klasörlerde olsa da aracın ek kopyalarını çalıştırabilirsiniz (Bunu geliştirmek için zaten fikirlerim var, ancak yalnızca insanların araca ihtiyacı varsa).

  • UAC yükseltmesi gerektirmezken, kayıt defterinden içe veya dışa aktarmaya çalıştığında (temelde regedit.exe/ çağırır reg.exe) her seferinde yükseltme için hata yaparsınız , bu yüzden programı yükseltilmiş olarak çalıştırmanızı öneririm ... Bunu birkaç kez yapar ve çok sinir bozucu olacak.

  • Hiçbir garanti - "PC'imde Çalışır" rozeti alır ve birkaç makinede test ettim, ama, bu kod inceleme ve saatlerce test yoktu ... Birkaç saat içinde bitirmeye başlayın.

Sonunda kullanmasanız bile, umarım dışarıdaki biri için faydalıdır!

İndirme: {link


Güzel! Kapalı kaynak tutuyor musunuz?
Ram Rachum

@Ram Rachum - Gerçekten açık kaynak (tüm projeler) fazla "yapmak" Ben kimse herhangi bir sorunuz varsa / bir şey görmek istiyorsa, ondan örnek kod sağlamak için çok mutlu olacak ... veya paylaşmak Dropbox üzerinden arkadaşlarınızla kodlayın .... Herhangi bir öneriniz varsa veya iyileştirme istiyorsanız, bana bildirin. ... Hâlâ oldukça yeni bir programcıyım ve kafamı VCS sistemlerinde bulmaya çalışıyorum ... Anladığımda, yükleyebilir / paylaşmaya başlayabilirim!
William Hilsum

1
@William; Açık Kaynak fantezi olmak zorunda değildir, sadece kaynağı sıkıştırın ve yanına yükleyin ve açık kaynak!
Phoshi

@Phoshi -: / iyi bir nokta ... Belki yakında!
William Hilsum

RegSync v1 gelecekte açık kaynak kod kodlamalı mı? şirketim ortamlarda herhangi bir uygulama veya program yüklemeden önce denetim kaynak koduna ihtiyaç duyar.
Kiquenet

5

tam olarak istediğiniz girdileri içeren bir kayıt defteri dosyası ile regedit.exe dosyasını sessiz modda çalıştırmak daha kolay olabilir. Her bilgisayarı paylaşılan bir konumdan çalıştıracak şekilde ayarlayabilirsiniz, böylece tek yapmanız gereken dosyayı güncellemektir ve regedit.exe'nin bir sonraki zamanlanmış çalıştırması her bilgisayarda çalıştığında yeni girişleri alırlar.

gibi bir şey:

regedit.exe /S puttyentries.reg

Kayıt defteri anahtarını bir bilgisayardan almak için şunu kullanırsınız:

regedit.exe /E puttyentries.reg "registry_key"

Muhtemelen, vbscript veya autoit'i kullanarak kayıt defteri için uzaktan okuma / yazma işlevlerini kullanarak tüm işlemi otomatikleştirmenin daha zarif yolları olacaktır.

AutoIt ile her 30 dakikada bir uzak bilgisayarla senkronize edilecek bir örnek (uyarı, bunu gerçekten test etmedim):

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

Bir dosyayı manuel olarak düzenlemek istemem. Can regeditda sessiz modda kayıt defterinden ayıklamak?
Ram Rachum

okuma seçeneği eklemek için düzenlendi, daha zarif bir senaryo seçeneği için ne yazabileceğimi göreceğim
MaQleod

1
Bu, sorduğu adam için yeterli olabilir, ancak bu ayarların silinmesini senkronize etmez. Bu nedenle, bir ana makine dışa aktarımında bir macun ayarını silerseniz, bölüm ana makinenize yeniden içe aktarırsanız, silme gerçekleşmez. Bir yapılandırma öğesini sildiğiniz ana bilgisayara geri aktarıp yeniden içe aktardığınızda, silinen öğeniz geri yüklenir.
Zoredache

tamam, tüm süreci kendi başına yapacak bir autoit örneği ekledi (veya en azından test etmemeliydim, bu yüzden lütfen önce her şeyi yedekleyin).
MaQleod
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.