Bird
Raised Fist0
PowerShellscripting~5 mins

Error logging patterns in PowerShell - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of error logging in PowerShell scripts?
Error logging helps track and record errors that occur during script execution. It makes troubleshooting easier by providing details about what went wrong and when.
Click to reveal answer
beginner
How do you capture errors in PowerShell using Try-Catch blocks?
You wrap the code that might fail inside a try block. If an error occurs, the catch block runs, where you can log or handle the error.
Click to reveal answer
intermediate
What is the difference between $ErrorActionPreference and Try-Catch in PowerShell error handling?
$ErrorActionPreference controls how PowerShell responds to non-terminating errors globally (e.g., Continue, Stop). Try-Catch handles terminating errors locally in a block of code.
Click to reveal answer
beginner
How can you write error details to a log file in PowerShell?
Inside a catch block, use Add-Content or Out-File -Append to append error messages to a text file for later review.
Click to reveal answer
beginner
Why is it important to include timestamps in error logs?
Timestamps show when each error happened. This helps correlate errors with events or user actions and makes troubleshooting more effective.
Click to reveal answer
Which PowerShell block is used to catch and handle errors?
Aforeach
Btry-catch
Cswitch
Dif-else
What does setting $ErrorActionPreference = 'Stop' do?
AStops script on non-terminating errors
BIgnores all errors
CLogs errors silently
DRestarts the script automatically
How do you append error messages to a log file in PowerShell?
AUse Clear-Content
BUse Write-Host
CUse Remove-Item
DUse Add-Content
Which variable holds the most recent error in PowerShell?
A$Error[0]
B$LastError
C$Error
D$PSItem
Why include timestamps in error logs?
ATo make logs bigger
BTo confuse users
CTo know when errors happened
DTo speed up scripts
Explain how to implement basic error logging in a PowerShell script using Try-Catch.
Think about how you catch errors and save their details.
You got /4 concepts.
    Describe the role of $ErrorActionPreference in controlling error behavior in PowerShell.
    Consider how PowerShell decides to stop or continue on errors.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using try/catch blocks in PowerShell scripts for error logging?
      easy
      A. To automatically fix errors
      B. To speed up script execution
      C. To catch errors and handle them gracefully
      D. To ignore all errors silently

      Solution

      1. Step 1: Understand the role of try/catch

        The try block runs code that might cause errors, and the catch block handles those errors.
      2. Step 2: Purpose of error handling

        Using try/catch helps scripts manage errors without stopping abruptly, allowing logging or recovery.
      3. Final Answer:

        To catch errors and handle them gracefully -> Option C
      4. Quick Check:

        Error handling = catch errors [OK]
      Hint: Try/catch blocks catch and handle errors safely [OK]
      Common Mistakes:
      • Thinking try/catch fixes errors automatically
      • Believing try/catch speeds up scripts
      • Assuming try/catch ignores errors
      2. Which of the following is the correct syntax to write an error message with a timestamp to a log file in PowerShell?
      easy
      A. Add-Content error.log "$(Get-Date): Error occurred"
      B. Write-Error "$(Get-Date): Error occurred" >> error.log
      C. Write-Output "Error occurred at $(Get-Date)" > error.log
      D. Write-Host "$(Get-Date): Error occurred" >> error.log

      Solution

      1. Step 1: Identify correct cmdlet for appending text

        Add-Content appends text to a file without overwriting it, suitable for logging.
      2. Step 2: Check timestamp and message format

        Using "$(Get-Date): Error occurred" correctly adds a timestamp and message.
      3. Final Answer:

        Add-Content error.log "$(Get-Date): Error occurred" -> Option A
      4. Quick Check:

        Append log with Add-Content [OK]
      Hint: Use Add-Content to append logs with timestamps [OK]
      Common Mistakes:
      • Using Write-Error which writes to error stream, not file
      • Using Write-Host which outputs to console only
      • Using > which overwrites the file instead of appending
      3. What will be the output of this PowerShell snippet?
      try {
        Get-Item 'C:\nonexistentfile.txt'
      } catch {
        Add-Content error.log "$(Get-Date): File not found error"
        'Error logged'
      }
      medium
      A. No output, only error.log updated
      B. Error logged
      C. File not found error
      D. Script stops with error

      Solution

      1. Step 1: Analyze try block

        The command tries to get a file that does not exist, causing an error.
      2. Step 2: Analyze catch block

        The catch block appends a timestamped error message to error.log and outputs the string 'Error logged'.
      3. Final Answer:

        Error logged -> Option B
      4. Quick Check:

        Catch outputs message after logging [OK]
      Hint: Catch block outputs text after logging error [OK]
      Common Mistakes:
      • Thinking no output appears because only file is updated
      • Expecting script to stop on error
      • Confusing error message with output string
      4. Identify the error in this PowerShell error logging snippet:
      try {
        Get-Content 'C:\missing.txt'
      } catch {
        Write-Error "$(Get-Date): File missing"
        Add-Content error.log "File missing"
      }
      medium
      A. Catch block should not write to error stream
      B. Write-Error should be replaced with Write-Host to log properly
      C. Try block syntax is incorrect
      D. Add-Content should include timestamp for better logs

      Solution

      1. Step 1: Review logging commands

        Write-Error writes to error stream, which is okay for alerting, but Add-Content logs to file without timestamp.
      2. Step 2: Importance of timestamps in logs

        Logs without timestamps make tracking errors over time difficult; adding $(Get-Date) improves log usefulness.
      3. Final Answer:

        Add-Content should include timestamp for better logs -> Option D
      4. Quick Check:

        Logs need timestamps for clarity [OK]
      Hint: Always add timestamps when logging errors to files [OK]
      Common Mistakes:
      • Thinking Write-Error cannot be used in catch
      • Ignoring importance of timestamps in logs
      • Assuming try block syntax is wrong
      5. You want to create a PowerShell script that logs errors with timestamps and the error message to a file, but only if the error is not a 'FileNotFoundException'. Which pattern correctly implements this?
      hard
      A. try { # code } catch [System.IO.FileNotFoundException] { # ignore } catch { Add-Content error.log "$(Get-Date): $_" }
      B. try { # code } catch { if ($_ -notlike '*FileNotFoundException*') { Add-Content error.log "$(Get-Date): $_" } }
      C. try { # code } catch { Add-Content error.log "$(Get-Date): $_" }
      D. try { # code } catch [System.Exception] { Add-Content error.log "$(Get-Date): $_" }

      Solution

      1. Step 1: Understand exception filtering

        Using a typed catch block for FileNotFoundException allows ignoring that specific error.
      2. Step 2: Use a general catch for other errors

        The second catch block logs all other errors with timestamp and message.
      3. Final Answer:

        Typed catch ignores FileNotFoundException; general catch logs others -> Option A
      4. Quick Check:

        Typed catch filters errors correctly [OK]
      Hint: Use typed catch to skip specific errors [OK]
      Common Mistakes:
      • Logging all errors without filtering
      • Using if condition incorrectly inside catch
      • Not using typed catch blocks
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard