Powershell检测AD账户密码过期时间并邮件通知

脚本主要实现了两个功能 :

一能判断账户密码的过期时间并通过邮件通知到账户;

二是将这些即将过期的账户信息累计通知到管理员。

脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
############################################
#Author:Lixiaosong
#Email:lixs@ourgame.com;lixiaosong8706@gmail.com
#For:检测AD密码过期时间并邮件通知
#Version:1.0
##############################################
Import-Module Activedirectory
$alladuser=get-aduser -searchbase "OU=IT,DC=contoso,DC=com" -filter *  | %{$_.Samaccountname}
$userlist = @()
#################################################
#检测AD密码过期时间并邮件通知相应账户
##################################################
foreach ($user in $alladuser){
#密码最后一次更改时间
$pwdlastset=Get-ADUser $user -Properties * | %{$_.passwordlastset}
#密码的过期时间
$pwdlastday=($pwdlastset).adddays(90)
#当前时间
$now=get-date
#判断账户是否设置了永不过期
$neverexpire=get-aduser $user -Properties * |%{$_.PasswordNeverExpires}
#距离密码过期的时间
$expire_days=($pwdlastday $now).Days
#判断过期时间天小于15天的并且没有设置密码永不过期的账户
if($expire_days -lt 15 -and $neverexpire -like "false" ){
    $chineseusernameGet-ADUser $user  -Properties * | %{$_.Displayname}
    #邮件正文
    $Emailbody=
"亲爱的 $chineseusername 同学 :
    您的域账户和邮箱密码即将在 $expire_days 天后过期, $pwdlastday 之后您将无法登陆计算机和收发邮件,请您尽快更改。
    重置密码过程请遵循以下原则:
    ○密码长度最少 8 位;
    ○密码可使用最长时间 90天,过期需要更改密码;
    ○密码最短使用 1天( 1 天之内不能再次修改密码);
    ○强制密码历史 3个(不能使用之前最近使用的 3 个密码);
    ○密码符合复杂性需求(大写字母、小写字母、数字和符号四种中必须有三种、且密码口令中不得包括全部或部分用户名)
"
Send-MailMessage -from "it@contoso.com" -to "$user@contoso.com" -subject "您的账户密码即将过期" -body $Emailbody -Attachments D:\script\如何更改域用户密码.pptx -smtpserver mail.contoso.com -Encoding ([System.Text.Encoding]::UTF8)
#############################################
#查找账户的密码过期时间并发送至管理员账户
#############################################
$username=Get-ADUser $user  -Properties *
$userobject=New-object psobject
$userobject Add-Member -membertype noteproperty -Name 用户名            -value $username.displayname
$userobject Add-Member -membertype noteproperty -Name 邮箱              -Value $username.mail
$userobject Add-Member -membertype noteproperty -Name 最后一次密码设置  -Value $username.Passwordlastset
$userobject Add-Member -membertype noteproperty -Name 密码过期时间      -Value $pwdlastday
$userobject Add-Member -membertype noteproperty -Name 距离密码过期天数  -Value $expire_days
$userlist+=$userobject
}
}
$EmailbodyHTML=$userlist|
sort-object 距离密码过期天数 |
ConvertTo-Html |
Out-String
Send-Mailmessage -from  "it@contoso.com" –to “itmanager@contoso” -Bodyashtml $EmailbodyHTML -Subject "管理员通知" -smtpserver mail.contoso.com -Encoding ([System.Text.Encoding]::UTF8)

实现的结果:

用户接收到的邮件:

wKioL1TQT5Oxk2O5AAFiGUssbjU793.jpg

管理员接收到的邮件:

wKiom1TQTqvindWrAAHMIahR6Ik254.jpg

本文出自 “运维人生” 博客,请务必保留此出处http://lixiaosong.blog.51cto.com/705126/1409113


本文转自 lorysun 51CTO博客,原文链接:http://blog.51cto.com/lorysun/1611061


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js list删除指定元素_vue.js

vue.js 中M V MV代表哪一部分 <插值表达式&#xff08;v-cloak v-text v-html v-bind&#xff08;缩写是:&#xff09; v-on&#xff08;缩写是&#xff09; v-model v-for v-if v-show &#xff09;<body><div id"app"><!-- 使用 v-cloak 能够解决…

修改db2管理服务器,创建DB2管理服务器的两种情况

DB2管理服务器在创建时分为创建一个和创建多个两种情况&#xff0c;下面就为您详细介绍这两种创建DB2管理服务器的情况&#xff0c;供您参考学习。一、创建DB2管理服务器(只能创建一个)1、首先创建管理服务组用户(可不建)命令&#xff1a;sudo groupadd dasadm12、创建用户命令…

系统程序员成长计划-走近专业程序员

转载时请注明出处和作者联系方式 文章出处&#xff1a;http://www.limodev.cn/blog 作者联系方式&#xff1a;李先静 <xianjimli at hotmail dot com> 需求简述 用C语言编写一个双向链表。如果你有一定的C语言编程经验&#xff0c;这自然是小菜一碟。有的读者可能连一个…

Python 内置模块之 asyncio(异步iO)

python3.0&#xff0c;标准库里的异步网络模块&#xff1a;select(非常底层) &#xff0c;第三方异步网络库&#xff1a;Tornado&#xff0c;gevent python3.4&#xff0c;asyncio&#xff1a;支持 TCP &#xff0c;子进程 现在的asyncio&#xff0c;有了很多的模块已经在支持…

前端js文件合并三种方式

最近在思考前端js文件该如何合并&#xff0c;当然不包括不能合并文件&#xff0c;而是我们能合并的文件&#xff0c;想了想应该也只有三种方式。 三个方式如下&#xff1a; 1. 一个大文件&#xff0c;所有js合并成一个大文件&#xff0c;所有页面都引用它。 2. 各个页面大文件&…

我们的系统检测到您的计算机网络中存在异常流量_如何建立我们的网络防线?入侵检测,确保我们的网络安全...

目前我们的网络安全趋势日益严峻&#xff0c;那么如何利用入侵检测系统确保我的网络安全呢&#xff1f;入侵检测又是什么呢&#xff1f;网络安全入侵检测技术是为保证计算机系统的安全&#xff0c;而设计与配置的一种能够及时发现并报告系统中未授权或异常现象的技术&#xff0…

sql修改链接服务器名称,SQL Server 创建链接服务器的脚本,自定义链路服务器的简短名称...

USE [master]GO/****** Object: LinkedServer [SQL01] Script Date: 2020/4/9 11:51:17 ******/EXEC master.dbo.sp_addlinkedserver server N‘SQL01‘, srvproductN‘‘, providerN‘SQLNCLI‘, datasrcN‘域名或者IP‘/* For security reasons the linked server remot…

mybatis $和#源代码分析

JDBC中&#xff0c;主要使用两种语句&#xff0c;一种是支持参数化和预编译的PreparedStatement,支持原生sql,支持设置占位符&#xff0c;参数化输入的参数&#xff0c;防止sql注入攻击&#xff0c;在mybatis的mapper配置文件中&#xff0c;我们通过使用#和$告诉mybatis我们需要…

git 命令详解和常见问题解决

功能一 提交&#xff1a;1:git init # 初始化&#xff0c;表示即将对当前文件夹进行版本控制2:git status # 查看Git当前状态&#xff0c;如&#xff1a;那些文件被修改过、那些文件还未提交到版本库等。3:git add . # 添加当前目录下所有文件到版本…

辞职日记----记录31岁的程序员跳槽心态

vcleaner http://topic.csdn.net/u/20080626/23/8f6a8ecc-c072-43ee-bf2d-7ac2286b6805.html http://topic.csdn.net/u/20080704/23/858fc00d-ec14-4db7-93be-34903b7f157a.html 转载他的离职日记&#xff0c;有许多东西值得我们认真思考&#xff0c;人活着到底为了什么&a…

从Android源码的角度分析Binder机制

IPC 为了弄懂IPC的来龙去脉&#xff0c;我将从以下三个方面为大家来讲解&#xff0c;希望对大家理解IPC会有帮助 什么是IPC IPC是Inter Process Communication的缩写&#xff0c;其意思就是进程间的通信&#xff0c;也就是两个进程之间的通信过程。我们都知道在Android系统中&a…

excel vba 调用webbrowser_VBA 公式与函数

一, 在单元格中输入公式的3种方法:1) 用VBA在单元格中输入普通公式Sub formula_1() Range("d2") ("B2 * C2") End Sub运行程序后,在D2的单元格内显示的是公式 B2 * C2 ,并非程序返回值.下文(二)中会介绍另外一种直接返回值的方式想要通过程序一…

内部类可以引用它的包含类的成员吗?有没有什么限制?

最近看到一道面试题&#xff1a;内部类可以引用它的包含类的成员吗&#xff1f;有没有什么限制&#xff1f; 答案大部分都是这样子的&#xff1a; 完全可以。如果不是静态内部类&#xff0c;那没有什么限制&#xff01; 一个内部类对象可以访问创建它的外部类对象的成员包括私有…

松下NPM服务器怎么备份系统,松下(Panasonic)-NPM校正amp;CPK完整版教程,一步步带你成为SMT设备大神!...

马上注册&#xff0c;结交更多技术专家&#xff0c;享用更多功能&#xff0c;让你轻松解决各种三星贴片机问题您需要 登录 才可以下载或查看&#xff0c;没有帐号&#xff1f;立即注册 xa8f80375060fa05b8aebe69ffa21080c.gif (5.26 KB, 下载次数: 3)2019-8-12 00:02 上传f5aae…

Python 模块之科学计算 Pandas

目录 一、Pandas简介 数据结构 二、Series series 的创建 Series值的获取 Series的运算 Series缺失值检测 Series自动对齐 Series及其索引的name属性 三、DataFrame 创建 Index对象 通过索引值或索引标签获取数据 自动化对齐 四、文件操作 文件读取 数据库数据…

根据 设备名(br0/eth0/em0)称获取 当前机器的IP地址与子网掩码信息

#!/usr/bin/env python 根据 设备名(br0/eth0/em0)称获取 当前机器的IP地址与子网掩码信息import socket, struct, fcntldef get_ipaddress(ifname eth0):s socket.socket(socket.AF_INET, socket.SOCK_DGRAM)return socket.inet_ntoa(fcntl.ioctl(s.fileno(),0x8915, # SI…

我的程序生涯

本文仅为爱好程序及向往真正之程序员者所作&#xff0c;其余人等可忽略下文。 如今&#xff0c;接触CS几近八年&#xff0c;不学无术&#xff0c;所精之物鲜也&#xff0c;以至一事无成。 现回忆吾程序之生涯&#xff0c;以整理繁杂之心绪。 1. 接触计算机和编程语言 02年始大…

机器学习中qa测试_如何对机器学习做单元测试

作者&#xff1a;Chase Roberts编译&#xff1a;ronghuaiyang导读养成良好的单元测试的习惯&#xff0c;真的是受益终身的&#xff0c;特别是机器学习代码&#xff0c;有些bug真不是看看就能看出来的。在过去的一年里&#xff0c;我把大部分的工作时间都花在了深度学习研究和实…

项目宝提供的服务器,开源WebSocket服务器项目宝贝鱼CshBBrain V4.0.1 和 V2.0.2发布

开源WebSocket服务器项目宝贝鱼CshBBrain V4.0.1 和 V2.0.2发布更新的功能列表如下&#xff1a;1.解决开启广播消息开关时&#xff0c;不能同时接入2个客户端的重大缺陷。2.对广播消息做了重大优化&#xff0c;从以前一个线程发送广播消息进化到使用工作线程池中的线程并行的发…

c# 无损高质量压缩图片代码

/// 无损压缩图片 /// <param name"sFile">原图片</param> /// <param name"dFile">压缩后保存位置</param> /// <param name"dHeight">高度</param> /// <param name"dWidth"…