简体   繁体   中英

Powershell format-table error

I am attempting to run the following code to retrieve a list of local users on a machine.

gwmi win32_useraccount -Computername $env:computername -Filter "Domain='$env:computername'" |
  Format-Table Name,Description

I get this error when running inside a PS1 file:

The object of type
 "Microsoft.PowerShell.Commands.Internal.Format.FormatStartData" is not
 valid or not in the correct sequence. This is likely caused by a
 user-specified "f ormat-table" command which is conflicting with the
 default formatting.
     + CategoryInfo          : InvalidData: (:) [out-lineoutput],
 InvalidOperationException
     + FullyQualifiedErrorId :
 ConsoleLineOutputOutOfSequencePacket,Microsoft.PowerShell.Commands.OutLineOutputCommand

I understand this issue arises because of the way the pipelines are parsed but I can't figure out how to get around it.

The Format-* cmdlets do not do final output, but transform their input into a sequence of formatting objects. These formatting objects are converted to the actual output by one of the Out- cmdlets, probably Out-Default .

If a script has multiple, different, sets of formatting objects that final output of the merged objects from all the expressions in the script Out-Default cannot resolve the inconsistencies.

Fix: add a Out-Sting to the end of each output generating pipeline to perform the formatting one expression at a time:

gwmi win32_useraccount -Computername $env:computername -Filter "Domain='$env:computername'" |
  Format-Table Name,Description | Out-String

you can also try :

gwmi win32_useraccount -Computername $env:computername -Filter "Domain='$env:computername'"  | Select-Object Name,Description  | Format-Table Name,Description

In fact you convert to an intermediate PSCustomObject and you still have an object.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM