Search-ADAccount用于密码过期的用户帐户

时间:2014-11-10 20:29:37

标签: powershell active-directory passwords

我的任务是找到服务帐户(在我们的商店中,用户名为#s; scc - '用户名),密码已过期。通常,服务帐户不应该有过期的密码,所以我试图找到错误创建的服务帐户,以便修复它们。

我一直在使用Search-ADAccount,而且我有参数问题。如果我用这个:

Search-ADAccount -PasswordNeverExpires | Where {$_.SamAccountName -like 'SVC-*'}

然后我得到很长的结果列表,其中没有一个有过期的密码。但是,如果我包含-PasswordNeverExpires参数,那么我会过滤掉过期密码的任何帐户,不是吗?

我也试过这个:

Search-ADAccount | Where {$_.SamAccountName -like 'SVC-*' -and $_.PasswordNeverExpires -like 'FALSE' }

但我只得到一个错误:"无法使用指定的命名参数解析参数集。"听起来像Search-ADAccount需要某些参数,但我不会在帮助文件中看到需要哪些参数。

反直觉(对我而言)Search-ADAccount有一个参数,可以搜索一个布尔条件(TRUE)但不能搜索另一个。

Get-ADUser似乎没有任何密码配置信息。

3 个答案:

答案 0 :(得分:1)

是的,特隆德。而已。我首先看了Get-ADUser,但是帮助文件没有提到任何有关PasswordNeverExpires参数的信息,并且将一个结果汇总到Get-Member中并没有显示任何相关的搜索属性。

总之,这是一个有效的单线程:     Get-ADUser -filter {PasswordNeverExpires -eq $ False} |其中{$ _.SamAccountName -like'SVC - *'}

再次感谢。

答案 1 :(得分:0)

你试过$ _。PasswordNeverExpires -eq $ false?

答案 2 :(得分:0)

我只想使用get-aduser(需要清理过滤器参数,我只是在脑子里把它撞在一起):

$adusers = Get-ADUser -Filter * -Properties * | where {$_.PasswordNeverExpires -eq $false}