PowerShell script: AD query based on computer-name pattern not returning results
本问题已经有最佳答案,请猛点这里访问。
我正在尝试创建一个PowerShell脚本,该脚本从部分机器名称的数组中获取列表并将其返回给我
到目前为止,我已经导入了ActiveDirectory模块并设置了阵列。然后,我对数组运行一个foreach,但是它不返回任何结果,而是转到新行。
我尝试将Get-ADComputer行分配给变量并调用该变量。我也尝试使用Return并没有达到我的结果。
结果只能在屏幕上的列表中打印出来,就可以了。我只需要它来返回结果,然后就可以从中进行构建。
这是我到目前为止所做的:
1 2 3 4 5 | $getPC = @("7477","7473","7474") foreach ($i in $getPC) { Get-ADComputer -filter {name -like"*$i*"} | select name } |
当我单独运行Get-ADComputer行并将其放置在位置参数中时,我没有任何问题。有什么想法吗?
即使这种做法很普遍,也不要将脚本块(
将您的
因此,而不是:
1 | -Filter { Name -like"*$i*" } # WRONG - do not use { ... } |
用途:
1 | -Filter"Name -like '*$_*'" # OK - use of a string |
有关说明,请参阅我的答案。
顺便说一句,您可以使用带有
1 2 3 | "7477","7473","7474" | ForEach-Object { Get-ADComputer -Filter"Name -like '*$_*'"} | Select-Object Name |
关于原始命令:如Seth所建议,最好使用比