我有一个PS脚本,可以在我们网络上的计算机上查找Office15文件夹。在大多数情况下,脚本按预期工作。事实上,这只是我挑剔。我设置-ErrorAction SilentlyContinue
,但找不到Office15文件夹时的错误消息仍显示在屏幕上。我想知道我做错了什么,或者只是不明白我的剧本在做什么。
$filePath = "\\"+$computer+"\c$\Program Files (x86)\Microsoft Office\"
$listing = Get-ChildItem $filePath | where-object { $_.name -eq "Office15" } | Select-Object Name -ErrorAction SilentlyContinue
使用此脚本,我收到如下错误:
Get-ChildItem : Cannot find path '\\COMPNAME\c$\Program Files (x86)\Microsoft Office\' because it does not exist.
At C:\Users\someGuy\bootTime\checkOffice.ps1:16 char:20
+ $listing = Get-ChildItem $filePath | where-object { $_.name -eq "Office1 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (\\COMPNAME\c$\Pr...crosoft Office\:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
我将所有有效结果都输入到文本文件中,因此脚本的其他部分工作得很好,否则我会得到预期的结果。我真的很想知道我在这里做错了什么。
答案 0 :(得分:1)
您需要将错误操作传递给gci
:
$listing = Get-ChildItem $filePath -ErrorAction SilentlyContinue | where-object { $_.name -eq "Office15" } | Select-Object Name