我正在尝试将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,等等”。我需要执行此操作,因为我希望在另一个cmdlet中使用输出,并且多余的数据会导致错误。
仅将Format-*
cmdlet用于显示格式;如果必须以编程方式处理数据,切勿使用它们。Format-*
cmdlet输出格式化指令,而不是数据-请参见this answer。
而且,将输出保存到变量中,将其分配给它比使用Set-Variable
更简单:
# Save the account objects in a variable.
$Accounts = Get-AccountsWithUserRight -Right SeNetworkLogonRight
如果您随后要输出/仅使用SID值:
$Accounts.SID