用powshell输出AD域中用户密码到期时间小于7的用户名和到期剩余天数为txt文本格式
时间: 2024-02-01 17:15:38 浏览: 64
以下是 PowerShell 脚本代码,可以实现输出 AD 域中用户密码到期时间小于7的用户名和到期剩余天数,并将结果保存为 txt 文本格式:
```
$expireDate = (Get-Date).AddDays(7)
Get-ADUser -Filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" | Where-Object { $_.msDS-UserPasswordExpiryTimeComputed -lt $expireDate } | Select-Object DisplayName, @{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}, @{Name="DaysLeft";Expression={($_."msDS-UserPasswordExpiryTimeComputed" - [datetime]::Now.Ticks) / 864000000000}} | Sort-Object ExpiryDate | Format-Table -AutoSize > C:\Temp\passwordexpire.txt
```
解释:
- `$expireDate` 变量定义了密码到期时间的截止日期,这里设置为当前日期加 7 天。
- `Get-ADUser` 命令获取 AD 域中所有启用的用户,并且密码不永久有效。
- `Where-Object` 过滤器筛选出密码到期时间小于 `$expireDate` 的用户。
- `Select-Object` 命令选择输出的属性,包括用户名、到期时间和剩余天数。
- `Sort-Object` 命令按照到期时间升序排序。
- `Format-Table` 命令以表格形式输出结果,并且自适应列宽。
- `> C:\Temp\passwordexpire.txt` 将结果保存到 `C:\Temp\passwordexpire.txt` 文件中。
请注意,此脚本需要在 AD 域环境下运行,并且需要具有适当的权限才能访问 AD 域。
阅读全文