2017-07-27 15 views
5

मैं एसएमबी के माध्यम से स्थानांतरित फ़ाइलों का एक साधारण लॉग बनाने की कोशिश कर रहा हूं।सी # लॉग एसएमबी फ़ाइल का उपयोग

यह विंडोज 8 या साथ काम करता है उच्च:

var scope = new ManagementScope(@"\\.\root\Microsoft\Windows\SMB"); 

var query = new WqlEventQuery(

@"SELECT * 
    FROM 
     __InstanceOperationEvent WITHIN 1 
    WHERE 
     TargetInstance ISA 'MSFT_SmbOpenFile'" 

); 

ManagementEventWatcher watcher = new ManagementEventWatcher(scope, query); 
watcher.EventArrived += new EventArrivedEventHandler(HandleEvent); 

watcher.Start(); 

.... 

But it does not work for windows 7 or lower. (Run-time requirements)

वहां भी इसी तरह समाधान है कि कम से कम विंडोज 7 के साथ संगत है है?

1º संपादित

क्योंकि यह विंडोज 7 मॉड्यूल इस कार्य करता है यह संभव दिखता है:

कंप्यूटर प्रबंधन

mmc.exe

(मैं 7 इस खिड़कियों के बारे में जानकारी दिखाई दे रही है) 2º संपादित करें

उद्देश्य को स्पष्ट करने के लिए

। मैं DLP application (Data Loss Prevention) बना रहा हूं। मुझे विंडोज़ शेयर (उपयोगकर्ता, फ़ाइल नाम) के माध्यम से एक्सेस की गई फ़ाइलों की निगरानी और लॉग इन करने की आवश्यकता है और अंततः उपयोगकर्ता द्वारा फ़ाइल का अनुरोध करने के समय इस पहुंच को अवरुद्ध करना होगा।

+1

आप आदेशों के नेट परिवार को देख सकते हैं - 'नेट फाइल' - [खुली फाइलों की सूची] देता है (https://technet.microsoft.com/en-us/library/bb490702.aspx)। 'नेट सत्र' देता है [सत्रों की सूची] (https: // technet।microsoft.com/en-us/library/bb490711.aspx)। – Subbu

+0

ग्रेट सबबू, मैं अब प्रलेखन पर एक नज़र डाल रहा हूं, कुछ घटनाओं की तलाश कर रहा हूं, इसलिए मुझे लगातार आदेश चलाने के बजाय अधिसूचित किया जा सकता है। –

उत्तर

0

मान्य है, यह आंशिक उत्तर है। हालांकि यह उपयोगी हो सकता है, और यह एक टिप्पणी में फिट नहीं है।

ऐसा लगता है कि आप Win32_ConnectionShare और Win32_ServerConnection के साथ प्रयास कर सकते हैं। उदाहरण के लिए, here का उपयोग किया जाता है।

फिर भी, मुझे यकीन नहीं है कि आप ईवेंट को कैप्चर करने के लिए इसका उपयोग कर सकते हैं। अपने सभी आवश्यकताओं का मेल चुनौती दे रहा है (यही कारण है कि आप इनाम सेट है!)

संबंधित जानकारी:

https://www.codeproject.com/Articles/17803/A-PC-Audit-Application-in-C

Detect File Read in C#

Is it possible to programatically log access to a windows share (SMB share) using the .Net framework?

https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher(v=vs.110).aspx

SACL on Services using C# || get a handle to a service that has the ACCESS_SYSTEM_SECURITY rights using C#

https://www.netfort.com/blog/auditing-file-access-on-file-servers/

https://blogs.technet.microsoft.com/mspfe/2013/08/26/auditing-file-access-on-file-servers/

https://superuser.com/questions/783950/how-to-display-currently-connected-users-workstations-to-a-windows-smb-share

https://stackoverflow.com/a/154758/2707864

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365433(v=vs.85).aspx

https://msdn.microsoft.com/en-us/library/bb726966.aspx

+0

हाय @ sancho.s, उत्तर के लिए tks। मैंने पोस्ट करने से पहले इस सुविधा को देखा है। सूची में यह पहला संबंधित प्रश्न है। यद्यपि यह मेरी आवश्यकता के करीब कुछ है, लेकिन यह घटना संचालित नहीं है और मुझे पढ़ने के अनुरोध को रद्द करने की अनुमति नहीं देगा। क्या आप एक उदाहरण पोस्ट कर सकते हैं? –

+0

@ ViniciusGonçalves - आप सही हैं। कृपया अद्यतन उत्तर देखें। –

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