如何在Powershell脚本中忽略错误(ErrorAction:SilentlyContinue不抑制错误)

时间:2016-06-03 03:45:25

标签: powershell

我有一个Powershell脚本,列出了Active Directory中指定OU中所有计算机的本地管理员组中的所有用户/组。

该脚本在本地完美运行(如果我只针对本地计算机运行)但是当我针对远程计算机运行它时,它在技术上有效,但它会抛出一致的错误,我不知道如何过滤掉。

这是脚本(注意:必须从ActiveDirectory PS控制台运行才能使用Get-ADComputer):

Get-ADComputer -SearchBase 'OU=ou01,dc=domain,dc=local' -Filter 'ObjectClass -eq "Computer"' `
    | ForEach-Object { 
        Get-WmiObject win32_groupuser -cn $_.name -ErrorAction SilentlyContinue `
            | Where-Object { $_.groupcomponent -match 'administrators' } `
            | ForEach-Object -ErrorAction SilentlyContinue {[wmi]$_.partcomponent } `
            | Select-Object __SERVER,Caption 
     } | Format-Table -Property * -AutoSize

以下是结果(正确的结果在第一行,错误在下面):

__SERVER          Caption
--------          -------
workstation_name  workstation_name\Administrator
Cannot convert value "\\workstation_name\root\cimv2:Win32_Group.Domain="DOMAIN",Name="Domain Admins"" to type "System.Management.ManagementObject". Error: "Not found "
At line:1 char:306
+ Get-ADComputer -SearchBase 'OU=ou01,dc=domain,dc=local' -Filter 'ObjectClass -eq "Computer"' | ForEach-Object { Get-WmiObject win32_groupuser -cn $_.name -ErrorAction SilentlyContinue | Where-Object { $_.groupcomponent -match 'administrators' } | ForEach-Object -ErrorAction SilentlyContinue {[wmi]$_. <<<< partcomponent } | Select-Object __SERVER,Caption } | Format-Table -Property * -AutoSize
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException

我尝试使用-ErrorAction SilentlyContinue失败了,有没有其他方法可以抑制此消息?不确定我错过了什么。

0 个答案:

没有答案