title: No error when selecting non-existing property
body: <p>I want PowerShell to throw an error when trying to select non-existing properties, but instead I get empty column as output. Example:</p>
  
  <pre><code>$ErrorActionPreference=[System.Management.Automation.ActionPreference]::Stop;
  Set-StrictMode -Version 'Latest'
  Get-Process *ex* | Select-Object Id,ProcessName,xxx
  
     Id ProcessName   xxx
     -- -----------   ---
   9084 explorer
  11404 procexp
  </code></pre>
  
  <p>I wrote a script that is importing multiple text files by <code>Import-Csv</code>, but headers in those file may change, and I'll end up with empty columns being loaded to the system. </p>
  
  <p>EDIT:
  This is how I'm checking if the headers match:</p>
  
  <pre><code>$csv = Import-Csv -Delimiter ';' -Path $file.FullName 
  $FileHeaders = @(($csv | Get-Member -MemberType NoteProperty).Name) 
  if (Compare-Object $ProperHeaders $FileHeaders) {'err'} else {'ok'}
  </code></pre>
  
  <p>I know that's the way PowerShell works, but <code>Set-StrictMode</code> documentation was indeed a little misleading for me, as @Matt mentioned. I just wish <code>Select-Object</code> had some kind of "-NoNewImplicitProps" or "-ReadOnlyPipeline" switch that would do the job for me :). Thanks for the answers.</p>