我正在导出传输规则中的域,但输出不包含报头,因此无法正确导出为CSV。
尝试以下代码:
$CurrentDomains = (Get-TransportRule "domain block").SenderDomainIs这将输出以下内容:
PS C:\Users\user> $CurrentDomains
chess.com
jen.com
bob.com
joe.com
irish.com
ND.com
goirish.com
fieldnotes.com正如您所看到的,没有"title“,所以当我运行export-csv时,它只是显示为数字:
$currentdomains | export-csv c:\temp\domains.csv -notypeCSV的输出如下所示:
Length
9
7
7
7
7
9
6
11
14我需要以Domain作为标题的输出如下所示:
Domain
chess.com
domain2.com
domain3.com
domain4.com
fieldnotes.com
goirish.com
mydomain.com我怎样才能做到这一点呢?
发布于 2020-08-08 08:27:51
Olaf的评论应该已经很好地解决了这个问题。这是另一种方式,只是做他建议的不同的方式。
Get-TransportRule -Identity 'domain block' |
select-Object -ExpandProperty SenderDomainIs |
Foreach {
[pscustomobject]@{'Domain' = $_}
} | Export-Csv c:\temp\domains.csv -notypeCSV内容
get-content C:\temp\domains.csv
"Domain"
"chess.com"
"jen.com"
"bob.com"
"joe.com"
"irish.com"
"ND.com"
"goirish.com"
"fieldnotes.com"发布于 2020-08-08 08:35:21
按如下方式导出:
$currentdomains |
ForEach-Object { return [PSCustomObject]@{Domain = $_}} |
Export-Csv ...说明:Export-Csv导出对象的属性,而不是对象本身。
因为您的$currentdomains是System.String的列表,而System.String只包含Length属性,所以会将其导出。
因此,要导出字符串值,您必须导出一些对象,这些对象具有属性Domain (或您想要任何其他属性),并且该属性的值是感兴趣的字符串。
在PowerShell中创建此对象的最简单方法是使用从System.Hashtable (也称为键值集合@{ })到PSCustomObject的转换。键成为PSCustomObject的属性,值成为它的属性的值。
因此,使用ForEach-Object { return [PSCustomObject]@{Domain = $_}}将字符串包装到PSCustomObject对象中,该对象具有单个(在其他情况下可能是多个)属性Domain。
Export-Csv枚举PSCustomObject的属性,根据它们的名称创建列(在本例中,您只有Domain属性,所以CSV中只有一个列Domain ),并且作为一个值,它使用属性的.ToString()方法。
您的Domain属性的类型为System.String,因此System.String::ToString()返回string本身。
另一种方式:
(Get-TransportRule "domain block") |
ForEach-Object { return [PSCustomObject]@{Domain = $_.SenderDomainIs}} |
Export-Csv ...另一种方式:
(Get-TransportRule "domain block") |
Select-Object -Property @(
@{
Label = 'Domain'
Expression = { return $_.SenderDomainIs }
},
'SenderDomainIs' # This line is for example:
# There can be other properties from Get-TransportRule, by their name, like "SenderDomainIs" or by Label-Expression conversion
) |
Export-Csv ...https://stackoverflow.com/questions/63310423
复制相似问题