Exchange Shell-SubjectOrBody包含单词 [英] Exchange Shell - SubjectOrBodyContainsWords
问题描述
我正在尝试为每个脚本创建一个规则,但是我无法继续执行,因为我似乎已经达到了太高的价值...
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屋!