Powershell добавляет заголовок на выходе в цикл foreach - PullRequest
0 голосов
/ 01 октября 2019

Я уверен, что это очень просто, но я не могу этого понять. Все, что я пытаюсь сделать, это добавить заголовок / заголовок к возвращаемому / экспортируемому объекту, чтобы он был более читабельным в конечном продукте.

Что у меня сейчас есть:

$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

Я надеюсь, что это имеет смысл, любая помощь всегда очень ценится.

Спасибо, Лу

1 Ответ

1 голос
/ 01 октября 2019

Если вам абсолютно необходим 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...