ค้นหาผู้ที่ล็อคไฟล์บนเครือข่ายแชร์


141

ฉันต้องการทราบว่าใครกำลังล็อคไฟล์บนเครือข่ายที่ใช้ร่วมกัน

นี่คือปัญหา: การแชร์เครือข่ายอยู่บน NAS ดังนั้นฉันจึงไม่สามารถเข้าสู่ระบบได้ ฉันต้องการเครื่องมือเพื่อค้นหาผู้ที่ล็อกไฟล์จากระยะไกล ไม่สามารถทำการรีบูท NAS ได้ทุกครั้งเนื่องจากมีผู้ใช้หลายคน

ดูเหมือนว่าHandle.exe , Process Explorer และPsFileจะถูก จำกัด อยู่ที่ไฟล์ในเครื่องท้องถิ่นดังนั้นมันจึงไม่ทำงานสำหรับฉัน

คำตอบ:


172

ในกรณีที่มีคนค้นหาวิธีแก้ปัญหานี้สำหรับระบบที่ใช้ Windows หรือ NAS:

มีฟังก์ชั่นบิวท์อินใน Windows ที่แสดงให้คุณเห็นว่าไฟล์ใดในคอมพิวเตอร์ภายในที่เปิด / ล็อคโดยคอมพิวเตอร์ระยะไกล (ซึ่งเปิดไฟล์ผ่านการแชร์ไฟล์):

  • เลือก "จัดการคอมพิวเตอร์" (เปิด "จัดการคอมพิวเตอร์")
  • คลิก "โฟลเดอร์ที่ใช้ร่วมกัน"
  • เลือก "เปิดไฟล์"

คุณสามารถปิดไฟล์ได้อย่างแน่นหนา


10
คุณยังสามารถใช้ Action -> เชื่อมต่อกับคอมพิวเตอร์เครื่องอื่นไปยังไฟล์บน NAS และยังสามารถใช้งานกับ NAT ที่ใช้ linux ของเราได้! ทำไมฉันถึงไม่ลองก่อนหน้านี้
olorin

20
ใน Windows 2008 R2 ไปที่ Server Manager> Roles> File Services> Share and Storage Management> คลิกขวาที่ SaSM> Manage Open Files
Jason Pearce

เพียงเปิดคอนโซล MMC และเพิ่มโฟลเดอร์ที่แชร์ คุณสามารถเชื่อมต่อกับระบบระยะไกล
nizx

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

1
ฉันใช้แอปพลิเคชั่นที่ชื่อว่าUnlockerเพื่อทำสิ่งนี้ (ไฟล์อยู่บน NAS) แอพนี้อยู่ที่นี่: filehippo.com/download_unlocker/techและใช้งานได้สำหรับฉัน แต่ฉันไม่สามารถรับรองแอพนี้ได้
Dan

58

บนเซิร์ฟเวอร์ Windows 2008 R2 คุณมีสองวิธีในการดูไฟล์ที่เปิดอยู่และปิดการเชื่อมต่อเหล่านั้น

ผ่านการแชร์และการจัดการสตอเรจ

ผู้จัดการเซิร์ฟเวอร์> บทบาท> บริการไฟล์> การจัดการแชร์และการจัดเก็บข้อมูล> คลิกขวาที่ SaSM> จัดการเปิดไฟล์

ผ่าน OpenFiles

CMD> Openfiles.exe / query / s SERVERNAME

ดูhttp://technet.microsoft.com/en-us/library/bb490961.aspx


2
คำตอบที่ดี ฉันไม่รู้เกี่ยวกับ Openfiles มันทำงานได้ดีกว่าการใช้ psexec หรือเครื่องมือ remoting ที่คล้ายกัน
twasbrillig

@twasbrillig ก็โอเค แต่ถ้าเป็น NAS ก็ไม่ใช่ windows เลย! C: \> Openfiles.exe / query / s 10.0.0.1 <ENTER> ข้อผิดพลาด: ระบบเป้าหมายต้องใช้งาน Windows XP ขึ้นไป
barlop

มันมีค่าที่จะสังเกตเห็นว่าโหนด "Roles" ฯลฯ ขยายตัวด้วยความล่าช้า
SerG

ขอบคุณสำหรับสิ่งนี้ openfiles.exe ยังทำงานบน Windows Server 2012 R2 ฉันไม่สามารถหาคำแนะนำที่ดีอื่น ๆ เกี่ยวกับวิธีการแสดงรายการไฟล์ที่เปิดจากเซิร์ฟเวอร์ 2012 แต่นี่เป็นการหลอกลวง
Oldskool

Nice CMD command, ขอบคุณสำหรับการแบ่งปัน! Windows 10 Enterprise มาพร้อมกับ Openfiles.exe ทันที
Leo Gurdian

25

PsFileทำงานบนเครื่องระยะไกล หากบัญชีเข้าสู่ระบบของฉันมีการเข้าถึงการแชร์ระยะไกลฉันสามารถป้อน:

psfile \\remote-share

(แทนที่ "remote-share" ด้วยชื่อไฟล์เซิร์ฟเวอร์ของคุณ) และมันจะแสดงรายการเอกสารทั้งหมดที่เปิดอยู่ในการแชร์นั้นรวมถึงผู้ที่เปิดและ ID ไฟล์หากฉันต้องการบังคับให้ปิดไฟล์ สำหรับฉันนี่เป็นรายการที่ยาวมาก แต่ก็สามารถทำให้แคบลงได้โดยเข้าสู่ส่วนของเส้นทาง:

psfile \\remote-share I:\\Human_Resources

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

อีกทางเลือกหนึ่ง PsFile จะช่วยให้คุณระบุข้อมูลประจำตัวสำหรับการแชร์ระยะไกลหากคุณต้องการให้พวกเขาเข้าถึง

สุดท้ายเคล็ดลับเล็กน้อยที่รู้จัก: ถ้ามีคนคลิกที่ไฟล์ใน Windows Explorer และตัดหรือคัดลอกไฟล์โดยมีเจตนาที่จะวางไว้ที่อื่นการกระทำนั้นก็เป็นการล็อคไฟล์ไว้ด้วย


ควรจะมีสองครั้งหรือไม่
PsychoData

@PsychoData เป็นเวลานานแล้วที่ฉันโพสต์ข้อความนี้ ฉันหวังว่าสิ่งที่ฉันโพสต์นั้นถูกต้อง \\ ก่อนส่วนแบ่งระยะไกลจะดูถูกต้อง แต่ \\ ใน I: \\ Human_Resources ดูแปลก ๆ แต่ถึงกระนั้นฉันคิดว่าฉันมีเหตุผลสำหรับมันเมื่อฉันโพสต์ ลองและแจ้งให้เราทราบ
Baodad

14

หากเป็นเพียงกรณีของการรู้ / เห็นว่าใครอยู่ในไฟล์ในเวลาใดก็ได้ (และถ้าคุณใช้ windows) เพียงแค่เลือกไฟล์ 'ดู' เป็น 'รายละเอียด' เช่นแทนที่จะเป็นรูปย่อ, ไทล์หรือไอคอนเป็นต้น ในมุมมอง 'รายละเอียด' ตามค่าเริ่มต้นคุณจะเห็น - ชื่อไฟล์ - ขนาด - ประเภทและ - แก้ไขวันที่

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

เลือก 'เจ้าของ' และคอลัมน์ใหม่จะแสดงชื่อผู้ใช้ของบุคคลที่ใช้ไฟล์หรือผู้ที่สร้างมันขึ้นมาหากไม่มีใครใช้มันอยู่

สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อใช้ฐานข้อมูล MS Access ที่ใช้ร่วมกัน


4
ในกรณีของฉันไม่ทำงาน ฉันเพิ่มคอลัมน์และฉันเห็นว่าตัวเองเป็นผู้สร้างไฟล์ที่แชร์ในทรัพยากรระยะไกล แต่ถูกล็อคโดยเพื่อนร่วมงานแล้ว
David Oliván Ubieto

5
นี้จะทำงานได้ดีเมื่อโปรแกรมที่พวกเขาอยู่ในการสร้าง lockfile (เช่น MS Access) ที่จะเป็นเจ้าของโดยใครก็ตามที่ใช้มันและไม่ใช่ผู้สร้างดั้งเดิมของไฟล์
PsychoData

1
หากต้องการบันทึกการเพิ่มคอลัมน์คุณสามารถดูข้อมูลเดียวกันได้หากคุณดูคุณสมบัติไฟล์และดูที่แท็บ Details
Malvineous

วิธีนี้ใช้ได้ผลดีกับไฟล์ MS Word
Tridus

5

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


นี่เป็นคำตอบที่ดีด้วยสามัญสำนึก น่าเศร้าที่ NAS นี้ไม่มีฟังก์ชั่นนี้
olorin

5

คำตอบบางส่วน: ด้วย Process Explorer คุณสามารถดูจับบนเครือข่ายร่วมกันเปิดจากเครื่องของคุณ

ใช้เมนู "ค้นหาที่จับ" จากนั้นคุณสามารถพิมพ์เส้นทางแบบนี้

\Device\LanmanRedirector\server\share\

2

เสียงเหมือนคุณมีปัญหาเดียวกันฉันพยายามที่จะแก้ปัญหาที่นี่ ในกรณีของฉันมันเป็นไฟล์เซิร์ฟเวอร์ลินุกซ์ (ใช้งานแซมบ้าแน่นอน) ดังนั้นฉันสามารถเข้าสู่ระบบและดูว่ากระบวนการล็อคไฟล์คืออะไร; น่าเสียดายที่ฉันยังไม่พบวิธีปิดโดยไม่ฆ่าเซสชันที่รับผิดชอบ AFAICT ลูกค้า windows 'คิด' ว่าปิดแล้ว แต่ไม่ได้บอกเซิร์ฟเวอร์


ฟังดูน่าจะเป็น: เท่าที่ฉันรู้ว่า NAS ของเราใช้ระบบลินุกซ์ที่กำหนดเอง
olorin

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