我正在运行一个脚本,它从SAP摘录中提取一个人的名字和姓氏,并读取广告以获取他们的UPN。对大多数人来说,这是可行的;然而,有很多用户的名字是个问题。例如,SAP中的“Philip Davies”(更改名称以保护无辜者)是AD中的“Philip Davies”。因此:我使用了以下命令,它可以工作:
代码:
Get-ADUser -SearchBase "OU=CBC Users,DC=cbc,DC=int" -Filter {GivenName -eq "Phil" -and Surname -eq "Davies"}
然后我意识到我可以检查合同名称中通常相同的前三个字符。。。所以我做了这件事,这也很有效:
Get-ADUser -SearchBase "OU=CBC Users,DC=cbc,DC=int" -Filter {GivenName -like "Phi*" -and Surname -eq "Davies"}
下一步:变量;所以我试了一下,效果很好:
代码:
$fna="Phil"
Get-ADUser -SearchBase "OU=CBC Users,DC=cbc,DC=int" -Filter {GivenName -eq $fna -and Surname -eq "Davies"}
$fna="Philip"
$fna=$fna.Substring(0,3)
Get-ADUser -SearchBase "OU=CBC Users,DC=cbc,DC=int" -Filter {GivenName -like $fna* -and Surname -eq "Davies"}
我没有结果。不管我用括号、双引号、单引号还是其他什么。当我试图解析变量并使用通配符时,它要么生成错误消息,要么没有结果。
“-ldapfilter”
谢谢