How to convert string to table or objects in powershell

14,784

Solution 1

Use the Get-Content cmdlet to load the file, replace two or more whitespaces with a comma and convert it to CSV using the ConvertFrom-Csv cmdlet:

$object = (Get-Content 'your_file').Trim() -replace '\s{2,}', ',' | ConvertFrom-Csv

If you now query your object:

$object | where qlimit -eq 27

You get the desired output:

samid qlimit qused
----- ------ -----
admin 27     8    

Solution 2

You can easily convert your table to PowerShell objects using the ConvertFrom-SourceTable cmdlet from the PowerShell Gallery:

ConvertFrom-SourceTable '
  samid            qlimit    qused  
  Administrator    -1        0      
  Guest            -1        0      
  admin            27        8      
  krbtgt           -1        0      
  r                -1        0      
  admin2           44        0  
' | Where-Object {$_.qlimit -eq 27}

Result:

samid qlimit qused
----- ------ -----
admin 27     8
Share:
14,784
vinu
Author by

vinu

Updated on June 13, 2022

Comments

  • vinu
    vinu almost 2 years

    How can I convert the below exported text to csv so that i can use it as objects in powershell. Eg:

    where{$_.qlimit -eq 27}
    

    Text:

      samid            qlimit    qused  
      Administrator    -1        0      
      Guest            -1        0      
      admin            27        8      
      krbtgt           -1        0      
      r                -1        0      
      admin2           44        0