Мы пытаемся сделать правило, куда, если сообщение имеет XXXXX в предмете затем, перемещаются в Папку Спама.
Я предоставил свои пользовательские права полного доступа на все почтовые ящики на сервере.
Я подтвердил, что могу создать правило с пользователями индивидуально
Проблема - то, что команда работает на некоторых пользователей а не на других. Так же команда создает несколько копий правила для некоторых пользователей а не для других. Кажется, нет никакого шаблона к этому вообще.
Вот моя команда
[PS] C:\Windows\system32>get-mailbox -organizationalunit "supernova.local/Active Users" -resultsize unlimited| foreach {
new-inboxrule -name "Spam Move" -mailbox kerry -MoveToFolder "kerry:\Junk E-Mail" -SubjectContainsWords "[Spam:" -StopP
rocessingRules $true -confirm:$false -force }
Когда Вы делаете это для idividual пользователя. (в этом случае "Kerry"), вот вывод.
Pipeline not executed because a pipeline is already executing. Pipelines cannot be executed concurrently.
+ CategoryInfo : OperationStopped: (Microsoft.Power...tHelperRunspace:ExecutionCmdletHelperRunspace) [],
PSInvalidOperationException
+ FullyQualifiedErrorId : RemotePipelineExecutionFailed
Name Enabled Priority RuleIdentity
---- ------- -------- ------------
Spam Move True 1 13037078695330709505
Spam Move True 1 13109136289368637441
Spam Move True 1 13181193883406565377
При выполнении для mulitple пользователей путем замены "Kerry" с $ ($ _.Alias), он только работает на некоторых пользователей. Другой становиться двойным или больше копий правила, в то время как другие пользователи не получают его вообще.....
Очень странный.
Что я мог пропускать здесь?
Первая ошибка заключается в том, что неявное удаленное соединение PowerShell не поддерживает конвейер ForEach. Вам придется присваивать переменную, а затем делать ForEach In типа:
$MBs = Get-Mailbox -OrganizationalUnit "supernova.local/Active Users" -ResultSize Unlimited
ForEach($MB in $MBs)
{
New-InboxRule -Name "Spam Move" -Mailbox $MB -MoveToFolder "kerry:\Junk E-Mail" `
-SubjectContainsWords "[Spam:" -StopProcessingRules $true -Confirm:$false -Force
}
Вторая проблема, которую я вижу, заключается в том, что вы указываете -Mailbox on в команде, но это должно быть сделано из трубопровода. В приведенном выше примере, так как в ForEach ссылка на итерационную переменную $MB. Я предполагаю, что ID папки, которую вы указываете в -MoveToFolder также должен быть другим, возможно что-то вроде $($MB.SamAccountName)
:\Junk E-Mail `. Возможно, вам придется подумать над этим.
Пожалуйста, имейте в виду, что я наткнулся на эту тему, потому что у меня есть свои проблемы с New-InboxRule, так что она все равно может не сработать. Из-за других проблем я не могу это проверить. Это говорит о том, что всё, что я указал здесь, является общим синтаксисом, и должно оставаться верным независимо от этого.
Дайте мне знать, как это происходит...