我有以下PowerShell脚本

$server = Get-ADComputer -filter {name -like $computerhost}
write-host $server.name

它为我提供了名称中包含$computerhost的ADComputer。

例:
$computerhost = linuxserver

匹配的计算机名称输出:“linuxserver01”

但是如果计算机名称适合$computerhost,我实际上想要ADComputer。因此,如果$ computerhost是“asdf”,我想获得名称为“a”或“as”或“asd”或“asdf”的计算机,而不是“asda”

例:
$computerhost = linuxserver (new)

匹配的计算机名称输出:“linuxserver”

我不知道如何以这种方式使用通配符。

最佳答案

感谢您通过评论进行澄清。我认为这可能是您要寻找的:

Get-ADComputer -filter * | where-object { $computerhost -like "*$($_.name)*" }
例如(我在这里使用$ computers代替get-adcomputer):
$computers = 'a','as','asd','asdf','asda'
$computerhost = 'asdf'

$computers | where-object { $computerhost -like "*$_*" }
返回值:

07-26 02:26