2020 | Scott W. Head  |  Sr. Systems Admin | Certified Microsoft Windows Server Administrator

PowerShell Error Trapping

Error trapping in forms isn't much different than other error trapping in PowerShell.

I placed this here due to the fact that when using forms you are usually looking for

user input which can cause issues in a script.

0) One of the first and foremost things to use when writting scripts is to use the Try / Catch.

 


            Try{
                                    
                Get-aduser ScottHead -Properties * | Select * -ErrorAction Stop
                                            
            }Catch{                                   
                write-host $_.Exception.Message
            }           
                    
        



1) Cleaning data, I run multiple forms and one of the best practice for any type of programming is clearing your variables.

I do this by a simple double quote statement as shown below or use PowerShell command.

   $MyVaribale="Scotty"
        
        
        #------ Run at beginning fo Script-----
        $MyVaribale=""
        
        #--------- or try Clear-Variable ----------
        Clear-Variable MyVaribale

 

 

 

 


2) Verify that a field was not left blank using a function that I pass all form input to.
I also use $Null instead of "" for checking for blank / null data returns. 

 

  #----------Function used to check data fields so they are not blank and do not contain Apostrophies------------------
    Function DataChecker {
        Param ([string]$MyString)
    
          If($MyString -eq "")
        {
             Write-Host "-------------------Input Stop Error - No Work Has Been Done - : Field is Blank------------" -foregroundcolor "magenta"
             Break
        }
        ElseIf($MyString.Contains("'") -eq $true)
        {
             Write-Host "-------------------Input Stop Error - No Work Has Been Done - : Illegal Char Apostrophe ---------------" -foregroundcolor "magenta"
             Break
        }
        Else
        {       
           
             write-host "Variable Passed Checks:" $MyString
        } 
    
    }
    
    
        #-------- The call to the function for field FirstName -------------
        DataChecker $FirstNameInfo 
        

 

 

 



3) I also use the trim feature when gathering input because AD will hold a white

space and that makes serious issues when passwords or SAM Account Names are entered. 

 


    $FirstNameInfo=" Scott "
    
    #Trim White Spaces on Input
    
    $FirstNameInfo=$FirstNameInfo.Trim() 


 

 

 

4) I also use items to verify if length is correct for example the minimum password char length is 8.

$Password ="Que$!!"

    if($Password.Length -lt 8){
    
        Write-Host "---Input Stop Error - No Work Has Been Done - : Password is to Short-----" -foregroundcolor "magenta"
    
        Break
    }