Exchange Shell-SubjectOrBody包含单词 [英] Exchange Shell - SubjectOrBodyContainsWords

查看:79
本文介绍了Exchange Shell-SubjectOrBody包含单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试为每个脚本创建一个规则,但是我无法继续执行,因为我似乎已经达到了太高的价值...

I'm attempting to create a rule per script but I'm unable to proceed because I seem to have reached a too high value...

[PS] C:\ Users \ XXX \ Desktop> New-InboxRule-邮箱"Daniel.XXX"-名称"Test" -SubjectOrBodyContainsWords {"Value1","Value2","Value3","Value4","Value5","Value6","Value7","Value8","Value9","Value10","Value11","Value12","Value13","Value14","Value15","Value16","Value17","Value18","alue19","Value20","Value21","Value22","Value23," Value24," Value25," alue26," Value27," Value28," Value29," Value30," Value31," Value32," alue33," Value34," Value35","Value36","Value37","alue38","Value39",​​"Value40","Value41","Value42","Value43","Value44","Value45","Value46","Value47","Value48," Value49," alue50," Value51," Value52," Value53," Value54," Value55," Value56," Value57," Value58"}-ApplyCategory通用CA" -WHATIF

[PS] C:\Users\XXX\Desktop>New-InboxRule -Mailbox "Daniel.XXX" -Name "Test" -SubjectOrBodyContainsWords {"Value1","Value2","Value3","Value4","Value5","Value6","Value7","Value8","Value9","Value10","Value11","Value12","Value13","Value14","Value15","Value16","Value17","Value18","alue19","Value20","Value21","Value22","Value23","Value24","Value25","alue26","Value27","Value28","Value29","Value30","Value31","Value32","alue33","Value34","Value35","Value36","Value37","alue38","Value39","Value40","Value41","Value42","Value43","Value44","Value45","Value46","Value47","Value48","Value49","alue50","Value51","Value52","Value53","Value54","Value55","Value56","Value57","Value58"} -ApplyCategory "Common CA" -WHATIF

Invoke-Command:无法将参数'SubjectOrBodyContainsWords'绑定到目标.异常设置"SubjectOrBodyContainsWords":属性的长度过长.最大长度为255,并且提供的值的长度为570 ."AtC:\ Users \ XXX \ AppData \ Roaming \ Microsoft \ Exchange \ RemotePowerShell \ XXXXXXXXXXXXX.psm1:20346字符:29+ $ scriptCmd = {&<<<$ script:InvokeCommand`+ CategoryInfo:WriteError :( :) [New-InboxRule],ParameterBindingException+ FullyQualifiedErrorId:ParameterBindingFailed,Microsoft.Exchange.Management.RecipientTasks.NewInboxRule

Invoke-Command : Cannot bind parameter 'SubjectOrBodyContainsWords' to the target. Exception setting "SubjectOrBodyContainsWords": "The length of the property is too long. The maximum length is 255 and the length of the value provided is 570."AtC:\Users\XXX\AppData\Roaming\Microsoft\Exchange\RemotePowerShell\XXXXXXXXXXXXX.psm1:20346 char:29 + $scriptCmd = { & <<<< $script:InvokeCommand ` + CategoryInfo : WriteError: (:) [New-InboxRule], ParameterBindingException + FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.Exchange.Management.RecipientTasks.NewInboxRule

如果我将规则设置为可接受的值并在Exchange控制面板中对其进行查看,我只会看到文本是一个值(一个大字符串),而不是多个值(如果要创建它,则会显示该值)通过GUI)...

If I were to setup the rule with a acceptable value and review it in Exchange Control Panel I'd only see the text as one value (one big string) instead of multiple values (which is shown if I were to create it through GUI)...

我在做什么错了?

推荐答案

根据 about_Parsing 帮助文件:

在处理命令时,Windows PowerShell解析器将运行在表达式模式或参数模式下:

When processing a command, the Windows PowerShell parser operates in expression mode or in argument mode:

- In argument mode, each value is treated as an expandable string 
  unless it begins with one of the following special characters: dollar
  sign ($), at sign (@), single quotation mark ('), double quotation
  mark ("), or an opening parenthesis (().

由于您对 SubjectOrBodyContainsWords 参数的参数以 {开头,因此解析器将整个列表视为一个大字符串.只需删除大括号(或用正括号代替):

Since your argument to the SubjectOrBodyContainsWords parameter begins with {, the parser treats the entire list as one big string. Simply remove the curly brackets (or substitute with regular parentheses):

New-InboxRule -Mailbox 'Daniel.XXX' -Name 'Test' -SubjectOrBodyContainsWords ("Value1","Value2","Value3","Value4","Value5","Value6","Value7","Value8","Value9","Value10","Value11","Value12","Value13","Value14","Value15","Value16","Value17","Value18","alue19","Value20","Value21","Value22","Value23","Value24","Value25","alue26","Value27","Value28","Value29","Value30","Value31","Value32","alue33","Value34","Value35","Value36","Value37","alue38","Value39","Value40","Value41","Value42","Value43","Value44","Value45","Value46","Value47","Value48","Value49","alue50","Value51","Value52","Value53","Value54","Value55","Value56","Value57","Value58")

为了使命令更具可读性,我可能会事先将可能的值分配给数组:

To make the command a bit more readable, I would probably assign the possible values to an array beforehand:

$SOBCWords = @(
"Value1",
"Value2",
"Value3",
# etc
"Value56",
"Value57",
"Value58"
)
New-InboxRule -Mailbox "Daniel.XXX" -Name "Test" -SubjectOrBodyContainsWords $SOBCWords -ApplyCategory "Common CA" -WHATIF

这篇关于Exchange Shell-SubjectOrBody包含单词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆