计算机域用户密码过期,PowerShell 检测域用户密码过期时间

环境 AD 域服务器 Windows 2012 R2,Exchange

首先定制脚本,本脚本是参考网上一些资料然后进行改良的,3000用户的域执行约1分钟。

参考文章 http://lixiaosong.blog.51cto.com/705126/1409113/

这篇文章中的脚本如果直接放域里执行肯定会有问题,还有就是它的效率很低。

因为它在循环语句中多次执行 Get-ADUser,每执行一次必消耗额定时间。

如果企业中有3000用户,运行一次要执行12000次Get-ADUser。

我这边测试,在不执行发送邮件命令下,等待执行约半个多小时,并且还有大量报错

错误大致分为部分用户 pwdlastset 为空等两类错误

改版:

排除没必要通知的用户

直接读取用户的密码过期时间

Get-ADUser 全脚本仅执行一次并筛选好

循环中仅作判断及发送邮件

Import-Module Activedirectory

#指定域中指定OU下的用户

#排除已禁用、密码永不过期、显示名为空、无邮箱、帐户不能修改密码的帐户

#排除已经过期的用户(因为已经不能登录了,发邮件通知毫无意义)

$allUsers = Get-ADUser -SearchBase "OU=AllUsers,DC=zzy,DC=my" -Filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties DisplayName,PasswordExpired,mail,CannotChangePassword,"msDS-UserPasswordExpi

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值