Powershell 在 foreach 循环中的输出上添加一个标头



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

我现在拥有的:

$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,你必须输出$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

相关内容

最新更新