$result = Get-ADUser -Filter $filter
如果我有2个或更多结果,我得到$ x作为数组,但如果我只有一个结果,则得到$ x作为对象。如何使它更正确,总是收到数组 - 空,一个元素或一些元素?
答案 0 :(得分:35)
尝试$ x = @(get-aduser)
@()语法强制结果为数组
答案 1 :(得分:5)
顺便说一句,由于其评论中所述的原因,此问题中的其他解决方案并不是真正的最佳解决方案。 更好的方法是简单地在函数前加上逗号,例如
$result = ,(Get-ADUser -Filter $filter)
这将把一个空结果放入一个空数组,将1个元素结果放入1个元素数组,将2+个元素结果放入相等的元素数组。
答案 2 :(得分:4)
此外,您可以使用$x=[array]get-aduser
答案 3 :(得分:-1)
我在循环中使用索引值时遇到了同样的问题。我通过改变
来修复它$PatchGroupData.SCCM_Collection[$i]
到
@($PatchGroupData.SCCM_Collection)[$i]