Итерация по SubjectOrBodyContainsWords правила транспорта Exchange - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу создать сценарий PowerShell для извлечения текстового файла со списком слов, указанных в правиле транспорта Exchange Server 2016. Я застрял в обработке полученного списка.

Чтобы получить список, я делаю это в командной консоли Exchange:

$SubjectOrBodyContainsWords = Get-TransportRule "My rule name" | Select-Object -Property SubjectOrBodyContainsWords

Я проверяю, что список правильный, используя это:

$FormatEnumerationLimit = 10000
$SubjectOrBodyContainsWords | Format-Table -HideTableHeaders | Out-String -width 10000

Вывод выглядит так (просто пример, фактический список намного больше):

{unsubscribe, mailing, blabla}

Теперь я хочу перебрать список, чтобы что-то сделать с каждым элементом. Я пробовал что-то вроде этого (простой пример):

$I = 10;
foreach ($A in $SubjectOrBodyContainsWords)
{
    $I++;
    $I; 
    $A;
}

Проблема в том, что он не oop всех элементов. Похоже, есть только один предмет.

Что я делаю не так?

Спасибо.

1 Ответ

1 голос
/ 05 февраля 2020

В данный момент у меня нет доступа к моему серверу Exchange, но попробуйте следующие предложения. Просто спросите и разверните свойство.

(Get-TransportRule "My rule name").SubjectOrBodyContainsWords

# Or

Get-TransportRule "My rule name" | 
Select-Object -ExpandProperty SubjectOrBodyContainsWords

Поскольку это возвращает массив, вам нужно расширить этот список.

Или вы можете сделать это, чтобы превратить в список для работы. ..

"{unsubscribe, mailing, blabla}" -replace '\s|{|}' -split ',' |  foreach {
    # Code to do something with each item
    $PSItem }

# Results
unsubscribe
mailing
blabla

... и

Потенциальная копия этого варианта использования

Оболочка Exchange - SubjectOrBodyContainsWords

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