Powershell ErrorAction没有沉默

时间:2015-02-02 21:11:29

标签: powershell

我有一个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

我将所有有效结果都输入到文本文件中,因此脚本的其他部分工作得很好,否则我会得到预期的结果。我真的很想知道我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

您需要将错误操作传递给gci

$listing = Get-ChildItem $filePath -ErrorAction SilentlyContinue | where-object { $_.name -eq "Office15" } | Select-Object Name