使用 msDS-cloudExtensionAttribute20 获取 ADUser 过滤器参数

Get-ADUser Filter Parameter with msDS-cloudExtensionAttribute20

我想使用 Get-ADUser 过滤一些条件以获取用户,因为我在 msDS-cloudExtensionAttribute20 (例如电子邮件地址) 中输入了一些与 UserPrincipalName 相同的值,当我 运行 这段代码没有显示任何错误但无法运行,如何解决这个问题,请帮助

谢谢

$msDS = "msDS-cloudExtensionAttribute20"  
get-aduser -filter {(Enabled -eq $true) -and (UserPrincipalName -eq '$msDS')} -SearchBase 'OU="",OU="",OU="" ,DC=""' -properties Name, PasswordNeverExpires, PasswordExpired, PasswordLastSet, EmailAddress,"msDS-cloudExtensionAttribute20",UserPrincipalName | where { $_.passwordexpired -eq $false }

LDAP 的查询过滤器语法不支持按您希望的方式在多个属性之间进行任意比较(尽管那会很酷!)- 您需要查询所有可能的用户并过滤他们客户端-PowerShell 方面:

Get-ADUser -Filter {Enabled -eq $true} -SearchBase 'OU="",OU="",OU="" ,DC=""' -properties Name, PasswordNeverExpires, PasswordExpired, PasswordLastSet, EmailAddress,"msDS-cloudExtensionAttribute20",UserPrincipalName | Where-Object {
    $_.passwordexpired -eq $false -and $_.'msDS-cloudExtensionAttribute20' -eq $_.UserPrincipalName
}