我想知道是否可以将两个对象的属性与LDAPfilter进行比较?
类似的东西(这不起作用 - 每次都不返回):-LDAPfilter {sAMAccountName=userPrincipalName}
我试图找到这个Microsoft's documentation about the LDAPfilter的线索,但我一无所获。
关于我的目标的一些解释:
我希望每个用户的用户登录名都不同于用户登录名(Pre Windows 2000)。
我正在使用命令"Get-ADUser"
我要比较的两个属性是:"用户登录名" (userPrincipalName)和"用户登录名(Pre Windows 2000)" (sAMAccountName赋)
我不知道LDAP过滤器是否可行,如果没有,是否还有其他方法可以做到这一点?
答案 0 :(得分:1)
不,使用LDAP过滤器是不可能的。您只能将属性与值进行比较,而不能将两个属性相互比较。对于后者,你需要这样的东西:
Get-ADUser -Filter * -Properties * |
? { $_.SamAccountName -eq $_.UserPrincipalName }
请注意,这两个属性实际上保证不同,因为UPN通常包含域的FQDN,而sAMAccountName则不包含。您的比较实际上看起来有点像这样:
'user' -eq 'user@domain.example.com'
所以你可能想做这样的事情:
Get-ADUser -Filter * -Properties * |
? { "$($_.SamAccountName)@$env:USERDNSDOMAIN" -eq $_.UserPrincipalName }