কীভাবে সমস্ত উইন্ডোজ ইভেন্ট লগ বিভাগগুলি দ্রুত সাফ করবেন


17

উইন্ডোজ 7 এর অধীনে আপনি বিভিন্ন বিভাগ ব্রাউজ করতে ইভেন্ট ভিউয়ারটি খুলুন। আপনি ডান ফলকে ক্লিয়ার লগ ... ক্লিক করে একটি একক বিভাগও সাফ করতে পারেন ।

ধরে নিচ্ছি যে আমি সমস্ত বিভাগগুলি সাফ করতে চাই, আমার কি একের পর এক ক্লিক করে সেগুলি সাফ করার কথা?
তাদের কয়েক ডজন আছে। একটি দ্রুত উপায় আছে কি? হয়তো পাওয়ারশেলের সাথে?

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

উত্তর:


18

WEvtUtil.exe ব্যবহার করে দেখুন

জিইউআইয়ের মাধ্যমে সমস্ত লগ একবারে সাফ করার কোনও উপায় নেই। কমপক্ষে আমি খুঁজে পাইনি যে। :)

মধ্যবর্তী ফাইলের সাথে লুপ এবং মুছুন

এখানে একটি ব্যাচের ফাইল যা কোনও টেক্সট ফাইলে লগগুলি তালিকাভুক্ত করতে WEVTUTIL.exe ব্যবহার করে এবং তারপরে প্রতিটি লগ মুছতে সেই পাঠ্য ফাইলটি ব্যবহার করে।

WEVTUTIL EL > .\LOGLIST.TXT
for /f %%a in ( .\LOGLIST.TXT ) do WEVTUTIL CL "%%a"
del .\LOGLIST.TXT
timeout 30

যদি আপনি এই সমস্ত কিছু একটি ব্যাচের ফাইলে থাকা অনিরাপদ মনে করেন, তবে আপনি এটি দুটি পৃথক ফাইলে সংরক্ষণ করতে পারবেন এবং তারপরে একটির পরে একটি চালনা করতে পারেন:
("নুকে" ব্যাচটি "লগলিস্ট.টেক্সট" না সন্ধান করলে কেবল ত্রুটি থেকে বেরিয়ে আসবে) "এর বর্তমান ডিরেক্টরিতে।)

পূরণ-LogList.cmd

@ECHO OFF
REM Source: /superuser//a/655185/389368
WEvtUtil.exe enum-logs > .\LOGLIST.TXT

পরমাণু-LogList.cmd

@ECHO OFF
REM Source: /superuser//a/655185/389368
for /f %%a in ( .\LOGLIST.TXT ) do WEvtUtil.exe clear-log "%%a"
del .\LOGLIST.TXT
timeout 30

লুপ এবং সরাসরি মুছুন

লগম্যান তার উত্তরে যেমন উল্লেখ করেছেন , এটি (ব্যাচের ফাইলের জন্য% এর দ্বিগুণ) জাতীয় কিছু ব্যবহার করে আরও সংক্ষিপ্ত করা যেতে পারে (এবং মধ্যবর্তী পাঠ্য ফাইলের প্রয়োজনীয়তা অপসারণ):

for /f %%a in ('WEVTUTIL EL') do WEVTUTIL CL "%%a"
timeout 30

অ্যাডমিন হিসাবে চালান!

আপনি যে কোনও উপায়ে বাছাই করুন না কেন, আপনাকে "প্রশাসক হিসাবে চালান" নিশ্চিত করুন।

সবচেয়ে সহজ সমাধান আমি খুঁজে পেয়েছি। ভিস্তার পর থেকে এটি ব্যবহার করা হয়েছে। :)


আমি পাইথন স্ক্রিপ্টে বা এর অনুরূপ ডাব্লুএমআই ব্যবহার করার বিষয়ে বিবেচনা করছিলাম - কিছু পরিস্থিতিতে কীভাবে ব্যাচ সহজ সমাধান হতে পারে তার খুব ভাল উদাহরণ।
লাইল ব্রাউন

সিএমডি আউটপুট + ইভেন্ট দর্শকের ওভারভিউ । অ্যাডমিন হিসাবে ব্যাচের মাধ্যমে আপনার দ্বিতীয় উদাহরণ ব্যবহার করেছেন। কিছু বিভাগ সাফ করা যায় না? স্ট্রেঞ্জ। এবং পাওয়ারশেল বিভাগে এখনও 11.511 টি ইভেন্ট রয়েছে? অন্য সবগুলি পরিষ্কার হয়ে গেছে বলে মনে হচ্ছে
নিক্সদা

উদ্ধৃতিগুলির অভাব দ্বারা জর্জরিত। এই সম্পর্কে দুঃখিত, এটি স্থির। :)
ʜιᴇcʜιᴇ007

এই সমাধানটি বা উইন্ডোজ এক্সপিতে @ লোগম্যান দ্বারা প্রস্তাবিত ব্যবহার করা সম্ভব? আমি wevtutilসিস্টেমের মধ্যে এটি দেখতে পাচ্ছি না ।
সোপালাজো ডি অ্যারিরিজ

1
@SopalajodeArrierez "wevtutil" ভিস্তা থেকে উপরে ... কেবল প্রাপ্তিসাধ্য technet.microsoft.com/en-us/library/cc732848.aspx
Logman

19

সিএমডি প্রম্পট খুলুন বা ব্যাচ স্ক্রিপ্ট তৈরি করুন এবং "প্রশাসক হিসাবে চালান":

for /f %x in ('wevtutil el') do wevtutil cl "%x"

সমস্ত ইভেন্টের লগগুলি সাফ করার জন্য পাওয়ারশেল কোড:

wevtutil el | Foreach-Object {Write-Host "Clearing $_"; wevtutil cl "$_"}

বা স্ক্রিপ্ট চয়ন বা চয়ন করুন:

wevtutil.exe cl Analytic
wevtutil.exe cl Application
wevtutil.exe cl DirectShowFilterGraph
wevtutil.exe cl DirectShowPluginControl
wevtutil.exe cl EndpointMapper
wevtutil.exe cl ForwardedEvents
wevtutil.exe cl HardwareEvents
wevtutil.exe cl Internet Explorer
wevtutil.exe cl Key Management Service
wevtutil.exe cl MF_MediaFoundationDeviceProxy
wevtutil.exe cl "Media Center"
wevtutil.exe cl MediaFoundationDeviceProxy
wevtutil.exe cl MediaFoundationPerformance
wevtutil.exe cl MediaFoundationPipeline
wevtutil.exe cl MediaFoundationPlatform
wevtutil.exe cl Microsoft-IE/Diagnostic
wevtutil.exe cl Microsoft-IEFRAME/Diagnostic
wevtutil.exe cl Microsoft-PerfTrack-IEFRAME/Diagnostic
wevtutil.exe cl Microsoft-PerfTrack-MSHTML/Diagnostic

ইত্যাদি ...

আপনি কোনও সেন্টিমিড প্রম্পট বা পাওয়ারশেলে নিম্নলিখিতটি লিখে সমস্ত ইভেন্ট বিভাগের নামের একটি সম্পূর্ণ তালিকা পেতে পারেন:

wevtutil el

আরও তথ্য এমএস টেকনেটে পাওয়া যাবে । উদাহরণ:

সিস্টেম লগ থেকে সিটিতে ইভেন্টগুলি রপ্তানি করুন: \ ব্যাকআপ \ system0506.evtx:

wevtutil epl System C:\backup\system0506.evtx

অ্যাপ্লিকেশন লগ থেকে সি: C অ্যাডমিন \ ব্যাকআপগুলি 10 a10306.evtx এ সংরক্ষণ করার পরে সমস্ত ইভেন্ট সাফ করুন:

wevtutil cl Application /bu:C:\admin\backups\a10306.evtx

সুন্দর সংক্ষিপ্ত সংস্করণ।
ʜιᴇcʜιᴇ007

4
  • ওয়েভটুইলটি বেশ ধীর গতির, বিশেষত যখন আপনি সমস্ত লগ পরিষ্কার করেন (খালিগুলি সহ)

  • দ্রুততম সমাধানটি আমি নিয়ে এলাম:


ForEach ( $l in ( Get-WinEvent * ).LogName | sort | get-unique ) {[System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog("$l")}


রেজুল: "4 লগে 16 ইভেন্ট সাফ করেছে: 0.3684785 সেকেন্ড"

প্রতিটি অংশ:

  • কেবল ইভেন্টগুলি সম্বলিত লগ পায় (নকল লগনাম থাকবে)

    ফরইচ (Get l ইন (গেট-উইনএভেন্ট *) og

  • এক এক পরিষ্কার করুন

    System.Diagnostics.Eventing.Reader.EventLogSession] :: গ্লোবালসেশন.ক্লেয়ারলগ ("$ l")

সম্পূর্ণ ফাংশন:

function Clear-EventLogs
{
    Begin
    {
        $t1          = ( Measure-Command -Expression{ $active = ( Get-WinEvent ).LogName } ).TotalSeconds
        $totalEvents = $active.Count
        $active      = $active | Sort | Get-Unique
        $totalLogs   = $active.Count
    }
    Process
    {
        $t2 = ( Measure-Command -Expression{
            ForEach ( $l in $active )
            {
                [System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog( "$l" )
                # ForEach-Object { Wevtutil.exe cl "$l" }
            }
        } ).TotalSeconds
    }
    End     { $t3 = $t1 + $t2; Write-Output "Cleared $totalEvents events in $totalLogs logs: $t3 seconds" }
}

আপনি যদি "গেট উইন অ্যাভেন্ট: ডেটাটি অবৈধ" দেখতে পান তবে আপনি 256 লগের অননুমোদিত হার্ড-সীমাতে আঘাত করেছেন। প্রথমে লগগুলি ফিল্টার করা প্রয়োজন হতে পারে। নিম্নলিখিতগুলি কেবলমাত্র সেই লগগুলি নির্বাচন করবে যা ইভেন্টগুলি রয়েছে ( রোগ নির্ণয়ের জন্য http://www.powershellish.com/blog/2015/01/19/get-winevent-max-logs/ এর ক্রেডিট ):

$logs = Get-WinEvent -ListLog * | Where-Object {$_.RecordCount} | Select-Object -ExpandProperty LogName
ForEach ( $l in ( Get-WinEvent $logs ).LogName | sort | get-unique ) {[System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog("$l")}

2
আমি এই ফাংশনটি retested। এটি 168802 ইভেন্টগুলি মুছতে 271 সেকেন্ড সময় নিয়েছিল
নিক্সদা

1
@ নিক্সদা: ১9৯,০০০ ইভেন্টের জন্য পাঁচ মিনিট খুব দ্রুত নয়, তবে আমি নিশ্চিত নই যে ওয়েভ্টটিল একই সংখ্যক ইভেন্টের সাথে কীভাবে অভিনয় করবে (এটি কিছু কিছু
এড়িয়েও

3

যদি আপনার নামগুলিতে ফাঁক থাকে তবে ডিলিম বিকল্পটি ব্যবহার করা গুরুত্বপূর্ণ:

WEVTUTIL EL > .\LOGLIST.TXT
for /f "delims=" %%a in ( .\LOGLIST.TXT ) do WEVTUTIL CL "%%a"

ইভেন্ট লগ পরিষেবাটি বন্ধ না করে আপনি সহজেই সমস্ত ইভেন্ট লগিং নিষ্ক্রিয় করতে পারেন:

for /f "delims=" %%a in ('WEVTUTIL EL') do WEVTUTIL SL "%%a" /e:false

অবশ্যই এটি কেবলমাত্র ইনস্টল করা সফ্টওয়্যার ইভেন্টগুলি অক্ষম করবে, আপনি যদি একটি নতুন সফ্টওয়্যার ইনস্টল করেন তবে এটি লগিংটি ডিফল্টরূপে সক্ষম করবে। তবে ভাল জিনিস আপনি টাস্ক শিডিয়ুলারটি চালিয়ে যেতে পারেন, তাই এটি প্রতিমাসে করুন ;-)


আমি কীভাবে আপনার দ্বিতীয় আদেশটি (এসএল এবং / ই: মিথ্যা দিয়ে) ফিরিয়ে দিতে পারি? বা আমি কীভাবে আমার সমস্ত ইভেন্টের লগ বৈশিষ্ট্যগুলি ডিফল্টে পুনরুদ্ধার করতে পারি?
পিটারকো

প্রিয় পিটারকো আমি নিশ্চিত নই, আপনি ডিফল্টরূপে কী বোঝাতে চাইছেন। ওয়েভটিল কমান্ডের জন্য ডকুমেন্টেশন পরীক্ষা করুন, উদাহরণস্বরূপ WEVTUTIL sl /?একটি কমান্ড লাইনে প্রবেশ করার চেষ্টা করুন ।
সান-কুন ক্লার্ক-ডেভিস

2

বিটিডাব্লু, এটি সমস্ত লগ ফাইল সাফ করে, যা (পূর্ববর্তী সেটিংসের উপর নির্ভর করে) বেশ কিছু জায়গা খালি করতে পারে

WEVTUTIL EL > .\LOGLIST.TXT
for /f "delims=" %%a in ( .\LOGLIST.TXT ) do WEVTUTIL CL "%%a"
del .\LOGLIST.TXT
timeout 10

1

লগ ফাইলগুলি সাফ করা একটু সহজ করার জন্য আমি .bat ফাইলগুলি ব্যবহার করেছি। স্রেফ সরল স্ক্রিপ্টটি এখানে বেছে নিয়েছেhttp://winaero.com/blog/how-to-clear-the-windows-event-log-from-the-command-line/

সেই লিঙ্ক থেকে অনুলিপি করা হয়েছে।

@echo off
FOR /F "tokens=1,2*" %%V IN ('bcdedit') DO SET adminTest=%%V
IF (%adminTest%)==(Access) goto noAdmin
for /F "tokens=*" %%G in ('wevtutil.exe el') DO (call :do_clear "%%G")
echo.
echo Event Logs have been cleared!
goto theEnd
:do_clear
echo clearing %1
wevtutil.exe cl %1
goto :eof
:noAdmin
echo You must run this script as an Administrator!
echo.
:theEnd
  1. নোটপ্যাড খুলুন এবং এতে পাঠ্যটি অনুলিপি করুন।

  2. এটিকে একটি ব্যাচ ফাইল হিসাবে সংরক্ষণ করুন এবং এটির কোনও নাম দিন example উদাহরণস্বরূপ: ClEvtLog.bat বা ClEvtLog.cmd।

  3. এডমিন অধিকার সহ এটি চালান।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.