Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

-ErrorAction with Get-ADComputer not hiding errors

Tags:

powershell

I'm just beginning to dip into PowerShell with AD so I apologize if the question seems obvious.

I am trying to check if which of the devices provided in a list are in AD. So far I've used the code from: Powershell - verify object exists in AD

It works just fine, but the "-ErrorAction SilentlyContinue" does not actually suppress the error messages. I get the below:


Get-ADComputer : Cannot find an object with identity: 'test' under:
'DC=test,DC=dom'.
At C:\Users\testaccount\Desktop\test.ps1:171
char:19
+ if (@(Get-ADComputer $target -ErrorAction SilentlyContinue).Count)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (test:ADComputer) [Get-ADComputer], ADIdentityNotFoundException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Microsoft.ActiveDirectory.Management.Commands.GetADComputer


The code I am using is as follows:

foreach ($target in $devicelist)
{
    if (@(Get-ADComputer $target -ErrorAction SilentlyContinue).Count)
    {
        $existingdevices += $target
    }
    else
    {
        #display error notification
    }
}

What I am looking for is suppressing the error message to no longer show in console - for the script to actually silently continue on error.

Any and all help will be appreciated!

like image 361
UncleJosephS Avatar asked Aug 21 '26 16:08

UncleJosephS


1 Answers

So lets talk about whats happening.

There are 2 types of errors Terminating and Non-Terminating.

Terminating stops the execution of a command and throws an Exception. A non-terminating returns a write-out error message.

-ErrorAction takes care of Non-Terminating errors

Try{}Catch{} takes care of Terminating errors.

In your case

foreach ($target in $devicelist)
{
    try{
        if (@(Get-ADComputer $target -ErrorAction SilentlyContinue).Count)
        {
            $existingdevices += $target
        }
        else
        {
            #display non-terminating error notification
        }
    }catch{
        #display Terminating error notification
    }
}
like image 124
ArcSet Avatar answered Aug 24 '26 07:08

ArcSet



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!