2010-03-05 17 views
6

this प्रश्न का उत्तर मुझे मेरी ट्रेसिंग आवश्यकताओं के लिए "विंडोज़ के लिए इवेंट ट्रेसिंग" का उपयोग करने के लिए प्रेरित किया है। मैं NTrace पर आया हूं, जो सी # कोड से ईटीडब्ल्यू कार्यक्रमों का उत्पादन करने का एक अच्छा तरीका प्रतीत होता है (एक्सपी-संगत "क्लासिक प्रदाता" मॉडल का उपयोग करके)।"विंडोज़ के लिए इवेंट ट्रेसिंग" घटनाएं

हालांकि, इन घटनाओं को उपभोग करने के लिए एक आसान तरीका खोजने में असमर्थ हूं - उन्हें वास्तविक समय में देखने के लिए और/या उन्हें फ़ाइल में लॉग इन करने के लिए। मुझे मिला एकमात्र तरीका यह है कि एनटीआरएस दस्तावेज में वर्णित है: एक उपकरण का उपयोग जो केवल विंडोज डीडीके के हिस्से के रूप में उपलब्ध है।

फ़ील्ड में एक जटिल समस्या के मामले में, हमें उपयोगकर्ता से एक ट्रेस युक्त फ़ाइल बनाने के लिए पूछने की आवश्यकता हो सकती है। हम उपयोगकर्ताओं को डीडीके डाउनलोड करने या ऐसा करने के लिए कई जटिल संचालन करने के लिए नहीं कह सकते हैं।

क्या ईटीडब्ल्यू घटनाओं को एक फ़ाइल में लॉग करने के लिए एक सीधा, उपयोगकर्ता के अनुकूल तरीका है?

साथ ही, क्या किसी के लिए विंडोज विस्टा/7 पर ईटीडब्ल्यू कार्यक्रमों का उपभोग करना संभव है यदि वे व्यवस्थापक के रूप में नहीं चल रहे हैं?

उत्तर

3

TraceView सबसे आसान आउट ऑफ़ द बॉक्स समाधान है, लेकिन अपने स्वयं के ईटीडब्ल्यू व्यूअर को लिखना संभव है जो आपके प्रदाता के लिए विशिष्ट है। यह आपको प्रेजेंटेशन पर पूर्ण नियंत्रण देगा और अंतिम उपयोगकर्ता पर इसे अधिक आसान बना देगा क्योंकि TraceView वास्तव में कुछ उपयोगकर्ताओं को चलाने के लिए पूछने वाले किसी डिबगिंग टूल से अधिक है।

जहां तक ​​वास्तविक समय ट्रेसिंग चला जाता है के रूप में, according to the documentation:

केवल प्रशासनिक विशेषाधिकार, प्रदर्शन लॉग उपयोगकर्ता समूह के उपयोगकर्ताओं, और सेवाओं स्थानीय सिस्टम, LocalService के रूप में चल के साथ उपयोगकर्ताओं को, NetworkService वास्तविक समय में घटनाओं का उपभोग कर सकते । प्रतिबंधित उपयोगकर्ता को वास्तविक समय में ईवेंट का उपभोग करने की क्षमता प्रदान करने के लिए, उन्हें प्रदर्शन लॉग उपयोगकर्ता समूह में जोड़ें।

विंडोज एक्सपी और विंडोज 2000: कोई भी वास्तविक समय की घटनाओं का उपभोग कर सकता है।

यदि आप अपना स्वयं का ईटीडब्ल्यू दर्शक (रीयल-टाइम या लॉग फ़ाइल) लिखने में रुचि रखते हैं, here is the relevant documentation

+0

इस जानकारी के लिए धन्यवाद। तो, विंडोज विस्टा और ऊपर, प्रतिबंधित उपयोगकर्ता वास्तविक समय में घटनाओं का उपभोग नहीं कर सकते हैं। क्या आप जानते हैं कि इन उपयोगकर्ताओं के लिए फ़ाइल में ईवेंट लॉगिंग को नियंत्रित करना संभव है? – user200783

+0

ऐसा लगता है कि प्रतिबंधित उपयोगकर्ता किसी फ़ाइल में ईवेंट लॉगिंग को नियंत्रित नहीं कर सकते हैं। ऐसा करने के लिए, उपयोगकर्ता को ट्रेस नियंत्रक को नियोजित करना होगा, लेकिन http://msdn.microsoft.com/en-us/library/aa364117%28VS.85%29.aspx कहता है "केवल प्रशासनिक प्रावधान वाले उपयोगकर्ता। .. घटना ट्रेसिंग सत्रों को नियंत्रित कर सकते हैं "। – user200783

+0

हाँ, विस्टा एक ड्रैग है। इसके आस-पास पहुंचने के लिए आप एक ऐसी सेवा में किए गए सभी ईवेंट ट्रेसिंग सामान प्राप्त कर सकते हैं जो एक विशेषाधिकार प्राप्त खाते के अंतर्गत चलता है। उपयोगकर्ता को ऊपर उठाने के लिए शायद आसान है। – Luke

3

विंडोज इवेंट लॉग ईटीडब्ल्यू पढ़ता है। असल में मैं कहूंगा कि ईटीडब्ल्यू निशान देखने और निर्यात करने के लिए उपभोक्ता (गैर कार्यक्रम) के लिए यह सही तरीका है।

उदाहरण के लिए यहां देखें। http://blogs.microsoft.co.il/blogs/applisec/archive/2009/10/12/reading-etw-tracing-using-event-viewer.aspx

This question on msdn लॉग इन नहीं होने पर क्या करना है इसके बारे में चर्चा करें। क्या यहां कुछ भी मदद करता है?

+0

लिंक के लिए धन्यवाद का उपयोग कर इस्तेमाल कर सकते हैं का उपयोग करता है। अगर मैं ब्लॉग पोस्ट को सही तरीके से पढ़ता हूं, तो यह वर्णन करता है कि कस्टम प्रदाता के लिए लॉगमैन द्वारा उत्पादित लॉग फ़ाइल लोड करने के लिए इवेंट व्यूअर का उपयोग कैसे करें, और लॉगमैन को कैसे बाईपास करें और एक प्रदाता के लिए रीयल-टाइम लॉग देखें जो इवेंट व्यूअर में पहले से उपलब्ध है । मैंने इन दोनों को करने में कामयाब रहा है, लेकिन मेरे प्रदाता के लिए रीयल-टाइम लॉग नहीं देख सकता क्योंकि यह इवेंट व्यूअर में दिखाई नहीं देता है। क्या आपको पता है कि इसे प्रदर्शित करने के लिए मुझे क्या करना है? – user200783

+0

अतिरिक्त जानकारी के लिए धन्यवाद। मैंने जो कुछ भी पढ़ा है, वह कहता है कि इवेंट व्यूअर वास्तव में ईटीडब्ल्यू निशान प्रदर्शित नहीं करता है - वास्तविक समय में ट्रेस देखने का एकमात्र तरीका डीडीके के ट्रेसेव्यू टूल का उपयोग करना है। फिर भी, यह सवाल ज्यादातर एक फ़ाइल में ट्रेस लॉगिंग सेट करने के बारे में था, और मुझे ऐसा करने के कई वैकल्पिक तरीके मिल गए हैं। इनमें "लॉगमैन" कमांड लाइन टूल और "विश्वसनीयता और प्रदर्शन मॉनिटर" शामिल हैं। दुर्भाग्यवश, इन सभी विधियों को व्यवस्थापक पहुंच की आवश्यकता होती है - मुझे अभी भी यह देखने में दिलचस्पी है कि मानक उपयोगकर्ता के रूप में ऐसा करने का कोई तरीका है या नहीं। – user200783

2

ईटीडब्ल्यू ट्रेसिंग केवल प्रशासकों द्वारा चलाने के लिए डिज़ाइन किया गया था क्योंकि ट्रेस में व्यक्तिगत पहचान योग्य जानकारी हो सकती है। और यदि कोई गैर-व्यवस्थापक ट्रेस कैप्चर कर सकता है तो यह सुरक्षा खतरे पैदा करेगा। व्यक्तिगत पहचान वाली जानकारी, हो सकती है सहित लेकिन जरूरी पहुँचा फ़ाइलों के लिए पथ तक सीमित नहीं:

यहाँ से xperf

ट्रेस तुम सिर्फ कब्जा कर लिया है "\ Windows \ system32 \ kernel.etl सी" एक चेतावनी उदाहरण है , रजिस्ट्री के पथ और प्रक्रिया नामों के पथ। सटीक जानकारी लॉग इन की गई घटनाओं पर निर्भर करती है। अन्य लोगों के साथ इस ट्रेस को साझा करते समय कृपया इसके बारे में जागरूक रहें।

आशा यह आपके सवाल का जवाब

+0

धन्यवाद - यह समझ में आता है। Xperf चेतावनी पढ़ती है कि यह आपको जागरूक कर रहा है कि ट्रेस में आपकी व्यक्तिगत जानकारी हो सकती है - लेकिन मुझे लगता है कि बड़ा मुद्दा यह है कि ट्रेस में मशीन के अन्य उपयोगकर्ताओं की व्यक्तिगत जानकारी हो सकती है (क्योंकि कर्नेल सभी के लिए निशान जोड़ता है उपयोगकर्ता)। यह बाद के कारण के लिए है कि निशान केवल प्रशासकों द्वारा देखा जाना चाहिए। – user200783

1

यहाँ कैसे आप अपने खुद के custom provider से कस्टम ETW निशान प्राप्त कर सकते हैं और कैसे ETW भीतर managed code

आशा इस मदद करता है इस्तेमाल किया जा सकता है।

1

आईएमओ Perfview ईटीडब्ल्यू निशान को नियंत्रित करने और देखने के लिए उपलब्ध सर्वोत्तम उपकरण में से एक है। यह प्रबंधित कॉल-स्टैक भी प्रदान कर सकता है। इसका सबसे अच्छा हिस्सा यह है कि आप किसी भी सर्वर पर xcopy कर सकते हैं और निशान एकत्र कर सकते हैं।

Perfview TraceEvent पुस्तकालय और यहाँ samples आप इसे किसी API और सी #