Powershell太聪明了

Neo*_*yte 7 powershell

抱歉可能是一个新的问题.

我正在编写一些Powershell脚本,它们针对AD运行各种查询.它们通常会返回一堆易于处理的结果,即:

$results = myQuery
write-host "Returned " + $results.Count + " results."
foreach ($result in $results) { doSomething }
Run Code Online (Sandbox Code Playgroud)

别担心.但是,如果只有1个结果,Powershell会自动将该结果转换为单个对象,而不是包含1个对象的数组.所以上面的代码会在Count和foreach中破坏.我确信0结果会出现同样的问题.

有人可以提出一个优雅的方法来处理这个问题 也许某种方式来投射结果,所以它们总是一个数组?

Rob*_*vey 11

将第一行代码更改为

$results = @(myQuery)
Run Code Online (Sandbox Code Playgroud)

这将始终返回一个数组.有关其他详细信息,请参阅此博客条