首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Get-ADUser -filter解析

Get-ADUser -filter解析
EN

Stack Overflow用户
提问于 2017-08-29 10:33:46
回答 1查看 727关注 0票数 1

我正在运行一个脚本,它从SAP摘录中获取一个人的名字和姓氏,并读取AD以获得他们的UPN。对于大多数人来说,这是可行的;然而,有一群用户的名字是一个问题。例如,SAP中的"Philip“(为了保护无辜者而更名)就是AD中的”Philip“。因此:我使用了以下命令,它可以工作:

代码:

代码语言:javascript
复制
Get-ADUser -SearchBase "OU=CBC Users,DC=cbc,DC=int" -Filter {GivenName -eq "Phil" -and Surname -eq "Davies"}

然后我意识到,我可以检查前三个字符,这将通常是相同的名称.所以我做了这件事,也很管用:

代码:

代码语言:javascript
复制
Get-ADUser -SearchBase "OU=CBC Users,DC=cbc,DC=int" -Filter {GivenName -like "Phi*" -and Surname -eq "Davies"}

下一步:变量;所以我尝试这样做,它可以工作:

代码:

代码语言:javascript
复制
$fna="Phil"
Get-ADUser -SearchBase "OU=CBC Users,DC=cbc,DC=int" -Filter {GivenName -eq $fna -and Surname -eq "Davies"}

但如果我尝试这个:

代码:

代码语言:javascript
复制
$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“方法或告诉我如何解析和通配符来帮助我吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-29 10:44:47

您不应该在变量中使用通配符,因为您希望用一个名称(即字符串)来检查它。因此,您可以做的是直接用通配符包装字符串,并将最后一件事情存储在一个变量中,如下所示:

代码语言:javascript
复制
$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"}

或者您可以直接使用LDAP过滤器,例如:

代码语言:javascript
复制
Get-ADUser -SearchBase "OU=CBC Users,DC=cbc,DC=int" -LDAPFilter "(&(GivenName=$fna)(Sn=Davies))"

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45936856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档