কিছু পরিস্থিতিতে কম্পিউটার বা সার্ভারের উইন্ডোজ ইভেন্ট লগ থেকে সকল এন্ট্রি মুছে ফেলা প্রয়োজন হয়। নিশ্চিতভাবেই আপনি ইভেন্ট ভিউয়ার কনসোল GUI—Eventvwr.msc থেকে সিস্টেম লগ ক্লিয়ার করতে পারেন (ইচ্ছিত লগে রাইট-ক্লিক করে Clear Log নির্বাচন করুন)। যাইহোক, ভিস্তা 이후 উইন্ডোজ বিভিন্ন সিস্টেম কম্পোনেন্টের জন্য কয়েক দশক লগ ব্যবহার করছে, এবং ইভেন্ট ভিউয়ারে ম্যানুয়ালি সকল লগ ক্লিয়ার করা সময়সাপেক্ষ। কমান্ড প্রম্পট থেকে পাওয়ারশেল বা বিল্ট-ইন কনসোল টুল wevtutil ব্যবহার করে লগ ক্লিয়ার করা অনেক সহজ।
পাওয়ারশেল দিয়ে ইভেন্ট লগ ক্লিয়ার করা
যদি পাওয়ারশেল ৩ ইনস্টল থাকে (ডিফল্টভাবে উইন্ডোজ ৮/উইন্ডোজ সার্ভার এবং উচ্চতর সংস্করণে থাকে), তবে Get-EventLog এবং Clear-EventLog ক্মডলেট ব্যবহার করে ইভেন্ট লগের তালিকা পাওয়া এবং সেগুলো ক্লিয়ার করা যায়।
এডমিনিস্ট্রেটর অধিকার দিয়ে পাওয়ারশেল কনসোল শুরু করুন এবং নিচের কমান্ড দিয়ে সিস্টেমের সকল স্ট্যান্ডার্ড ইভেন্ট লগের তালিকা পান, যাতে সর্বোচ্চ আকার এবং ইভেন্ট সংখ্যা সহ:
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 ব্যবহার করে লগ ক্লিয়ার করা
ইভেন্ট নিয়ে কাজ করার জন্য উইন্ডোজে די আগে থেকেই একটি শক্তিশালী কমান্ড প্রম্পট ইউটিলিটি আছে WevtUtil.exe। এর সিনট্যাক্স প্রথমে কিছু জটিল দেখতে পারে। উদাহরণস্বরূপ, ইউটিলিটির হেল্প পেতে:
সিস্টেমে নিবন্ধিত লগের তালিকা দেখতে নিচের কমান্ড চালান:
WevtUtil enum-logs
অথবা এর সংক্ষিপ্ত সংস্করণ:
WevtUtil el
খুব বড় লগের তালিকা স্ক্রিনে দেখাবে।
নোট। আপনি নিচের কমান্ড দিয়ে লগের সংখ্যা গণনা করতে পারেন: WevtUtil el | Measure-Object। আমার ক্ষেত্রে উইন্ডোজ ১০-এ ১,০৫৩টি আলাদা লগ ছিল।
নির্দিষ্ট লগের বিস্তারিত তথ্য পেতে:
WevtUtil gl Setup
নির্দিষ্ট লগের ইভেন্ট ক্লিয়ার করার পদ্ধতি:
WevtUtil cl Setup
ইভেন্ট ক্লিয়ার করার আগে আপনি সেগুলো ফাইলে সেভ করে ব্যাকআপ নিতে পারেন:
WevtUtil cl Setup /bu:SetupLog_Bak.evtx
একসাথে সকল লগ ক্লিয়ার করতে Get-WinEvent পাওয়ারশেল ক্মডলেট ব্যবহার করে সকল লগ অবজেক্ট পান এবং 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"