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

    เหตุใดการถอนการติดตั้งซอฟต์แวร์ปกติจึงล้มเหลวในการลบค่าที่เกี่ยวข้องทั้งหมดออกจากรีจิสทรี

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

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    มารยาทภาพหน้าจอของ wandersick (Flickr).

    คำถาม

    Mark Boulder ผู้อ่าน SuperUser ต้องการทราบว่าทำไมค่ารีจิสทรีบางค่ายังคงอยู่หลังจากถอนการติดตั้งซอฟต์แวร์ปกติ:

    การขยายตัวในหัวข้อ SuperUser ฉันจะลบร่องรอยที่เหลืออยู่ของซอฟต์แวร์ที่ถอนการติดตั้งออกจากรีจิสทรีได้อย่างไรทำไมทุกครั้งที่ฉันถอนการติดตั้งโปรแกรมแล้วค้นหาในภายหลังผ่าน RegEdit มันยังคงอยู่ที่นั่น?

    เหตุใดแอปพลิเคชัน Windows ส่วนใหญ่จึงตั้งใจทิ้งร่องรอยเล็ก ๆ ไว้ในรีจิสทรี? ข้อผิดพลาดอยู่กับ Windows หรือกับนักพัฒนา?

    เหตุใดค่ารีจิสตรีจึงมัก“ ถูกทิ้ง” หลังจากถอนการติดตั้งซอฟต์แวร์ตามปกติ?

    คำตอบ

    ผู้สนับสนุน SuperUser Lukas Rieger และ Keltari มีคำตอบสำหรับเรา ก่อนอื่น Lukas Rieger:

    เพราะมันเป็นไปไม่ได้ รีจิสทรีมีหลายโหนดรูท แต่มีเพียงสองโหนดที่น่าสนใจ: LocalMachine และ CurrentUser โดยทั่วไปการตั้งค่าจะเขียนค่าลงใน LocalMachine และโปรแกรมที่กำลังรันจะเขียนลงใน CurrentUser เท่านั้น (อันที่จริงแล้วเว้นแต่ว่าการตั้งค่าจะยุ่งกับสิทธิ์โปรแกรมที่รันอยู่จะไม่สามารถเขียนลงใน LocalMachine ได้).

    ในขณะที่การรักษาสิ่งที่เหลืออยู่ใน LocalMachine คือความเกียจคร้าน (ตามที่ระบุโดยคำตอบอื่น ๆ ) มันเป็นไปไม่ได้ที่จะทำความสะอาดส่วนผู้ใช้ในปัจจุบัน.

    หากมีการติดตั้งโปรแกรมในแต่ละเครื่อง (ซึ่งส่วนใหญ่เป็น) และผู้ใช้หลายคนใช้โปรแกรมถอนการติดตั้งควรทำอย่างไร? สามารถลบการตั้งค่าผู้ใช้ของบัญชีปัจจุบันได้อย่างปลอดภัย แต่บัญชีปัจจุบันอาจไม่ใช่บัญชีของคุณ สิ่งนี้จะเกิดขึ้นหากคุณเริ่มต้นตัวถอนการติดตั้งจากบัญชีที่ไม่ใช่ผู้ดูแลระบบจากนั้นป้อนข้อมูลประจำตัวของบัญชีผู้ดูแลระบบตอนนี้การตั้งค่าจะทำงานภายใต้บัญชีนั้นไม่ใช่ตัวแรก.

    แล้วผู้ใช้คนอื่นล่ะ? อาจลองระบุผู้ใช้ทั้งหมด แต่อาจไม่สามารถโหลดรีจิสตรีคีย์ได้ (Windows ขี้เกียจและโหลดสิ่งที่ต้องการเท่านั้น).

    แต่คุณไม่ควรลองด้วยซ้ำ หากคุณใช้โปรไฟล์ข้ามเครือข่าย (เช่นบริการเทอร์มินัล) จากนั้นลบการตั้งค่าทั้งหมดในการถอนการติดตั้งคุณสามารถเลอะและลบสิ่งที่ยังใช้งานอยู่ เซิร์ฟเวอร์เทอร์มินัลนั้นเป็นเครื่อง Windows หนึ่งเครื่องที่ผู้ใช้หลายคนลงชื่อเข้าใช้พร้อมกันและใช้แอปพลิเคชัน สมมติว่าคุณมีเซิร์ฟเวอร์เทอร์มินัลสองเครื่องที่เรียกใช้แอปพลิเคชันเดียว คุณถอนการติดตั้งแอปพลิเคชันบน TS1 ตอนนี้การตั้งค่าทั้งหมดสำหรับผู้ใช้ทั้งหมดจะหายไปใน TS2 เพราะคุณมีโปรไฟล์โรมมิ่ง อุ่ย.

    เช่นเดียวกันกับไฟล์ในไดเรกทอรีต่อผู้ใช้ ในการตั้งค่าโปรแกรมของ บริษัท ของฉันฉันจะลบสิ่งที่ต่อเครื่อง แต่ไม่ได้สัมผัสสิ่งที่ต่อผู้ใช้ไม่ได้แม้แต่ของผู้ใช้ที่กำลังเรียกใช้การตั้งค่า.

    ตามด้วยคำตอบจาก Keltari:

    มีหลายสาเหตุที่เป็นเช่นนั้น แต่ไม่ใช่ความผิดของ Microsoft หรือระบบปฏิบัติการ Windows.

    ต่อไปนี้เป็นรายการของบางกรณีและสาเหตุที่ทำให้รายการรีจิสตรีถูกทิ้ง:

    การเขียนโปรแกรมไม่ดี - นักพัฒนาไม่ได้เขียนตัวถอนการติดตั้งแอปพลิเคชันอย่างถูกต้องและรายการรีจิสทรีถูกทิ้ง นอกจากนั้นตัวถอนการติดตั้งอาจไม่มี / ใช้สิทธิ์ที่เหมาะสมเพื่อลบรายการรีจิสตรี อาจเป็นได้ว่ามีแอปพลิเคชันมากกว่าหนึ่งรายการที่ใช้คีย์เหล่านั้น ตัวอย่างเช่นสองแอปพลิเคชันจากนักพัฒนาเดียวกันที่เขียนไปยังคีย์เดียวกัน.

    ทิ้งไว้บนวัตถุประสงค์ - ในฐานะที่เป็นหนึ่งความคิดเห็นที่กล่าวถึงรายการเหล่านี้อาจถูกทิ้งไว้ในวัตถุประสงค์ แอปพลิเคชั่นบางตัวมีระยะเวลาทดลองใช้และหลังจากนั้นคุณอาจเลือกที่จะลบแอปพลิเคชันออก หากคุณเลือกที่จะติดตั้งแอปพลิเคชันใหม่ในภายหลังคีย์เหล่านั้นจะให้ข้อมูลแอปพลิเคชันเมื่อติดตั้ง นอกจากนั้นนักพัฒนาซอฟต์แวร์บางคนอาจเลือกที่จะทิ้งกุญแจเหล่านั้นไว้ในกรณีที่คุณเลือกติดตั้งแอปพลิเคชันใหม่ หากนักพัฒนาซอฟต์แวร์ใช้รีจิสตรีคีย์เพื่อจัดเก็บการปรับแต่งของคุณพวกเขาอาจทิ้งไว้ที่นั่นเพื่อที่ว่าเมื่อคุณติดตั้งแอปพลิเคชันใหม่การปรับแต่งทั้งหมดของคุณจะยังคงอยู่ ในรูปแบบที่ยิ่งใหญ่ของสิ่งต่าง ๆ คีย์รีจิสทรีจะใช้เวลาเพียงไม่กี่ไบต์.

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

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


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.