ไดเรกทอรีที่ไม่ถูกซ่อนจะไม่แสดงใน Explorer แต่โปรแกรมที่ทำให้สามารถเข้าถึงได้


26

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

อย่างไรก็ตาม IMAPSize ยืนยันว่าไฟล์อยู่ที่นั่น (มีการเขียนดิสก์จำนวนมากในระหว่างการดำเนินการ) นอกจากนี้ไดเรกทอรีดังกล่าวจะปรากฏในกล่องโต้ตอบไดเรกทอรี Windows และ - เนื่องจากฉันมีเครื่องมือ GNU ติดตั้งอยู่ - จะแสดงเป็นls(แต่ไม่ใช่ในภาษาท้องถิ่นdir) ฉันไม่สามารถcdเข้าไปในไดเรกทอรีได้ แต่lsดูเหมือนจะสามารถเข้าถึงได้ (และแน่นอนว่าไดเรกทอรีและไฟล์ที่ฉันคาดว่าจะปรากฏอยู่ที่นั่น)

หน้าต่างพรอมต์คำสั่งแสดงรายการ

นอกจากนี้โปรดทราบว่าการประทับเวลาและขนาดไฟล์backup.dbจะแตกต่างกันในdirและls -lออก

กล่าวโดยย่อ: เกิดอะไรขึ้นที่นี่และฉันจะแก้ไขได้อย่างไร?


1
ความแตกต่างที่เห็นได้ชัดเจนอย่างเดียวที่ฉันเห็นคือการls -lแสดงจำนวนฮาร์ดลิงก์ไปยังไดเรกทอรีและไฟล์ "ที่ซ่อนอยู่" ที่ซ่อนอยู่ ... ฉันไม่รู้ว่าทำไมถึงเป็นเช่นนั้น
Xophmeister

... เพียงเพื่อยืนยัน: ฉันสามารถเข้าถึงข้อมูลในไฟล์ "ซ่อน" จากบรรทัดคำสั่งโดยใช้cat(อีก GNU coreutil) อย่างไรก็ตามเครื่องมือ Windows ดั้งเดิม (เช่นtype) ไม่สามารถหาไฟล์ได้
Xophmeister

คำตอบ:


63

ให้ฉันเดาว่า: โปรแกรมที่สร้างไฟล์และยูทิลิตี้ GNU นั้นไม่ได้ทำงานในฐานะผู้ดูแลระบบ

ก่อนประวัติศาสตร์บางอย่าง ในสมัยของ Windows XP ที่มากมายของโปรแกรมสันนิษฐานว่าพวกเขาจะได้รับการทำงานเป็นผู้ดูแลและจะเขียนไปยังสถานที่ที่ต้องการC:\WindowsและC:\Program Files (x86)มีป่าละทิ้ง ด้วย Vista Microsoft พยายามทำให้ผู้ดูแลระบบน้อยลง แต่ผู้ใช้มาตรฐานไม่สามารถเขียนไปยังสถานที่เหล่านั้นได้ พวกเขาต้องการโปรแกรมที่น่าสงสัยเหล่านั้นเพื่อให้การทำงาน (หรือคนอื่นจะไม่อัพเกรด) ดังนั้นพวกเขาแนะนำคุณลักษณะที่มีมนต์ขลังที่เรียกว่าUAC virtualization

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

ดูเหมือนว่าโปรแกรมอีเมลของคุณพยายามเขียนถึงสถานที่ที่อยู่ด้านล่างProgram Files (x86)ในขณะที่ทำงานในฐานะผู้ใช้ปกติ การเขียนถูกเปลี่ยนเส้นทางดังนั้นจึงไม่ได้ไปที่นั่นจริงๆ โปรแกรมยังคงสามารถดูได้เพราะ Windows กำลังรักษาภาพลวงตาของมัน Explorer ไม่เห็นเพราะประกาศไปยังระบบปฏิบัติการว่าทำงานได้ดีและไม่ต้องการเปลี่ยนเส้นทาง คำสั่งของพรอมต์dirคำสั่งไม่ใช่โปรแกรม (เป็นเพียงคุณสมบัติcmd.exe) ดังนั้นจึงถือว่าเป็น "in the know" ด้วยดังนั้นจึงไม่แสดงไฟล์ที่เข้ากันได้ lsเป็นโปรแกรมที่เห็นได้ชัดไม่ได้อยู่ในความรู้ดังนั้นจึงได้เห็นไฟล์ที่เข้ากันได้

คุณจะพบไฟล์ของคุณที่นี่:

%LOCALAPPDATA%\VirtualStore\Program Files (x86)\IMAPSize\backup

ในขณะที่โผล่เข้าVirtualStoreมาคุณอาจแปลกใจในสิ่งที่โปรแกรมไม่ทำงานได้ดีและต้องการเครือข่ายความปลอดภัยเสมือนจริง

หากคุณต้องการหยุดการเปลี่ยนเส้นทางให้เรียกใช้โปรแกรมในฐานะผู้ดูแลระบบหรือบันทึกสำเนาสำรองของคุณในตำแหน่งที่คุณสามารถเขียนได้โดยไม่ต้องมีสิทธิ์ผู้ดูแลระบบ


16
และที่นี่ฉันคิดว่าฉันรู้จัก Windows ไม่ว่าจะเป็นเรื่องตลกที่เมษายนหรือว่าวันนี้ฉันเรียนรู้สิ่งสำคัญในวันนี้ ขอบคุณ @Ben N!
Aganju

3
@Aganju ไม่กี่เดือนที่ผ่านมาฉันต้องช่วยผู้ใช้ Windows ในการสร้างรหัสคู่สำหรับ WinSCP และสิ่งเหล่านั้นก็ล่องหนในแบบเดียวกับที่อธิบายไว้ในคำถาม ในขณะที่ฉันตั้งสมมติฐานคำอธิบายคล้ายกับคำตอบนี้ ฉันไม่อยากยืนยันสมมติฐานของฉันเพราะปัญหาได้รับการแก้ไขโดยการวางไฟล์ไว้ใต้โฮมไดเร็กตอรี่ของผู้ใช้แทน แต่อย่างน้อยฉันสามารถยืนยันได้ว่าคำตอบนี้ไม่ได้ดูตลกเหมือนฉัน
kasperd

3
ฉันจะถูกสาป! พวกเขาทั้งหมดอยู่ที่นั่น นั่นคือพฤติกรรมแปลก ๆแม้ว่ามันจะมีจุดมุ่งหมาย ฉันคิดว่าฉันมีข้อผิดพลาดของระบบไฟล์! ... นี่จะอธิบายได้ว่าทำไมการสำรองข้อมูลกล่องจดหมายแรกของฉันจึงปรากฏขึ้น: โปรแกรมถูกเรียกใช้ครั้งแรกจากตัวติดตั้ง จะยกระดับให้เป็นสิทธิ์ของผู้ดูแลระบบ ในขณะที่การทำงาน "ซ่อน" เป็นผู้ใช้ภายใน
Xophmeister

1
@Aganju ฉันคาดเดาว่าคุณไม่เคยใช้ Vista มาก่อน มันมีคุณสมบัติในการแสดงไฟล์เสมือนจริงใน Explorer; เพราะปัญหานี้เป็นเรื่องปกติที่พอเพียงไม่กี่ปี เมื่อถึงเวลา Win7 ซอฟต์แวร์ที่ใช้กันอย่างแพร่หลายส่วนใหญ่หยุดสมมติว่ามันสามารถเขียนไปยังโฟลเดอร์ย่อยของไดเรกทอรีการติดตั้ง และคุณลักษณะดังกล่าวถูกทำให้มองเห็นได้น้อยลงหรืออาจถูกเอาออกทันทีใน Windows รุ่นล่าสุด
Dan Neely

4
@ Xophmeister เป็นการแลกเปลี่ยน ดังที่ระบุไว้ในคำตอบซอฟต์แวร์ที่เขียนไปยังไดเรกทอรีแอพพลิเคชั่นของตัวเองนั้นเป็นเรื่องธรรมดาก่อนที่ Vista นี่เป็นช่องโหว่ขนาดใหญ่ดังนั้นจึงต้องแก้ไข ทางเลือกคือ 1) ป้องกันการเขียนและทำลายแอปพลิเคชันทั้งหมด 2) ใช้การจำลองเสมือนเพื่อบันทึกไฟล์ในที่ปลอดภัย 1) เห็นได้ชัดว่าไม่สามารถป้องกันได้และต่อต้าน SOP ของ Microsoft อย่างมากและในที่สุดมันจะนำไปสู่ทุกคนที่ทำงานทุกอย่างภายใต้การดูแลของผู้ดูแลระบบเหมือนเดิมอีกครั้ง อาจสร้างความสับสน แต่ก็อาจเป็นตัวเลือกที่ดีที่สุด อย่าเขียนไปยังไดเรกทอรีที่เป็นอันตราย
Luaan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.