ฉันจะขออนุญาตลบไฟล์ใน Windows 7 ได้อย่างไร


64

ฉันอัปเดตระบบปฏิบัติการแล็ปท็อปของฉันจาก Windows XP เป็น Windows 7 มีไฟล์ที่เหลืออยู่จาก Windows XP บนคอมพิวเตอร์ตอนนี้ หากฉันพยายามลบพวกเขาฉันได้รับข้อผิดพลาดต่อไปนี้:

คุณต้องได้รับอนุญาตในการดำเนินการนี้

คุณต้องได้รับอนุญาตจาก S-1 -.... เพื่อทำการเปลี่ยนแปลงกับโฟลเดอร์นี้

สิ่งที่แปลกคือฉันเข้าสู่ระบบด้วยบัญชีผู้ใช้เดียวในเครื่องนี้และฉันมีสิทธิ์ผู้ดูแลระบบ ฉันพยายามปิด UAC แต่ฉันยังคงไม่สามารถลบไฟล์ได้

ฉันจะบังคับให้ลบไฟล์เหล่านี้ได้อย่างไร

คำตอบ:


85

อาจเป็นไปได้ว่าการอัปเกรดผู้ใช้ XP เก่านั้นไม่ได้รับการแปลงเป็น Windows 7 อย่างดีดังนั้นไฟล์เหล่านี้จึงเป็นของผู้ใช้ phantom คุณสามารถทำตามขั้นตอนด้านล่าง:

  1. เป็นเจ้าของไฟล์ เริ่ม Command Prompt (cmd) ในฐานะผู้ดูแลระบบและป้อน:

    takeown /f file
    takeown /f directory /r
    
  2. ให้สิทธิ์เต็มที่แก่คุณในไฟล์:

    cacls file /G username:F
    cacls directory /T /G username:F
    

caclsสามารถใช้กับไวลด์การ์ดและการสำรวจเส้นทางไดเรกทอรี ดูเพิ่มเติม:
ความปลอดภัยจากบรรทัดคำสั่งด้วย
คำสั่ง CACLS CACLS

สำหรับพัฒนามากขึ้นภาพดูสคริปต์พื้นฐาน: xcacls.vbs เพื่อปรับเปลี่ยนสิทธิ์


1
คำสั่ง takeown ส่งผลให้เกิดข้อผิดพลาด: C: \> takeown / f olddir / r ข้อผิดพลาด: ผู้ใช้ที่ล็อกออนในปัจจุบันไม่มีสิทธิ์การเป็นเจ้าของไฟล์ (หรือโฟลเดอร์) "C: \ olddir"
lajos

6
คุณเปิดใช้งานพรอมต์คำสั่งโดยคลิกขวาที่ cmd.exe และ "Run as administrator" หรือไม่?
harrymc

1
ขอบคุณสำหรับการชี้ให้เห็นว่า ฉันไม่ได้ทำงานในฐานะผู้ดูแลระบบ มันใช้งานได้แล้ว!
lajos

11
ฉันยังได้รับ "ข้อผิดพลาด: การเข้าถึงถูกปฏิเสธ" แม้หลังจากใช้งาน cmd ในฐานะผู้ดูแลระบบ!
BT

2
@Pacerier: ใช่ฉันเรียกว่า "phantom" บัญชีผู้ใช้ (ไม่ใช่ในตัว) ที่สร้างขึ้นในคอมพิวเตอร์เครื่องหนึ่งและไม่มีอยู่ในอีกบัญชีหนึ่ง
harrymc

29

อาร์กิวเมนต์บรรทัดคำสั่งสำหรับการเป็นเจ้าของควรอยู่ในลำดับนี้

takeown / f <directory> / r
/ f ชื่อไฟล์หรือรูปแบบชื่อไดเรกทอรี
/ r recurse

หมายเหตุ: caclsเลิกใช้แล้วโปรดใช้ icacls

icacls <directory> / grant <user>: f / t
 เข้าถึงแบบเต็ม
/ t recurse

5

ในกรณีของฉันการเป็นเจ้าของไม่เพียงพอใน Windows 7 สำหรับสถานการณ์เฉพาะของฉัน (การติดตั้ง Windows 7 ของฉันทำโดยใช้ Symantec Backup Exec จากเครื่องอื่นและโฟลเดอร์อยู่ภายใต้การควบคุมของแหล่งที่มา)

ฉันต้องทำสองขั้นตอนต่อไป:

  1. คลิกขวาที่โฟลเดอร์ที่มีไฟล์ที่คุณต้องการลบและเลือก 'คุณสมบัติ' -> 'ความปลอดภัย' -> 'ขั้นสูง' -> เลือกผู้ใช้ของคุณ -> 'เปลี่ยนสิทธิ์' -> กาเลือก "แทนที่สิทธิ์วัตถุลูกทั้งหมดด้วยสิทธิ์ที่สืบทอดได้จาก วัตถุนี้ "

  2. ลบไฟล์ในโฟลเดอร์ด้วยตนเองจากด้านในสุดถึงรูท ลบโฟลเดอร์เมื่อว่างเปล่าเช่นถ้าคุณมี "folder1-> folder2" ก่อนอื่นให้ลบเนื้อหาของ folder2 จากนั้นลบ folder2 เป็นต้น

หากวิธีอื่นไม่เพียงพอคุณสามารถลองขั้นตอนต่อไปนี้ได้


1

นั่นS-1-...คือ GUID ที่เหลือจากการติดตั้งก่อนหน้า เห็นได้ชัดNEWSYSTEM\Administratorว่าไม่ได้เป็นส่วนหนึ่งของOLDSYSTEM\Administratorsกลุ่ม

คุณต้องเป็นเจ้าของไดรฟ์ปล่อยให้การเปลี่ยนแปลงเผยแพร่แล้วคุณควรจะสามารถลบไฟล์ได้


1

โดยปกติtakeownและ(i)caclsทำผลงานได้

หรือคุณสามารถใช้Unlockerเพื่อลบ (อาจต้องรีบูต)
หรือใช้PsExec ของ Sysinternalsเพื่อรับสิทธิ์ผู้ใช้ระบบและลบไฟล์เหล่านั้น (อันนี้จะใช้ได้กับไฟล์บางไฟล์อาจล้มเหลวในไฟล์อื่น)

แต่ถ้าโฟลเดอร์นั้นมีไฟล์จำนวนมากมันจะใช้เวลานานในการtakeownรับสิทธิพิเศษ (ใช้เวลาประมาณ 20 นาทีขึ้นอยู่กับความเร็วของ HDD) ดังนั้นในกรณีนี้ LiveCD / DVD / USB ใด ๆ จึงเร็วกว่าเนื่องจากไม่ต้องการสิทธิ์ใด ๆ ในการลบโฟลเดอร์

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