PowerShell的新手在这里。 我正在构build一个简单的代码来帮助我通过input用户名的字母来查找用户。 我如何得到一个通配符工作瓦特/variables? 这工作:
$name=read-host -prompt "enter user's first or last initial" $userInput=get-aduser -f {givenname -like 'A*' } cmd /c echo "output: $userInput"
这不:
$name=read-host -prompt "enter user's first or last initial" $userInput=get-aduser -f {givenname -like '$name*' } cmd /c echo "output: $userInput"
代码的第一位提供了名称中带有“A”的用户列表。 任何build议,不胜感激。 谢谢
$lastname = "smith" Get-ADUser -LDAPFilter "(&(objectCategory=person)(objectClass=user)(Sn=*$lastname*))"
返回姓氏( *smith*
)与*smith*
的search模式匹配的用户列表,所以将返回Haysmith,Smithwood,McSmithers等。
当使用单引号时,转义字符和自动stringreplace(例如,在string中使用variables)将被删除。
虽然Ryan Ries答案将与-LDAPFilter
参数一起使用,但要使用-LDAPFilter
参数,您必须连接或使用转义字符。
使用转义字符(字符前的撇号):
$userInput=get-aduser -f "GivenName -like `"$name*`""
使用string连接:
$userInput=get-aduser -f ('GivenName -like "' + $name + '*"')
更好的可读性:
$name = read-host -prompt "enter user's first or last initial" $filter = 'GivenName -like "' + $name + '*"' $userInput = Get-ADUser -Filter $filter