POWERSHELL 计划任务的创建,收集DC中失败的登录信息并邮件通知
(注:本文参考以下前辈文章修改而来,源文章连接:http://itadmindev.blogspot.hk/2011/07/powershell-ad-dc-failed-logins-report.html)
原脚本只用于收集统计AD,过去一天时内,EventID为4625帐户登录失败的IP、主机名及登录次数。
EventID对应的内容可参考以下内容:http://support.microsoft.com/kb/947226/zh-cn
我现在依需求,修改为需要收集过去一天内,ID为4771:Kerberos预身份验证失败的信息,主要是指AD中认证失败的账号、客户端,并发邮件通知到指邮箱。
1、启用DC的Audit功能
修改GPO,针对DefaultDomainControllerPolicy,启用Auditaccountlogonevents/Auditlogonevents
2、修改powershell执行策略
因为默认PowerShell策略是不能执行未经签名的PS1,当我们直接调用时,会出现如下错误:
可参考说明KB:
http://technet.microsoft.com/zh-CN/library/hh847748.aspx
http://technet.microsoft.com/zh-cn/library/ee176949.aspx
而我们自已修改编辑的PS脚本是未经认证的,所以需要修改策略,方法如下:
1)先查看当前的执行策略:Get-ExecutionPolicy
显示为:Restricted,即只能执行经注册的PS脚本。
2)修改执行策略为Remotesigned:Set-Exectionpolicyremotesigned
然后输入”Y”确认修改。
3)再次查看当前执行策略:Get-ExecutionPolicy,
已显示为:RemoteSigned
3、下载、修改PowerShell代码
附件PS中,请自行修改以下内容:
1)DCName
PS脚本中第25行括号中为你现有DC名,如果有多台,请手动修改为你实际的DC名称,如:DC001,DC002
$DCs=@("dc001",”dc002”)
2)SMTP设置部分
PS脚本中第134-136行修改为发件人、收件人的邮件地址和内部SMTP服务器的主机名或是IP地址:如下:
From="support@sysmicro.cn"
To="johnson@sysmicro.cn"
SmtpServer="mail.sysmicro.cn"
以上PS脚本修改好后,先手动执行,确保能正常后执行,没有错误后,保存为*.ps1文件,以方便随时调用!
4、将PowerShell加入到计划任务中,自动运行。
如果需要设定每天固定时间运行,将前一天认证失败的信息邮件方式通知指定人员,则可以用创建计划任务的方式,指定固定时间运行,具体方法可以参考:
1)创建计划任
Start\Allprograms\administrativetools\TaskScheduler,在右边选择CreatebasicTask…
2)在创建的任务名称中,输入你相要的名称,如:ADFailedLogonReport,然后下一步:
3)任务运行时间,选择Daily,然后下一步;
4)选择每天运行的时间,依你需求,定义好后,下一步:
5)在Action选项中,选择:StartProgram,然后下一步:
6)在Program/Script,点击Browse,选择刚才第3步中保存的.PS1文件,然后在修改为:Powershell–file”D:\Script\AD_DCs_Failed_Login_Report_4771_51cto.ps1”,然后下一步:
7)在弹出的TaskScheduler中选择“Yes”
8)在Finish中勾选:OpenthepropertiesdialogfortaskwhenIclickfinish,然后点击完成
9)完成后,可以预览任务属性,在General中,选择:Runwhetheruserisloggedonornot,即用户是否登录时,都执行此任务,点击OK后完成退出!
说明:以上以上方法供大家参考,大家可以修改需要的EventID查询你想要的信息!
经在我所在的工作环境中测试,效果不错,如果过去一天中,没有失败的认证,收到的邮件为一个空白的表,如下:
如果过去一天中,有失败的认证,则能显示具体的IP、账号、失败的次数,管理员刚可依此信息对相应IP地址的电脑、账号进行检查,以排除安全隐患!
POWERSHELL 计划任务的创建,收集DC中失败的登录信息并邮件通知的更多相关文章
- DedeCMS中实现在顶层banner中显示自定义登录信息
一.需求描述 dedeCMS自带的模板中有互动中心模块,如下图所示: 由于会员登陆对我来说不是网站的重要模块且默认DedeCMS的会员中心模块的初始化很慢,常会显示“正在载入中,请稍候...”, 所以 ...
- .NET跨平台之旅:ASP.NET Core从传统ASP.NET的Cookie中读取用户登录信息
在解决了asp.net core中访问memcached缓存的问题后,我们开始大踏步地向.net core进军——将更多站点向asp.net core迁移,在迁移涉及获取用户登录信息的站点时,我们遇到 ...
- Oracle 中记录用户登录信息
我们可以使用 Oracle Audit 函数来记录用户登录信息,但是如果开放了 Audit 函数将会使 Oracle 性能下降,甚至导致 Oracle 崩溃.那我们如何才能记录用户登录信息呢?其实我们 ...
- yii框架中保存第三方登录信息
(第三方登录) 创建应用,域名,详情请看:http://www.cnblogs.com/xujn/p/5287157.html 效果图:
- 使用PowerShell在Azure China创建Data Warehouse
微软的Azure Data Warehouse是基于MPP架构的分布式系统: Control Node负责管理系统和接受用户的请求,Compute Node负责计算. 目前在国内Azure Data ...
- Jmeter(五) - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)
1.简介 上一篇中宏哥已经将其的理论知识介绍了一下,这一篇宏哥就带着大家一步一步的把上一篇介绍的理论知识实践一下,然后再说一下如何创建高级web测试计划. 2.网络计划实战 通过上一篇的学习,宏哥将其 ...
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
http://blog.csdn.net/mazhaojuan/article/details/8599167 先看一下我要实现的功能界面: 这篇文章主要介绍:后台一般处理程序把从数据库查找的数据,转 ...
- Eclipse在已创建的project中导入其他文件
Eclipse在已创建的project中导入其他文件 前两天被同事问到,如何通过不拷贝源文件的方式,在之前已经创建好的project中直接导入其他目录下的文件, 整理了一下,将目前所知道的eclips ...
- 使用eclipse创建在myeclipse中运行的web工程
今天在跟随慕课网学习java时,遇到课程中老师使用Myeclipse,我用的是eclipse,那么就使用eclipse创建在Myeclipse项目 参考: 如何在Eclipse配置Tomcat服务器 ...
随机推荐
- js_script
使用 self.crawl 的 js_script 参数,在页面上执行一段脚本,实现[点击加载更多]的效果: def on_start(self): self.crawl('http://movie. ...
- [转]OpenCV2.4.12 开启OpenGL启用三维可视化支持
OpenCV默认情况下是不支持OpenGL的,如果要使OpenCV支持OpenGL,则需要重编译,具体步骤如下: 注意事项:从The OpenCV Reference ManualOpenCV参考手册 ...
- Android ListView下拉刷新时卡的问题解决小技巧
问题:ListView下拉刷新时看上去非常的卡 解决方案: 在BaseAdapter的getView方法中,有三个参数 public View getView(int position, View c ...
- C. Sad powers
You're given Q queries of the form (L, R). For each query you have to find the number of such x that ...
- 使用selenium进行自动化测试
selenium 支持多个客户端:ruby,Java,python.可以用来对网页进行全面测试,支持真实浏览器测试. firefox IE chrome safari 支持多操作系统: Linux w ...
- springmvc接收json注意事项
在以前使用SpringMvc框架时,在接受json数据时碰到了一些奇怪的问题.这里记录下来,方便以后查阅. 1. data 里写json对象 , 即该json数据没有被单(双)引号包住 ...
- OpenCV学习C++接口 Mat像素遍历详解
OpenCV学习C++接口 Mat像素遍历详解
- 在服务器运行一个jar包,不用时终止它
1.打成jar包后,输入命令 nohup java -jar floodlight.jar >log.txt >& &//nohup 不生成 nohup.out的方法noh ...
- JavaScript闭包简单应用
闭包定义 在JavaScript中,当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包.简单说,闭包就是能够读取其他函数内部变量的函数. 闭包的作用: 1. 可以读取函数内部的变量 2. 让 ...
- R语言学习 第三篇:数据框
数据框(data.frame)是最常用的数据结构,用于存储二维表(即关系表)的数据,每一列存储的数据类型必须相同,不同数据列的数据类型可以相同,也可以不同,但是每列的行数(长度)必须相同.数据框的每列 ...