【问题标题】:Powershell add a header on output in foreach loopPowershell 在 foreach 循环中的输出上添加标头
【发布时间】:2019-10-01 01:32:34
【问题描述】:

我确定这很简单,但我似乎无法理解。我要做的就是为要返回/导出的对象添加一个标题/标题,以便在最终产品中更具可读性。

我现在拥有的:

$name | foreach {
Get-MailboxPermission $_ |? {$_.AccessRights -eq "FullAccess" -and $_.IsInherited -ne "False"} | Select User | export-csv -path $path -NoTypeInformation -Append

}

这给了我一个如下所示的输出:

name1
name2
name3
name4
name5

但是为了方便阅读,我希望它说出它显示权限的邮箱的名称,所以像这样:

Mailbox 1
name1
name2
name3

Mailbox 2
name1
name2
name3

我希望这是有道理的,任何帮助总是非常感谢。

谢谢, 娄

【问题讨论】:

  • 您希望您的输出文件看起来像这样吗?请注意,它不再是有效的 CSV 文件。

标签: powershell loops foreach header


【解决方案1】:

如果您绝对想要 CSV,则必须将 $name 输出到每一行,从而导致

Mailbox;User    
$name1;$user1
$name1;$user2
$name2;$user1
$name2;$user2

之后,您将能够在 Excel 中使用过滤器。

你可以试试这个

$result = @()

$record = @{

    "Mailbox" = ""
    "User" = ""

}

$name | foreach {
$user = Get-MailboxPermission $_ |? {$_.AccessRights -eq "FullAccess" -and $_.IsInherited -ne "False"} | Select User

$record.Mailbox = $_
$record.User = $user
$objRecord = New-Object PSObject -Property $record
$result += $objRecord

}

$result | Export-Csv -Path $path -Delimiter ";" -NoTypeInformation

【讨论】:

    猜你喜欢
    • 2020-03-03
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 2018-05-30
    相关资源
    最近更新 更多