कई कंप्यूटरों के बीच विंडोज रजिस्ट्री को सिंक करना


9

मेरी Windows XP रजिस्ट्री में एक निश्चित फ़ोल्डर है जिसे मैं अपने 2 कंप्यूटर, ड्रॉपबॉक्स-शैली के बीच सिंक्रनाइज़ करना चाहूंगा। जिस तरह से मैं चाहता हूं वह यह है कि हर बार जब मैं एक कंप्यूटर में रजिस्ट्री परिवर्तन करता हूं, तो वह दूसरे कंप्यूटर पर दिखाई देता है।

मुमकिन? कैसे?

(यदि आप इस बारे में उत्सुक हैं कि मैं ऐसा क्यों करना चाहता हूं: मैं सभी कंप्यूटरों पर एक ही पुट्टी सत्र करना चाहता हूं)


मेरे पास कुछ के लिए थोड़ा विचार है ... क्या आप मुझे पोटीन रजिस्ट्री कुंजियों का सही रास्ता बता सकते हैं जो आप चाहते हैं? मैं अभी बाहर जा रहा हूं लेकिन लगभग एक घंटे में वापस आऊंगा और आगे मदद करने की कोशिश करूंगा।
विलियम हिल्सम

@William हिल्सम: यह है HKEY_CURRENT_USER\Software\SimonTatham\PuTTY
राम रचम

1
क्या ये कंप्यूटर आम तौर पर एक ही नेटवर्क पर हैं? या आप चाहते हैं कि यह दूर से भी काम करे?
संगीत 2

@ राम रचम क्या दोनों कंप्यूटरों पर समान है?
विलियम हिल्सम

2
यदि यह पोटीन के बारे में है, तो पोर्टेबल पोटीन का उपयोग क्यों नहीं किया जाता है ? यह एक फाइल में सेटिंग्स को स्टोर करता है। ड्रॉपबॉक्स या जो कुछ भी के माध्यम से पोर्टेबल पोटीन की अपनी प्रतियां सिंक करें।
Zoredache

जवाबों:


6

इतना लंबा समय लेने के लिए क्षमा करें, मुझे लगता है कि यह सबसे लंबा समय है जब मैंने एक उत्तर लिखने के लिए लिया है!

युग पहले, मैं बहुत समान कार्यक्षमता चाहता था, लेकिन, मुझे इसे करने का एक तरीका नहीं मिला ... अब जब मैं काफी अधिक प्रोग्रामिंग जानता हूं, तो मुझे लगा कि यह कुछ बनाने की कोशिश के लायक होगा।

तो, कुछ घंटे बाद, मैं तुम्हें दे RegSync v1

यहाँ छवि विवरण दर्ज करें

बस पूर्ण रजिस्ट्री पथ (आपके मामले में HKEY_CURRENT_USER\Software\SimonTatham\PuTTY) की एक प्रति लें और इसे बॉक्स में पेस्ट करें।

प्रारंभ पर क्लिक करें और यह स्वचालित रूप से किसी भी परिवर्धन, विलोपन या परिवर्तन के लिए उस रजिस्ट्री कुंजी की निगरानी करेगा।

यदि यह किसी भी परिवर्तन का पता लगाता है, तो यह *एक रजिस्ट्री फ़ाइल regsync.regको उसी फ़ोल्डर में निर्यात करेगा जिसे एप्लिकेशन चल रहा है।

* एक बार में एक से अधिक परिवर्तन होने की स्थिति में, यह पहले परिवर्तन के बाद 5 सेकंड तक प्रतीक्षा करेगा।

प्रारंभ बटन दबाए जाने के बाद, यह उस फ़ोल्डर की निगरानी करेगा जो regsync.regफ़ाइल में किसी भी बदलाव के लिए है , और यदि यह एक परिवर्तन का पता लगाता है, तो यह आपके द्वारा स्थानीय रूप से चयनित रजिस्ट्री कुंजी में सभी प्रविष्टियों को हटा देगा और रजिस्ट्री फ़ाइल को आयात करेगा। (कृपया सावधान रहें, यह .Regफ़ाइल को उस स्थान से मेल नहीं खाता है जो वह निगरानी कर रहा है, इसलिए, यदि आप प्रत्येक पीसी पर अलग-अलग स्थान टाइप करते हैं, तो यह खराब हो सकता है)।

तो ... आप इसे ड्रॉपबॉक्स या विंडोज़ शेयर या किसी अन्य फ़ोल्डर साझा सेवा से चला सकते हैं। इसे दोनों कंप्यूटरों पर चलाएं और मॉनिटर करने के लिए रजिस्ट्री कुंजी का चयन करें।

अतिरिक्त नोट ...

  • इसके लिए .NET फ्रेमवर्क संस्करण 4 की आवश्यकता है।

  • यह उपकुंजियों की निगरानी नहीं करता है, आप विभिन्न फ़ोल्डरों में उपकरण की अतिरिक्त प्रतियां चला सकते हैं (मेरे पास इसे सुधारने के लिए पहले से ही विचार हैं, लेकिन, केवल अगर लोगों को उपकरण की आवश्यकता है)।

  • जब भी इसे UAC ऊंचाई की आवश्यकता नहीं होती है, यह आपको हर बार रजिस्ट्री से आयात या निर्यात करने की कोशिश करने के लिए ऊँचाई के लिए बग देगा (यह मूल रूप से कॉल regedit.exe/ reg.exe) करता है, इसलिए, मैं अनुशंसा करता हूं कि आप प्रोग्राम को ऊंचा चलाएं ... यह कई बार ऐसा होता है और यह बहुत कष्टप्रद हो जाएगा।

  • कोई गारंटी नहीं - इसे "मेरे पीसी पर काम करता है" बैज मिलता है, और मैंने इसे कुछ मशीनों पर परीक्षण किया है, लेकिन, इसमें कोड समीक्षा और परीक्षण के घंटे नहीं थे ... कुछ घंटों में समाप्त करना शुरू करें।

यहां तक ​​कि अगर आप इसका उपयोग नहीं करते हैं, तो मुझे आशा है कि यह किसी के लिए उपयोगी है!

डाउनलोड लिंक


अच्छा! क्या आप इसे बंद-स्रोत रख रहे हैं?
राम रचूम

@ राम रचम - मैं वास्तव में "ओपन सोर्स" (पूरी परियोजनाएं) ज्यादा नहीं करता हूं ... अगर किसी के पास कोई सवाल है / कुछ भी देखना चाहता है, तो मुझे इससे अधिक नमूना कोड प्रदान करने में खुशी होगी ... या साझा करें ड्रॉपबॉक्स पर दोस्तों के साथ कोड .... यदि आपके कोई सुझाव हैं या कोई सुधार चाहते हैं, तो मुझे बताएं। ... मैं अभी भी काफी नया प्रोग्रामर हूं और VCS सिस्टम के आसपास अपना सिर लाने की कोशिश कर रहा हूं ... जब मैं उन्हें समझूंगा, तो मैं अपलोड करना या साझा करना शुरू कर सकता हूं!
विलियम हिल्सम

1
@William; ओपन सोर्स के लिए फैंसी होना जरूरी नहीं है, बस स्रोत को ज़िप करें और उसके साथ अपलोड करें और यह ओपन सोर्स है!
फ़ॉसी

@ घोषी: - / अच्छी बात ... शायद तब जल्द ही!
विलियम हिल्सम

RegSync v1 भविष्य में खुले स्रोत की तरह कोडप्लेक्स में होगा? वातावरण में किसी भी एप्लिकेशन या प्रोग्राम को स्थापित करने से पहले मेरी कंपनी को ऑडिट स्रोत कोड की आवश्यकता है।
कीकेनेट

5

रजिस्ट्री फ़ाइल के साथ मूक मोड में regedit.exe चलाना आसान हो सकता है जिसमें सटीक प्रविष्टियाँ हैं जो आप चाहते हैं। आप प्रत्येक कंप्यूटर को एक साझा स्थान से चलाने के लिए सेट कर सकते हैं, इसलिए आपको केवल फ़ाइल को अपडेट करने की आवश्यकता है और जब regedit.exe का अगला शेड्यूल प्रत्येक कंप्यूटर पर चलता है, तो उन्हें नई प्रविष्टियाँ मिलती हैं।

कुछ इस तरह:

regedit.exe /S puttyentries.reg

एक कंप्यूटर से एक रजिस्ट्री कुंजी खींचने के लिए, आप उपयोग करेंगे:

regedit.exe /E puttyentries.reg "registry_key"

रजिस्ट्री के लिए दूरस्थ रीड / राइट फ़ंक्शन के साथ vbscript या autoit का उपयोग करके पूरी प्रक्रिया को स्वचालित करने के संभवतः अधिक सुरुचिपूर्ण तरीके होंगे।

यहां AutoIt के साथ एक उदाहरण दिया गया है जो हर 30 मिनट में एक दूरस्थ कंप्यूटर के साथ सिंक करेगा (चेतावनी, मैंने वास्तव में इसका परीक्षण नहीं किया है):

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सिल्ट-मोड में रजिस्ट्री से भी निकाल सकते हैं?
राम रचम

रीड ऑप्शन को जोड़ने के लिए संपादित, मैं देखूंगा कि मैं और अधिक सुंदर स्क्रिप्ट वाले विकल्प के लिए क्या लिख ​​सकता हूं
MaQleod

1
यह उस व्यक्ति के लिए पर्याप्त हो सकता है जिसने पूछा, लेकिन यह सेटिंग्स को हटाने को सिंक नहीं करेगा। इसलिए यदि आप एक होस्ट एक्सपोर्ट पर पोटीन सेटिंग हटाते हैं, तो अपने सेक्शन होस्ट पर री-इम्पोर्ट करें, डिलीट नहीं होगा। जब आप निर्यात करते हैं और होस्ट पर वापस आयात करते हैं तो आपने एक कॉन्फ़िगरेशन आइटम को हटा दिया, आपकी हटाए गए आइटम को पुनर्स्थापित किया जाएगा।
Zoredache

ठीक है, एक ऑटोट उदाहरण जोड़ा गया है जो पूरी प्रक्रिया को अपने दम पर करेगा (या कम से कम इसे करना चाहिए, मैंने इसका परीक्षण नहीं किया है, इसलिए कृपया सब कुछ पहले वापस कर लें)।
MaQleod
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.