कुछ मामलों में कंप्यूटर या सर्वर पर Windows इवेंट लॉग्स से सभी एंट्रीज़ को हटाना आवश्यक हो जाता है। बेशक, आप Event Viewer कंसोल GUI— Eventvwr.msc से सिस्टम लॉग्स को साफ़ कर सकते हैं (उस लॉग पर राइट-क्लिक करें जिसे आप साफ़ करना चाहते हैं और Clear Log चुनें)। हालांकि, Vista से शुरू होकर, Windows विभिन्न सिस्टम कंपोनेंट्स के लिए कई दर्जनों लॉग्स का उपयोग करता है, और Event Viewer में उन सभी को मैन्युअली साफ़ करना समय लेने वाला है। PowerShell या अंतर्निहित कंसोल टूल wevtutil का उपयोग करके कमांड प्रॉम्प्ट से लॉग्स साफ़ करना बहुत आसान है।
PowerShell के साथ इवेंट लॉग्स साफ़ करना
यदि आपके पास PowerShell 3 इंस्टॉल है (डिफ़ॉल्ट रूप से, यह Windows 8 / Windows Server और उच्चतर में इंस्टॉल होता है), तो आप इवेंट लॉग्स की सूची प्राप्त करने और उन्हें साफ़ करने के लिए Get-EventLog और Clear-EventLog cmdlets का उपयोग कर सकते हैं।
एडमिनिस्ट्रेटर विशेषाधिकारों के साथ PowerShell कंसोल शुरू करें और सिस्टम में सभी मानक इवेंट लॉग्स की सूची अधिकतम आकार और इवेंट्स की संख्या के साथ प्रदर्शित करने के लिए निम्न कमांड का उपयोग करें:
Get-EventLog –LogName *
किसी विशिष्ट इवेंट लॉग (उदाहरण के लिए, System लॉग) से सभी एंट्रीज़ साफ़ करने के लिए, इस कमांड का उपयोग करें:
Clear-EventLog –LogName System
परिणामस्वरूप, इस लॉग के सभी इवेंट्स डिलीट हो जाएंगे, और केवल EventId 104 वाला एक इवेंट और संदेश “The System log file was cleared” बचेगा।
सभी इवेंट लॉग्स साफ़ करने के लिए, आपको लॉग नामों को पाइपलाइन पर रीडायरेक्ट करना होगा, लेकिन दुर्भाग्य से, यह प्रतिबंधित है। इसलिए, हमें ForEach लूप का उपयोग करना होगा:
Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }
इस प्रकार, सभी मानक इवेंट लॉग्स साफ़ हो जाएंगे।
कंसोल टूल WevtUtil.exe का उपयोग करके लॉग्स साफ़ करना
इवेंट्स के साथ काम करने के लिए, लंबे समय से Windows में एक शक्तिशाली कमांड प्रॉम्प्ट यूटिलिटी WevtUtil.exe मौजूद है। पहली नज़र में इसका सिंटैक्स थोड़ा जटिल लगता है। उदाहरण के लिए, यह यूटिलिटी की मदद लौटाता है:
सिस्टम में रजिस्टर्ड लॉग्स की सूची प्रदर्शित करने के लिए, यह कमांड चलाएं:
WevtUtil enum-logs
या इसका छोटा संस्करण:
WevtUtil el
स्क्रीन पर लॉग्स की काफी प्रभावशाली सूची प्रदर्शित होगी।
नोट. आप निम्न कमांड का उपयोग करके गिन सकते हैं कि कितने लॉग्स हैं:WevtUtil el | Measure-Object। मेरे मामले में Windows 10 में 1,053 अलग-अलग लॉग्स थे।
आप किसी विशिष्ट लॉग पर विस्तृत जानकारी प्राप्त कर सकते हैं:
WevtUtil gl Setup
यहां बताया गया है कि किसी विशिष्ट लॉग में इवेंट्स कैसे साफ़ करें:
WevtUtil cl Setup
इवेंट्स साफ़ करने से पहले, आप उन्हें फ़ाइल में सेव करके बैकअप ले सकते हैं:
WevtUtil cl Setup /bu:SetupLog_Bak.evtx
एक साथ सभी लॉग्स साफ़ करने के लिए, आप सभी लॉग ऑब्जेक्ट्स प्राप्त करने के लिए Get-WinEvent PowerShell cmdlet और उन्हें साफ़ करने के लिए Wevtutil.exe का उपयोग कर सकते हैं:
Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_.LogName }
या
Wevtutil el | ForEach { wevtutil cl “$_”}
आप मानक कमांड प्रॉम्प्ट का उपयोग करके भी लॉग्स साफ़ कर सकते हैं:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"