Error handling 获取WMIObject输出和错误处理

Error handling 获取WMIObject输出和错误处理,error-handling,wmi,powershell-2.0,Error Handling,Wmi,Powershell 2.0,尝试从PowerShell扫描中获取某些软件的输出,该软件应存在于所有工作站上 获取内容-路径f:\desktop\Machines.csv| ForEach对象{Get WMIOObject-Class Win32_Product-ComputerName$}| 其中Object-FilterScript{$\ux.Name-like*Adobe Reader*}| 选择对象-属性名称、名称、版本| 导出Csv-路径f:\desktop\Results.Csv-notype信息 问题是,对于那

尝试从PowerShell扫描中获取某些软件的输出,该软件应存在于所有工作站上

获取内容-路径f:\desktop\Machines.csv| ForEach对象{Get WMIOObject-Class Win32_Product-ComputerName$}| 其中Object-FilterScript{$\ux.Name-like*Adobe Reader*}| 选择对象-属性名称、名称、版本| 导出Csv-路径f:\desktop\Results.Csv-notype信息 问题是,对于那些没有安装软件的机器,我在输出文件中没有得到任何信息。我经常在ISE控制台中收到RPC服务器不可用的错误,但这些信息不会写入输出文件


我想我实际上是在寻找有或没有软件的输出报告机器,以及试图到达机器进行检查时出现的任何错误消息。

将过滤器和选择移动到ForEach对象中,如果结果为空,则创建自定义对象

获取内容“F:\desktop\Machines.csv”| ForEach对象{ $o=获取WmiObject-类Win32\u产品-计算机名$\u| Where对象{$\u.Name-like*Adobe Reader*}| 选择对象名称、名称、版本 如果$o{ $o }否则{ 新对象-类型PSObject-属性@{ “PSComputerName”=$_ “名称”=“Adobe Reader” “版本”=$null } } }|导出Csv'F:\desktop\Results.Csv'-NoType 但是,请注意,Win32_产品是。建议改用注册表查询