我一直在使用以下代码行:
$204computernames = Get-ADComputer -searchbase $sb -filter * | ?{$_.name -like "ptfg*-061*"} | select name
$onlineComputers = $204computernames |Where-Object { Test-Connection $_.name -Count 1 -Quiet }
抓住我网络上的所有计算机并将它们放入一个变量中,这样我就可以将我的所有文档,更新等推送给它们,这样我就不必单独去每台计算机来获取我想要的文件。当我将变量放入这样的代码行中时
Test-Connection $onlineComputers
我收到这样的错误:
Test-Connection : Testing connection to computer '@{name=PTFGW-0613618TN}' failed: A non-recoverable error occurred during a database lookup
At line:1 char:1
+ Test-Connection $onlineComputers
我假设在对不同代码进行广泛测试之后,我的变量存储其值的方式存在问题。有谁知道我该如何解决这个问题?
正如@boxdog在评论中已经指出的那样,| select name
您将获得具有单个属性的对象Name
。因此,您不会获得计算机名称的列表,而是获得在Name
属性中具有计算机名称的对象的列表。您可以使用它并访问每个计算机名称,例如.Name
。
但是要解决您的问题,您可以用代替| select name
(代表| Select-Object -Property Name
)| Select-Object -ExpandProperty Name
。这样,您仅过滤出计算机名称,并将结果扩展到该属性。之后,您实际上只有一个计算机名列表(字符串对象数组)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句