per*_*oob 6 powershell active-directory pattern-matching user-accounts
我正在尝试运行一个PowerShell脚本来查询在7天内到期的帐户,我目前有
$ a =(获取日期).AddDays(7); Search-ADAccount -AccountExpiring -TimeSpan"7"| Select-Object SamAccountName,AccountExpirationDate | Sort-Object AccountExpirationDate | Export-Csv 7_days.csv
但是,当我进行以下更改时,它似乎有些麻烦,我最终得到一个空的CSV文件.最终,我希望帐户在7天内到期,而不是更多,而不是更少.
$ a =(获取日期).AddDays(7); Search-ADAccount -AccountExpiring -TimeSpan"7"| Select-Object SamAccountName,AccountExpirationDate | Sort-Object AccountExpirationDate | Where-Object {$ _.AccountExpirationDate -like $ a} | Export-Csv 7_days.csv
有人能让我知道我做错了什么吗?我试过移动"Where-Object {$ _.AccountExpirationDate -like $ a}"一块,或者"-match"而不是"-like",但是这些并没有给我带来太多成功.我哪里错了?
更新:如果传递字符串值,您可以获取帐户,传递整数将时间跨度初始化为7个滴答!
Search-ADAccount -AccountExpiring -TimeSpan "7"
Run Code Online (Sandbox Code Playgroud)
其他有效选项:
Search-ADAccount -AccountExpiring -TimeSpan (New-TimeSpan -Days 7)
Search-ADAccount -AccountExpiring -TimeSpan ([TimeSpan]::FromDays(7))
Run Code Online (Sandbox Code Playgroud)
可能是一个错误,它对我也不起作用.这是一个解决方法:
$NeverExpires = 9223372036854775807
$ExpringIn = (Get-Date).AddDays(7)
Get-ADUser -Filter * -Properties accountExpires |
Where-Object {$_.accountExpires -ne $NeverExpires -and [datetime]::FromFileTime([int64]::Parse($_.accountExpires)) -lt $ExpringIn }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38807 次 |
| 最近记录: |