Петля Powershell Get-Mailbox - PullRequest
       1

Петля Powershell Get-Mailbox

0 голосов
/ 12 сентября 2018

Я использую Get-Mailbox для захвата имен пользователей / почтовых ящиков, затем Get-MailboxPermission поиск.

Get-Mailbox -ResultSize unlimited -Filter {name -like "a*"} | Get-MailboxPermission | where { ($_.AccessRights -eq “FullAccess, ChangePermission”) | blah blah

У меня есть разные строки для каждой начальной буквы (a*, b*, c* и т. Д.)Это работает нормально, но кажется, что это можно сделать с помощью некоторого цикла (foreach или foreach-object) со ссылкой на массив (@("a","b") - или это может быть @("a*","b*")), но я могу решитьпозже, вероятно, подстановочный знак.

Я не запускаю без фильтра, так как почтовых ящиков слишком много, и использование памяти интенсивно, при использовании буквенной ссылки, память кажется уменьшающейся при каждой букве (изапуск сборки мусора между каждой буквой, кажется, помогает - вывод каждой буквы записывается в .csv).

Подумал кто-нибудь - я чувствую, что упускаю что-то простое, так как до сих пор не удается выполнить массив,В результате он обычно выплевывает ВСЕ почтовые ящики по сравнению с курированными (a, b, c).

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете перебрать массив, чтобы избежать нескольких строк.

$alphabet = [char[]]([int][char]'a'..[int][char]'z')

foreach ($letter in $alphabet) {  

    Get-Mailbox -ResultSize unlimited -Filter "name -like '$letter*'" | Get-MailboxPermission | where { ($_.AccessRights -eq “FullAccess, ChangePermission”) | blah blah   

} # end foreach

В этой теме обсуждаются изящные алфавитные массивы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...