【问题标题】:Exchange Shell - SubjectOrBodyContainsWordsExchange Shell - SubjectOrBodyContainsWords
【发布时间】:2015-04-27 13:40:09
【问题描述】:

我正在尝试为每个脚本创建一个规则,但我无法继续,因为我的值似乎太高...

[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”:“The 属性长度过长。 最大长度为 255, 提供的值的长度为 570。"AtC:\Users\XXX\AppData\Roaming\Microsoft\Exchange\RemotePowerShell\XXXXXXXXXXXXX.psm1:20346 字符:29 + $scriptCmd = { &

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

我做错了什么?

【问题讨论】:

  • 您是否尝试过不将其包含在{} 中? - 似乎列表被解析为一个巨大的字符串

标签: powershell exchange-server


【解决方案1】:

根据about_Parsing帮助文件:

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

- 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 参数的参数以{ 开头,因此解析器将整个列表视为一个大字符串。只需删除大括号(或用普通括号代替):

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")

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

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

【讨论】:

  • 感谢您的解决方案、信息和提示!我会利用这些知识。
猜你喜欢
  • 2020-05-20
  • 2014-01-17
  • 1970-01-01
  • 1970-01-01
  • 2017-03-02
  • 1970-01-01
  • 2013-06-07
  • 2012-01-14
  • 1970-01-01
相关资源
最近更新 更多