powershellgroup-object

PowerShell - Expand Group-Object


I want to expand a PowerShell Group Object. But only the first Object.

Get-EventLog -Logname system -EntryType "Error" | Group-Object 'InstanceID' | Select-Object Count, Name, @{Name="Message";Expression={$_.Group.Message[0]}} | Format-Table -Wrap

Results in:

Count Name Message                                                                                                                                                       
----- ---- -------                                                                                                                                                       
  161 17   ESIF(8.7.10200.12510) TYPE: ERROR MODULE: DPTF TIME 81546445 ms                                                                           

This is fine. But if there is only 1 Event Count:

Count Name Message  
----- ---- ------- 
    1 8193 V    

They got only the first char.

How can i get the complete, first String? Any suggestions?

Thanks.


Solution

  • You could use Select-Object to select the first message.

    Get-EventLog -Logname system -EntryType "Error" |
        Group-Object 'InstanceID' | Select-Object Count, Name,
            @{Name="Message";Expression={$_.Group.Message | select -first 1}} |
                Format-Table -Wrap
    

    The only difference for me in the output of my example vs yours is the entire message is collected for single count entries vs just the first character.

    Count Name       Message                                                                                                                                                                      
    ----- ----       -------                                                                                                                                                                      
        8 15         The device driver for the Trusted Platform Module (TPM) encountered a non-recoverable error in the TPM hardware, which prevents TPM services (such as data encryption) from  
                     being used. For further help, please contact the computer manufacturer.                                                                                                      
                                                                                                                                                                     
        6 3221232481 A timeout was reached (30000 milliseconds) while waiting for the GameDVR and Broadcast User Service_15bc71 service to connect.                                               
                                                             
        3 20         Installation Failure: Windows failed to install the following update with error 0x80073d02: 9WZDNCRFJ364-MICROSOFT.SKYPEAPP.                                                 
        1 36871      A fatal error occurred while creating a TLS client credential. The internal error state is 10013.                                                                            
        2 10001      The description for Event ID '10001' in Source 'DCOM' cannot be found.  The local computer may not have the necessary registry information or message DLL files to display   
                                                                                                                                                   
        1 3221232495 The Network List Service service terminated with the following error:                                                                                                        
                     %%21