Я работал над сценарием для отображения разрешений сразу для всех почтовых ящиков, для определенного пользователя одновременно.К сожалению, поскольку атрибут -Identity в команде Get-MailboxFolderPermission не принимает подстановочные знаки, это становится немного сложным и запутанным.
Я начал использовать массив для хранения всех почтовых ящиков, поэтому я могу выполнить циклчерез него и запустите команду на каждом из них, но я не смог сделать эту работу, потому что я не смог сократить какие-либо из моих выходных данных только до адреса электронной почты.Вот моя самая последняя итерация:
$Mailboxes = Get-Mailbox | Select Name -ExpandProperty EmailAddresses | Select AddressString
$MailboxList = @()
Foreach ($Box in $Mailboxes) {
$BoxName = Out-String -InputObject $Box
echo $BoxName | Out-File "box.txt"
$BoxName = Select-String "box.txt" -Pattern "\b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b"
echo $BoxName
$MailboxList += $BoxName
}
Проблема этого кода в том, что переменная $ BoxName возвращается с текстом «box.txt: 4:», прикрепленным к ней.Попытки удалить этот текст с помощью -Replace привели к добавлению полного пути к файлу.
Я довольно новичок в Powershell, поэтому даже если это просто совершенно неправильный подход, я был бы признателен за некоторые советы о том, какделай то, что я пытаюсь сделать здесь.
Спасибо