windows日志删除工具

这个利器当然就是传说中的psloglist.exe工具了,在cmd下输入
psloglist.exe \acceptelua可以防止弹出什么什么协议之类的
psloglist.exe -c security 删除登录日志
psloglist.exe -g security backup.evt 导出登录日志
psloglist.exe -c -g security backup.evt 导出并删除日志

这几日研究的课题是系统日志的清理,主要参考的书籍是《暗战强人. 黑客攻防实战高级演练》,虽然讲到的技术比较老,但对于刚入门

的我还是收获较大。

在Windows系统中,日志文件通常有应用程序日志、安全日志、系统日志、DNS服务器日志、FTP日志、WWW日志等,其扩展名为.log、

.txt。我们先来熟悉下各个日志文件存放的位置及相应的服务。

系统文件所在位置

安全日志:%winsystem%\system32\config\Secevent.evt

应用程序日志:%winsystem%\system32\config\AppEvent.evt

系统日志:%winsystem%\system32\config\SysEvent.evt

IIS的FTP日志:%winsystem%\system32\logfiles\msftpsvc1\,默认每天一个日志

IIS的www日志:%winsystem%\system32\logfiles\w3svc1\ 默认每天一个日志

Scheduler服务日志:%winsystem%\schedlgu.txt

注册表所在项目:

[HKLM]\system\CurrentControlSet\Services\Eventlog

Schedluler服务注册表所在项目:

[HKLM]\SOFTWARE\Microsoft\SchedulingAgent

如果日志被从新定位,路径在注册表里面有记录.

熟悉了各个日志存放的路径后,我们可以通过编写个批处理程序来删除日志文件

	@del c:\winnt\system32\logfiles\*.*
@del c:\winnt\system32\config\*.evt
@del c:\winnt\system32\dtclog\*.*
@del c:\winnt\system32\*.log
@del c:\winnt\system32\*.txt
@del c:\winnt\*.txt
@del c:\winnt\*.log
@del c:\del.bat

对于个别比较系统日志,手动清除并不是明智的选择,我们可以借助第三方工具进行清除,下面介绍几款工具

针对系统日志

clearlogs的使用方法很简单,其命令格式为:

clearlogs [\\computername] <-app / -sec / -sys>。

其中各个参数的含义如下。

-app:应用程序日志。

-sec:安全日志。

-sys:系统日志。

使用clearlogs工具删除事件日志的具体操作步骤如下。

步骤1:在命令提示符窗口中输入”net use \\192.168.0.45\ipc$ “11111″/Aministrator”命令,即可通过建立IPC$连接把clearlogs上传到远程计算机。

步骤2:输入如下任何一种命令清除远程主机上的日志。

clearlogs \\192.168.0.45 -app清除远程计算机的应用程序日志。

clearlogs \\192.168.0.45 -sec清除远程计算机的安全日志。

clearlogs \\192.168.0.45 -sys清除远程计算机的系统日志。

步骤3:为了更安全一点,也可以建立一个批处理文件clear.bat,其具体的内容如下:

	@echo off
clearlogs -app
clearlogs -sec
clearlogs -sys
del clearlogs.exe
del c.bat
exit
<span style="font-family:Arial,Verdana,sans-serif;margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; white-space:normal">步骤4:通过"net time"命令查看远程计算机的系统时间,再用"AT 时间 c:\clear.bat"命令建立一个计划任务来执行clearlogs.exe命令。</span>

步骤5:使用”net use \\192.168.0.45\ipc$/del”命令来断开IPC$连接。

无论是本地还是远程清除日志,都可以使用elsave工具来完成。elsave是个清除日志的程序,其作用是远程删除事件查看器中的相关的日志。

其命令格式为:

elsave [-s\\server] [-l log] [-F file] [-C] [-q]

其中各个参数的含义如下。

-s\\server:指定远程计算机。

-l log:指定日志类型,其中参数”application”为应用程序日志,参数”system”为系统日志,参数”security”为安全日志。

-F file:指定保存日志文件的路径。

-C:清除日志操作,注意”-C”要大写。

-q:把错误信息写入日志。

使用elsave删除日志的具体操作步骤如下。

步骤1:在本地命令提示符窗口中输入”net use \\ip\ipc$ “password” /user:”"”命令,即可与远程主机/服务器用IPC$进行连接。

步骤2:在本地命令提示符窗口中分别输入如下命令,即可删除远程计算机中的日志文件。

清除应用程序日志命令:elsave -s\\192.168.0.45 -l application -C。

清除系统日志命令:elsave -s\\192.168.0.45 -l system -C。

清除安全日志命令:elsave -s\\192.168.0.45 -l security -C。

步骤3:在本地命令提示符窗口中输入”net use\\192.168.0.45\ipc$/ del”命令,即可断开IPC$连接。这样黑客便成功地删除了远程主机中的事件日志。

步骤4:另外,也可以编写一个批处理文件clear.bat,具体的内容如下:

	<span style="font-size:14px;margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px;">net use \\%1\ipc$ %3 /user:%2
elsave -s \\%1 -l "application" -C
elsave -s \\%1 -l "system" -C
elsave -s \\%1 -l "securtity" -C
net use \\%1\ipc$ /del
<span style="font-family:Arial,Verdana,sans-serif;margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; white-space:normal">步骤5:把该文件存储到和elsave.exe文件相同的文件夹下之后,在命令提示符窗口中运行"Clear.bat 192.168.0.45 Susan """命令,即可清除远程计算机的日志记录。</span></span>

批处理每次能处理的变量从%0~%9共10个,其中,%0默认给批处理文件名使用,%1默认为使用此批处理时输入的的第一个值。同理,%2~%9指输入的第 2~第9个值。

CleanIISLog是一款常见的日志处理工具,它可以不留痕迹地清除指定的IP连接记录。CleanIISLog只能在本地运行,而且必须具有Administrators权限。

其命令格式为:

cleaniislog [logfile] [.] [cleanIP]

其中各个参数的含义如下。

logfile:清除的日志文件,Logfile用于指定要处理的日志文件,如果指定为”.”,则处理所有的日志文件。

[]中的”.”代表所有清除的日志中那个IP地址记录。

cleanIP用于指定要清除的IP记录,如果指定为”.”,则清除所有的IP记录,但是最好不要这样设置。

最后的”.”代表所有IP记录。

例如,”cleaniislog . 127.0.0.1″的作用是只清除本机的访问记录,而保留其他的IP记录。当清除成功之后,cleanIISLog即可在系统日志中将本身的运行记录清除。

这两个工具都需要你建立ipc连接来完成,那么如果没有ipc怎么办啊。那就是基于wmi(windows 管理规范)来清除

其命令格式为:

	dellog.vbs targetIP username password [lognamelist] 

        lognamelist: 

        logname1[,logname2...]    clear specified logs 

        *|-a|-all                 clear all logs 

        -v|-view|NULL             enum log names

针对WWW日志

IIS日志保存在%systemroot%\system32\logfiles\下。如果启动了web server的话,那么就会在上述路径下多出一个W3SVC1的文件夹,用

来存储web服务日志。

如果也启动了iis 自带的ftp服务,那么还有会有个MSFTPSVC1的文件夹,里面是ftp的日志。

最近在学习写bat脚本,以下为实现批量删除一个月前的日志文件。话不多说直接上代码:

@echo off
set y=%date:~0,4%
set m=%date:~5,2%
set d=%date:~8,2%
set /a m-=1
if %m% LSS 11 set m=0%m%
if %m%==00 set m=12&set /a y-=1
set datestr=%y%%m%%d%
setlocal EnableDelayedExpansion
for %%i in (d:\test\*.log) do (
    set var1=%%i
    set var2=!var1:~-12,8!
    if !var2! lss %datestr% (del d:\test\*!var2!.log)
)
endlocal
exit 
备注: 
1、这里截取当前时间的年月日,不同系统可能默认的不一致,自己可通过cmd–输入date,回车查看。需要修改的话自行baidu。 
2、setlocal EnableDelayedExpansion/endlocal 
设置本地为延迟扩展(延迟变量),全称”延迟环境变量扩展”, 变量%%用!!代替,来获取变量实时的值。 
3、实现原理: 
这里由于日志文件命名是有规律的,都是日志名+时间(年月日).log,通过截取当中的日期与当前时间的一个月前日期比较来决定删除对应的文件。
--------------------- 
作者:jiangyuhai_js 
来源:CSDN 
原文:https://blog.csdn.net/jiangyuhai_js/article/details/73603354 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/yyws2039725/article/details/85330160