使用过滤器从活动目录中获取所有用户
Get all users from active directory using filter
我正在尝试使用以下脚本从 AD 获取所有活跃用户,但是,尽管我知道有值为 512 的数据,但我没有得到任何结果。
你知道我这里有什么问题吗?
Get-ADUser -filter {$userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8
你可以试试 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 是 "normal account",你想要什么
66048 是 "normal account" + "password dont expire",您可能还需要
514 是 "normal account" + "account disabled" ,你可能不想要
所有值都匹配
-band 512
你需要弄清楚什么是活跃用户。
正如评论中指出的,$
不属于。这告诉 PowerShell 您想要使用名为 $userAccountControl
的变量中的值并将其与 512
进行比较。考虑到您可能从未设置名为 $userAccountControl
的变量,这意味着它没有与 512
进行比较,并且发现并非每个帐户都如此。
删除 $
,它将比较名为 userAccountControl
的 属性 与 512
。
Get-ADUser -filter {userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8
我正在尝试使用以下脚本从 AD 获取所有活跃用户,但是,尽管我知道有值为 512 的数据,但我没有得到任何结果。
你知道我这里有什么问题吗?
Get-ADUser -filter {$userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8
你可以试试 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 是 "normal account",你想要什么
66048 是 "normal account" + "password dont expire",您可能还需要
514 是 "normal account" + "account disabled" ,你可能不想要
所有值都匹配
-band 512
你需要弄清楚什么是活跃用户。
正如评论中指出的,$
不属于。这告诉 PowerShell 您想要使用名为 $userAccountControl
的变量中的值并将其与 512
进行比较。考虑到您可能从未设置名为 $userAccountControl
的变量,这意味着它没有与 512
进行比较,并且发现并非每个帐户都如此。
删除 $
,它将比较名为 userAccountControl
的 属性 与 512
。
Get-ADUser -filter {userAccountControl -eq "512"} -properties Name,userAccountControl -Server myserver.local | Export-CSV "E:\Folder\ADusers.csv" -NoTypeInformation -Encoding UTF8