导出包含多个字段值表达式的 CSV?

Export CSV with multiple field-value expressions?

我正在尝试将所有字段值对放入同一个 CSV 文件中。

单独工作

$cert = Get-ChildItem cert:\localmachine -Recurse

($cert.Extensions | Where-Object {$_.Oid.FriendlyName -eq "Key Usage"}).Format(0) |
  Select-Object -Property @{Name="Key Usage";Expression={$_}} |
  Export-csv -Path .\KeyUsage.csv

($cert.Extensions | Where-Object {$_.Oid.FriendlyName -eq "Basic Constraints"}).Format(0) |
  Select-Object -Property @{Name="basic constraints";Expression={$_}} |
  Export-csv -Path .\BasicConstraints.csv

不起作用

$cert = Get-ChildItem cert:\localmachine -Recurse

($cert.Extensions | Where-Object {$_.Oid.FriendlyName -eq "Key Usage"}).Format(0) |
  Select-Object -Property @{Name="Key Usage";Expression={$_}},
($cert.Extensions | Where-Object {$_.Oid.FriendlyName -eq "Basic Constraints"}).Format(0) |
  Select-Object - Property @{Name="basic constraints";Expression={$_}} |
Export-csv -Path .\File.csv

也许我需要检查字段值是否为空,但如何在 'Expression' 中进行检查?看起来我不能使用 if(!$_){}else{} 来写入一些零值。

我想post为别人做最后的决定。通过 Microsoft PowerShell 社区,我得到了帮助我解决问题的回复 -

Get-ChildItem cert:\localmachine -Recurse |
Select-Object
@{N="Key_Usage";E={($_.Extensions | Where-Object {$_.Oid.FriendlyName -eq "Key Usage"}).Format(0)}},
@{N="Basic_Constraints";E={($_.Extensions | Where-Object {$_.Oid.FriendlyName -eq "Basic Constraints"}).Format(0)}} |
Export-Csv .\File.csv -notype