Dewz, Ну я бы упростил до одного цикла и не повторялся с Get-ADUser,
вы всё что надо уже получаете на второй строчке, только зачем-то берёте из этого всего только логин, да ещё и через invoke-command, которая тут совершенно лишняя
Хотя, на самом деле мне непонятно откуда вообще берутся юзеры с неустановленными этими параметрами.
Может это всё надо делать прямо там, где они создаются ?
neme, Слишком абстрактный вопрос. На него можно дать только такой же абстрактный ответ.
Где-то в сети, где лежат эти документы, можно получить их список (всё тем же Invoke-WebRequest). полученный html отпарсить, Из полученного списка по каким-то критериям выбрать нужный, запросить....
Xibalba3, готовых не встречал
но основная идея в том, что надо
брать квоту, основанную на $mailbox.UseDatabaseQuotaDefaults
если истина - квота от базы, если нет - от юзера
$database.ProhibitSendQuota или $statistics.DatabaseProhibitSendQuota
против
$mailbox.ProhibitSendQuota
А вообще, если вы хотите получить именно проценты от юзерской квоты (а квота бывает как на уровне юзера, так и на уровне базы данных) то скрипт надо бы полностью переписать :)
Он никак реальную квоту не учитывает, а считает за 100% то что вы ему ввели
Xibalba3, Запускать надо вручную из самого PS, а не из ISE, прям как в примере PS> c:\path\scriptname.ps1 2000
или вместо $ProhibitSendQuota в вашем коде подставить конкретное значение - $QuotaIfVal = 2000
Уберите [void] от LoadWithPartialName, хоть увидите, загрузилась ли сборка и откуда
можно попробовать по полному пути грузить через LoadFile или через Add-Type
Free0wl, Кириллица там ничего не добавляет, впрочем вы и сами это поняли.
Про разделители в исходном варианте вопроса ничего не было, но идея была бы всё равно та же - составить список исключений в виде хеша (тут как раз расхождение, hashtable а не hashset) и сравнивать с ним.
Ваш вариант с regex хорош ровно до тех пор, пока вам не понадобится, например, исключить "a", но оставить в списке "aa"