2010-03-30 15 views
6

मुझे यह जानने की जरूरत है कि कौन सी उपयोगकर्ता ने सी # कोड से फाइल सिस्टम में फ़ाइल हटा दी है। केवल एक विचार ऑडिट का उपयोग करना है, लेकिन यह बहुत धीमा प्रतीत होता है ...मैं उपयोगकर्ता को कैसे हटा सकता हूं जिसने फ़ाइल हटा दी?

+0

आप "ऑडिट" के बारे में क्या बात करते हैं? – BlueMonkMN

+1

@ ब्लूमोन्कएमएन: यह हो सकता है: एनटीएफएस एक्सेस ऑडिटिंग - http://support.microsoft.com/kb/310399; यह सबसे आसान विकल्प प्रतीत होता है - आखिरकार, यह उपयोगकर्ता स्पेस की तुलना में कर्नेल के करीब चलता है, इसलिए इसे सभी फ़ाइल एक्सेस इवेंट्स (कम-स्तर की डिस्क एक्सेस के बारे में सुनिश्चित नहीं होना चाहिए, लेकिन शायद इसकी आवश्यकता नहीं है)। हालांकि मुझे ठीक-ठीक करने के साथ कोई अनुभव नहीं है। – Piskvor

+0

मैं ऑडिटिंग का उपयोग नहीं करना चाहता क्योंकि मेरे पास बहुत सारी फाइलें होंगी और वास्तव में यह सिस्टम लॉग – user295518

उत्तर

2

आप फाइल सिस्टम पर होने वाले हटाए गए कैप्चर को कैप्चर करने के लिए FileSystemWatcher.Deleted ईवेंट का उपयोग कर सकते हैं।

एप्लिकेशन के आधार पर, आप उस बिंदु पर भी यह पता लगाने में सक्षम होंगे कि उपयोगकर्ता ने यह घटना क्यों उत्पन्न की है (यह FileSystemEventArgs का हिस्सा नहीं है)।

+0

पर वास्तव में स्पैम होगी। मैं वॉचर का उपयोग कर रहा हूं, लेकिन जब मैं इस तरह के उपयोगकर्ता नाम प्राप्त करने का प्रयास करता हूं: सिस्टम.Security.AccessControl.FileSecurity sec = नई फ़ाइल सुरक्षा (पथ, सिस्टम.Security.AccessControl.AccessControlSections.Owner); वापसी sec.GetOwner (टाइपऑफ (सिस्टम.Security.Principal.NTAccount))। मूल्य; यह अपवाद फेंकता है क्योंकि यह उपयोगकर्ता – user295518

+0

@user निर्धारित नहीं कर सकता है: 'WindowsIdentity.GetCurrent()। नाम' http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity आज़माएं। एएसपीएक्स –

1

मुझे नहीं पता कि यह फाइल सिस्टम से पुनर्प्राप्त किया जा सकता है, लेकिन हटाए गए ईवेंट को ट्रिगर करने के लिए av FileSystemWatcher ऑब्जेक्ट का उपयोग करने का एक संभावित तरीका है। नकारात्मकता यह है कि आपको वॉचर एप्लिकेशन को हर समय चलाना होगा। एक उलझन यह है कि यदि आप व्यवहार्य हैं तो आप केवल एक स्पेशिफिक फ़ोल्डर की निगरानी कर सकते हैं।

+0

ऐसा लगता है कि FileSystemWatcher उपयोगकर्ता को हटाए गए उपयोगकर्ता के बारे में जानकारी प्रदान नहीं करता है ... – user295518

+0

नहीं, लेकिन मैंने सोचा कि शायद इसे फ़ाइल के माध्यम से एक्सेस किया जा सकता है। आपको उस उपयोगकर्ता को प्राप्त करना होगा जिसने फ़ाइल को बदल दिया है, मालिक नहीं। लेकिन वैसे भी, फ़ाइल शायद पहले ही हटा दी गई है। यही कारण है कि आपको लगता है कि अपवाद मिलता है। –

+0

शायद आप इस स्रोत कोड से हटाए गए फ़ाइल की फ़ाइल जानकारी तक पहुंचने का तरीका समझ सकते हैं? http://ntfsundelete.com/downloads/ –

संबंधित मुद्दे