代码之家  ›  专栏  ›  技术社区  ›  Turpan

使用筛选器从Active Directory获取所有用户

  •  0
  • Turpan  · 技术社区  · 6 年前

    我尝试使用下面的脚本从广告中获取所有活动用户,但是,虽然我知道有512值的数据,但我没有得到任何结果。

    你知道我这里出了什么问题吗?

      Get-ADUser -filter {$userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Gabriel Luci    6 年前

    正如评论中指出的那样, $ 不属于。它告诉PowerShell要在名为 $userAccountControl 把它和 512 。考虑到您可能从未设置一个名为 $userAccountControl(用户帐户控制) 这意味着它什么都比不上 五百一十二 并不是每个账户都是如此。

    删除 $ 它将比较调用的属性 userAccountControl 五百一十二 .

    Get-ADUser -filter {userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8
    
        2
  •  1
  •   dev.greg    6 年前

    您可以尝试ldapfilter语法

    Get-ADUser -property userAccountControl -LDAPfilter "(userAccountControl=512)"
    

    但是,这可能不是一个好方法:UserAccountControl是一个二进制字段,每个位代表一个二进制值(请参见 https://support.microsoft.com/en-us/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro ) 例如:

    512是“普通账户”,如果你想要的话

    66048是“普通帐户”+“密码不过期”,您可能还需要

    514是“普通账户”+“账户已禁用”,您可能不想这样做。

    所有值都匹配

    -band 512
    

    你需要澄清什么是活跃用户。

    推荐文章