การซิงค์รีจิสทรี Windows ระหว่างคอมพิวเตอร์หลายเครื่อง


9

มีบางโฟลเดอร์ในรีจิสทรี Windows XP ของฉันที่ฉันต้องการซิงโครไนซ์ระหว่างคอมพิวเตอร์ 2 เครื่องของฉันคือ Dropbox-style วิธีที่ฉันต้องการให้เป็นคือทุกครั้งที่ฉันทำการเปลี่ยนแปลงรีจิสทรีในคอมพิวเตอร์เครื่องหนึ่งมันจะปรากฏบนคอมพิวเตอร์เครื่องอื่น

ไปได้หรือไม่ อย่างไร?

(หากคุณสงสัยว่าทำไมฉันถึงต้องการทำเช่นนี้: ฉันต้องการเซสชัน PuTTY ที่เหมือนกันในคอมพิวเตอร์ทุกเครื่อง)


ฉันมีความคิดเล็ก ๆ น้อย ๆ สำหรับบางสิ่ง ... คุณช่วยบอกเส้นทางที่ถูกต้องของรีจิสตรีคีย์ที่คุณต้องการได้หรือไม่? ฉันกำลังออกไปข้างนอก แต่จะกลับมาในอีกประมาณหนึ่งชั่วโมงและจะพยายามช่วยเหลือเพิ่มเติม
William Hilsum

@William Hilsum: HKEY_CURRENT_USER\Software\SimonTatham\PuTTYมัน
Ram Rachum

1
คอมพิวเตอร์เหล่านี้มักอยู่ในเครือข่ายเดียวกันหรือไม่ หรือคุณต้องการให้มันทำงานจากระยะไกลได้เช่นกัน?
music2myear

@Ram Rachum นั้นเหมือนกันกับคอมพิวเตอร์ทั้งสองเครื่องใช่ไหม
William Hilsum

2
หากเป็นเรื่องเกี่ยวกับสีโป๊วทำไมไม่ใช้สีโป๊วแบบพกพา ? มันเก็บการตั้งค่าในไฟล์ ซิงค์สำเนาของ Portable Putty ผ่านดรอปบ็อกซ์หรืออะไรก็ตาม
Zoredache

คำตอบ:


6

ขออภัยที่ใช้เวลานานฉันคิดว่านี่เป็นเวลาที่ยาวนานที่สุดที่ฉันได้เขียนคำตอบ!

สมัยก่อนฉันต้องการฟังก์ชั่นที่คล้ายกันมาก แต่ฉันไม่สามารถหาวิธีที่จะทำ ... ตอนนี้ที่ฉันรู้ว่าการเขียนโปรแกรมอีกเล็กน้อยฉันคิดว่ามันจะคุ้มค่าที่จะลองทำอะไรสักอย่าง

ดังนั้นอีกไม่กี่ชั่วโมงต่อมาฉันก็ให้คุณRegSync v1.

ป้อนคำอธิบายรูปภาพที่นี่

เพียงคัดลอกเส้นทางรีจิสทรีเต็มรูปแบบ (ในกรณีของคุณHKEY_CURRENT_USER\Software\SimonTatham\PuTTY) และวางลงในช่อง

คลิกเริ่มและมันจะตรวจสอบคีย์รีจิสทรีนั้นโดยอัตโนมัติสำหรับการเพิ่มการลบหรือการเปลี่ยนแปลงใด ๆ

หากตรวจพบการเปลี่ยนแปลงใด ๆ มันจะ*ส่งออกไฟล์รีจิสตรีที่เรียกว่าregsync.regในโฟลเดอร์เดียวกับที่แอปพลิเคชันทำงานอยู่

* ในกรณีที่มีการเปลี่ยนแปลงมากกว่าหนึ่งครั้งมันจะรอ 5 วินาทีหลังจากการเปลี่ยนแปลงครั้งแรก

เมื่อ / กดปุ่มเริ่มต้นมันจะตรวจสอบโฟลเดอร์ที่อยู่ในการเปลี่ยนแปลงregsync.regไฟล์และหากตรวจพบการเปลี่ยนแปลงมันจะลบรายการทั้งหมดในรีจิสตรีคีย์ที่คุณเลือกไว้ในเครื่องและนำเข้าไฟล์รีจิสตรี (โปรดระวังมันจะไม่ตรวจสอบ.Regไฟล์ที่ตรงกับตำแหน่งที่มันกำลังตรวจสอบอยู่ดังนั้นหากคุณพิมพ์ตำแหน่งที่ตั้งที่แตกต่างกันในพีซีแต่ละเครื่องมันอาจจะเสีย)

ดังนั้น ... คุณสามารถเรียกใช้สิ่งนี้จากดรอปบ็อกซ์หรือหน้าต่างแชร์หรือบริการแชร์โฟลเดอร์อื่น ๆ เรียกใช้บนคอมพิวเตอร์ทั้งสองเครื่องแล้วเลือกรีจิสทรีคีย์เพื่อตรวจสอบ

หมายเหตุเพิ่มเติม ...

  • สิ่งนี้ต้องการ. NET Framework เวอร์ชั่น 4

  • มันไม่ได้ตรวจสอบคีย์ย่อยคุณสามารถเรียกใช้สำเนาของเครื่องมือเพิ่มเติมได้ในโฟลเดอร์ต่าง ๆ (ฉันมีแนวคิดที่จะปรับปรุงสิ่งนี้ แต่เฉพาะเมื่อผู้คนต้องการเครื่องมือ)

  • ในขณะที่มันไม่ต้องการระดับความสูงของ UAC มันจะบั๊กคุณสำหรับระดับความสูงทุกครั้งที่พยายามนำเข้าหรือส่งออกจากรีจิสตรี (โดยทั่วไปเรียกว่าregedit.exe/ reg.exe) ดังนั้นฉันขอแนะนำให้คุณเรียกใช้โปรแกรมระดับสูง ... และมันจะน่ารำคาญมาก

  • ไม่มีการรับประกัน - มันได้รับตรา "ทำงานบนพีซีของฉัน" และฉันได้ทดสอบกับเครื่องบางเครื่อง แต่นี่ไม่ได้มีการตรวจสอบโค้ดและเวลาทดสอบ ... เริ่มให้เสร็จในอีกไม่กี่ชั่วโมง

แม้ว่าคุณจะไม่ได้ใช้มันฉันหวังว่ามันจะมีประโยชน์กับใครบางคนที่นั่น!

ลิ้งค์ดาวน์โหลด


ดี! คุณทำให้มันปิดแหล่งที่มา?
Ram Rachum

@Ram Rachum - ฉันไม่ได้ "ทำ" โอเพนซอร์ส (โครงการทั้งหมด) มาก ... ถ้าใครมีคำถาม / ต้องการที่จะเห็นอะไรฉันจะมีความสุขมากกว่าที่จะให้รหัสตัวอย่างจากมัน ... หรือแบ่งปัน รหัสกับเพื่อน ๆ บน Dropbox .... หากคุณมีข้อเสนอแนะหรือต้องการการปรับปรุงใด ๆ แจ้งให้เราทราบ ... ฉันยังเป็นโปรแกรมเมอร์ตัวใหม่และพยายามที่จะเข้าใจระบบ VCS ... เมื่อฉันเข้าใจพวกเขาฉันสามารถอัพโหลด / เริ่มต้นการแชร์ได้!
William Hilsum

1
@William; โอเพ่นซอร์สไม่จำเป็นต้องมีความแฟนซีเพียงแค่ซิปอัพซอร์สและอัพโหลดไปพร้อม ๆ กับโอเพ่นซอร์ส!
Phoshi

@Phoshi -: / จุดดี ... อาจจะเร็ว ๆ นี้!
William Hilsum

RegSync v1 จะเป็น codeplex ในอนาคตเหมือนโอเพ่นซอร์สหรือเปล่า? บริษัท ของฉันต้องการรหัสตรวจสอบก่อนที่จะติดตั้งแอปพลิเคชันหรือโปรแกรมใด ๆ ในสภาพแวดล้อม
Kiquenet

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แยกจากรีจิสตรีในโหมดเงียบได้หรือไม่?
Ram Rachum

แก้ไขเพื่อเพิ่มตัวเลือกการอ่านฉันจะเห็นสิ่งที่ฉันสามารถเขียนขึ้นสำหรับตัวเลือกสคริปต์ที่สง่างามมากขึ้น
MaQleod

1
อาจเพียงพอสำหรับคนที่ถาม แต่สิ่งนี้จะไม่ซิงค์การลบการตั้งค่า ดังนั้นหากคุณลบการตั้งค่าสีโป๊สำหรับการส่งออกโฮสต์หนึ่งนำเข้าอีกครั้งในโฮสต์ส่วนของคุณการลบจะไม่เกิดขึ้น เมื่อคุณส่งออกและนำเข้าอีกครั้งในโฮสต์ที่คุณลบรายการกำหนดค่ารายการที่ถูกลบของคุณจะถูกกู้คืน
Zoredache

ตกลงเพิ่มตัวอย่าง autoit ที่จะทำกระบวนการทั้งหมดด้วยตัวเอง (หรืออย่างน้อยก็ควรฉันยังไม่ได้ทดสอบดังนั้นโปรดสำรองทุกอย่างก่อน)
MaQleod
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.