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