Powershell

I found a really weird bug/feature in powershell today.

I couldn't figure out why I was getting errors like:

Object of type
 "Microsoft.PowerShell.Commands.Internal.Format.FormatStartData" is not legal 
or not in the correct sequence. This is likely caused by a user-specified 
"format-list" command which is conflicting with the default formatting. ---> 
System.InvalidOperationException: Operation is not valid due to the current 
state of the object.

   at 
System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecor
d errorRecord)

   --- End of inner exception stack trace ---

   at 
System.Management.Automation.Internal.PipelineProcessor.DoStepItems(Object 
input, Hashtable errorResults, Boolean enumerate)

   at System.Management.Automation.Internal.PipelineProcessor.Step(Object 
input)

   at 
Microsoft.PowerShell.Commands.Internal.Format.CommandWrapper.Process(Object o)

   at 
Microsoft.PowerShell.Commands.Internal.Format.SubPipelineManager.Process(PSObje
ct so)

   at 
Microsoft.PowerShell.Commands.Internal.Format.OutputManagerInner.ProcessRecord(
)

   at 
Microsoft.PowerShell.Commands.Internal.Format.FrontEndCommandBase.ProcessRecord
()

   at System.Management.Automation.Cmdlet.DoProcessRecord()

   at System.Management.Automation.CommandProcessor.ProcessRecord()

out-lineoutput : Object of type "Microsoft.PowerShell.Commands.Internal.Format.
FormatStartData" is not legal or not in the correct sequence. This is likely ca
used by a user-specified "format-list" command which is conflicting with the de
fault formatting.

          

After some googling, I found an answer written by Don Jones in a forum.

Aparrently, the semicolon does not terminate a pipeline, so any code that appears after the semi colon is treated as part of the pipeline, which ultimately gets piped implicitly to Out-Default, which sometimes doesn't know how to handle the output, causing this error.

Contact: john.weldon@johnweldon.com

Powered By:
Powered by Rackspace Cloud Computing