如何将字符串转换为 table 或 powershell 中的对象

How to convert string to table or objects in powershell

如何将下面导出的文本转换为 csv,以便我可以将其用作 powershell 中的对象。例如:

where{$_.qlimit -eq 27}

正文:

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

使用 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

如果您现在查询您的对象:

$object | where qlimit -eq 27

你得到了想要的输出:

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

ConvertFrom-String的另一种方式(文件中没有headers):

(Get-Content 'your_file').trim() | ConvertFrom-String -PropertyNames samid,qlimit,qused

您可以使用 ConvertFrom-SourceTable cmdlet from the PowerShell Gallery:

轻松地将 table 转换为 PowerShell 对象
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}

结果:

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