【问题标题】:Changing Powershell output from List view to an array view将 Powershell 输出从列表视图更改为数组视图
【发布时间】:2019-12-05 14:08:48
【问题描述】:

我正在尝试将 PowerShell cmdlet 的输出从表视图转换为更像数组的东西。我使用列表格式来尽可能多地减少垃圾数据。目前,我使用以下代码来获取此输出:

Get-AccountsWithUserRight -Right SeNetworkLogonRight | Format-List -Property SID |Set-Variable -Name "Accounts"
$Accounts

输出:

SID : S-1-5-32-583

SID : S-1-5-32-551

SID : S-1-5-32-545

SID : S-1-5-32-544

我不确定如何使用格式化/其他属性来删除“SID”字符串,然后只返回一个输出,例如“S-1-5-32-583,S-1-5-32-551 ,ETC”。我需要这样做,因为我希望在另一个 cmdlet 中使用输出,而额外的数据会导致错误。

【问题讨论】:

    标签: powershell format


    【解决方案1】:

    仅将Format-* cmdlet 用于显示格式;如果数据必须以编程方式处理,则永远不要使用它们。 Format-* cmdlet 输出格式说明,而不是数据 - 请参阅this answer

    此外,要将输出保存在变量中,分配给它比使用Set-Variable 更简单:

    # Save the account objects in a variable.
    $Accounts = Get-AccountsWithUserRight -Right SeNetworkLogonRight
    

    如果您想输出/仅使用 SID 值:

    $Accounts.SID
    

    【讨论】:

      猜你喜欢
      • 2015-10-23
      • 1970-01-01
      • 2014-07-25
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多