我正在尝试使用Search-ADAccount
cmdlet在AD中进行搜索,以查找已启用但最近90天内未登录的帐户。以下命令可在过去90天内未登录的域中找到足够的已启用AD帐户。但是,我试图过滤掉“ DistinguishedName”字段中包含“服务帐户”文本的所有条目。
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 |
Select-Object -Property Name, Enabled, LastLogonDate, DistinguishedName |
Where-Object {
$_.Enabled -like 'True' -and
$_.DistinguishName -notmatch "Service Account"
}
上面的命令似乎可以很好地找到启用的帐户和上次登录。但是,PowerShell忽略了我在-notmatch "..."
中输入的任何文本?
还尝试了-notLike
,我也得到了相同的行为。
答案 0 :(得分:0)
感谢boxdog注意到DisinguishedName
中Where-Object
的拼写错误,缺少了“ ed”。这样可以解决此问题,并结合您对丢失的*Service Account*
通配符的其他评论。
更新的PowerShell命令:
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 |
Where-Object {
$_.Enabled -like 'True' -and
$_.DistinguishedName -NotLike "*Service Account*"
} |
Select-Object -Property Name,Enabled,LastLogonDate,DistinguishedName