Powershell管理系列(十六)查询最近一个月未登录的AD账号和Exchange账号

简介:

今天听到群里有朋友问,想查询最近1个月未登录的AD账号,我们可以通过如下的Powershell来实现:

需求1、查询OU中所有账号的创建时间\SID\上次修改密码时间\最后一次登录时间

PowerShell查询指定OU中所有账号的创建时间\SID\上次修改密码时间\最后一次登录时间,可以通过如下命令完成:PS C:\Users\administrator.RIGHTDO> Get-ADuser -searchbase ' DC=rightdo,DC=net ' -filter * -Properties * | Select-Object Name,SID, Created,PasswordLastSet,@{n="lastLogonDate";e={[datetime]::FromFileTime($_.lastLogonTimestamp)}}

wKiom1TM2RiTWpeGAAS6ISjyT2s241.jpg

这里有人就有疑问了,有人就会问了,不是有LastLogon这个属性吗,为什么还要引入LastLogonTimeStamp这个属性呢?

具体原因,大家去看这篇文章,看完就知道原因了,标题:细说LastLogonTimeStamp

http://blogs.technet.com/b/apgceps/archive/2011/10/25/details-about-lastlogontimestamp.aspx

需求2、查询OU中所有一个月以上未登录的AD帐号,且排除从未登录的新账号

PS C:\Users\administrator.RIGHTDO>

$a=Get-ADuser -searchbase ' DC=rightdo,DC=net ' -filter * -Properties * | Select-Object Name,SID, Created,PasswordLastSet,@{n="lastLogonDate";e={[datetime]::FromFileTime($_.lastLogonTimestamp)}}

$a| where {$_.lastlogondate -lt (get-date).AddDays(-30) -and $_.Created -lt (get-date).AddDays(-30)}


wKioL1TM1n6yWFCVAARsvHQm4M4755.jpg

需求3、查询OU中所有三个月内未登录的Exchange帐号,

PS C:\Users\administrator.RIGHTDO> Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
PS C:\Users\administrator.RIGHTDO> get-mailbox -ResultSize unlimited | Get-MailboxStatistics | where {$_.LastLogonTime -lt (get-date).AddDays(-90)} | ft displayName,lastlogontime,lastloggedonuseraccount,servername

wKioL1TM2EzAkvMLAAI6D1JxRpQ376.jpg


本文转自 zhou_ping 51CTO博客,原文链接:http://blog.51cto.com/yuntcloud/1610352,如需转载请自行联系原作者


相关文章
window powershell 获取所有用户的最后登录时间
ComputerName) | Where-Object {adsi = [ADSI]"WinNT://adsi.Children | where {today=Get-Date -Format 'yyyyMMdd'ipaddr+""+ -replac...
1047 0