我无法将通配符(*
字符)附加到变量的末尾,该变量在-Filter
和-LDAPFilter
中包含Get-ADcomputer
的字符串PowerShell中的1}}。
我尝试了一些我在下面强调的解决方案,但我无法开始工作。 $compName
将是我尝试添加通配符的变量。
$compArray += Get-ADComputer -Filter 'Name -eq "$compName' + '*"' -SearchBase "OU=Office,DC=workplace,DC=org" -ResultSetSize 5000 | Select -Exp Name;
*
,因为我看到这对于外卡搜索来说似乎很常见,但唉似乎没有提供解决方案 $compArray += Get-ADComputer -Filter 'Name -eq "*$compName*"' -SearchBase "OU=Office,DC=workplace,DC=org" -ResultSetSize 5000 | Select -Exp Name;
-LDAPFilter
。我在LDAP中尝试的第一件事是另一个连接。 $compArray += Get-ADComputer -LDAPFilter '(name=$compName' + '*)' -SearchBase "OU=Office,DC=workplace,DC=org" -ResultSetSize 5000 | Select -Exp Name;
*
放在整个变量周围,但这似乎也没有用。 $compArray += Get-ADComputer -LDAPFilter '(name=*$compName*)' -SearchBase "OU=Office,DC=workplace,DC=org" -ResultSetSize 5000 | Select -Exp Name;
$compName
与其余字符串分开,因此我们将在此处使用第一个作为示例。 $compArray += Get-ADComputer -Filter 'Name -eq "' + $compName + '*"' -SearchBase "OU=Office,DC=workplace,DC=org" -ResultSetSize 5000 | Select -Exp Name;
$compArray += Get-ADComputer -Filter *| where {$_.name -match "$compName[0-9][0-9][0-9][0-9]"} -SearchBase "OU=Office,DC=workplace,DC=org" -ResultSetSize 5000 | Select -Exp Name;
上述方法需要注意的几点,我不清楚$_
来自哪里,这可能是导致某些问题的原因。另一个是,因为这种方法使用某种形式的正则表达式,我认为我可以搜索我尝试使用通配符的内容,这是一个4位数的系列,但似乎没有帮助。
where-object
,但也失败了。 $compArray += Get-ADComputer where-object 'Name -like "*$compName*"' -SearchBase "OU=Office,DC=workplace,DC=org" -ResultSetSize 5000 | Select -Exp Name;
正如我上面所提到的,我不确定为什么我的任何尝试都没有起作用,因此我在这里提出这个问题。 使用变量和通配符尝试Get-ADComputer
时,我做错了什么?我只需要其中一个就可以工作,所以没有人需要弄清楚所有这些问题但是如果你想要自由。
答案 0 :(得分:2)
使用-eq
运算符,而不是与-like
和通配符进行比较。 -eq
查找完全匹配,但不处理通配符; -like
确实:
Get-ADComputer -Filter "Name -like '*$ComputerName*'" -SearchBase ...