【问题标题】:Filtering Search-ADAccount过滤搜索-ADAAccount
【发布时间】:2014-12-31 07:47:00
【问题描述】:

我想知道是否有办法过滤这个:

搜索-ADAccount -AccountInactive -DateTime ((get-date).adddays(-90)) -仅限用户

通过添加管道:

| where-object {($_.samAccountName -notlike "*_ua1") -and ($ _.memberOf -like "*UserAdminL1 *")}

它似乎冻结了,什么也不做。

也许有正确的方法来做到这一点?

【问题讨论】:

    标签: powershell active-directory cmdlets


    【解决方案1】:

    Search-ADAccount 不返回组成员身份。如果您想对其进行过滤,您可以先通过管道输入Get-AdUser 以获取memberOf 属性。您还缺少过滤器的Where-Object 部分,$ _.memberOf 应该是$_.memberOf。编译错误会试图为您更正,因此您的问题可能只是复制粘贴问题。

    Search-ADAccount -AccountInactive -DateTime ((get-date).adddays(-90)) -Usersonly | 
        Get-Aduser -Properties memberof | 
        Where-Object {($_.samAccountName -notlike "*_ua1") -and ($_.memberOf -like "*UserAdminL1 *")}
    

    【讨论】:

    • 嗯,我会试试这个。你忘了添加 get-aduser 部分。关于空格,它只是输入错误:)。会努力改正的。
    • 我认为它有效 :) 不确定最终结果,但现在它带有正确的用户 :)
    • 输出中的用户数量仍然很慢,而且数量非常少.. 出了点问题,有什么建议吗?哦,在 samaccout 部分它应该在哪里 - 不喜欢。 :)
    • @Dambre 逻辑是正确的,当我将搜索更改为我自己的组织中的某些内容时,它确实为我返回了用户。您需要检查每个管道的输出并手动检查输出以查看它是否是您要查找的内容。我注意到您更改了-like,这很好,您正在调试。 "*UserAdminL1 *" 后面应该有空格吗?
    • 不,我不能没有它,因为然后 UseAdminL1 变成斜体,因为 '*' 也有 '_' :))
    猜你喜欢
    • 2020-08-16
    • 2013-03-13
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多