Powershell 如何使用变量在新DynamicDistributionGroup上设置-RecipientFilter
我想通过csv导入创建一些动态通讯组列表。我希望-RecipientFilter使用csv数据中的值。所以,我正在尝试解决语法问题,但运气不好。我的实际过滤器将有几个部分,但我甚至不能让这个简单的工作 通过变量设置-Name可以正常工作Powershell 如何使用变量在新DynamicDistributionGroup上设置-RecipientFilter,powershell,Powershell,我想通过csv导入创建一些动态通讯组列表。我希望-RecipientFilter使用csv数据中的值。所以,我正在尝试解决语法问题,但运气不好。我的实际过滤器将有几个部分,但我甚至不能让这个简单的工作 通过变量设置-Name可以正常工作 $dgName = "AAC" $dgCode1 = "QQ" New-DynamicDistributionGroup -Name $dgName -RecipientFilter { ExtensionCustomAttribute1 -eq 'QQ'
$dgName = "AAC"
$dgCode1 = "QQ"
New-DynamicDistributionGroup -Name $dgName -RecipientFilter { ExtensionCustomAttribute1 -eq 'QQ' }
设置-RecipientFilter表达式不起作用
New-DynamicDistributionGroup -Name $dgName -RecipientFilter { ExtensionCustomAttribute1 -eq $dgCode1 }
当我在过滤器中以“$dgCode1”结束时
我尝试调用表达式:
$myCommand = "New-DynamicDistributionGroup -Name $dgName -RecipientFilter { ExtensionCustomAttribute1 -eq $dgCode1 }"
Invoke-Expression $myCommand
但该抛出无法将参数“RecipientFilter”绑定到目标。异常设置RecipientFilter:筛选器语法无效。有关筛选器参数语法的说明,请参阅命令帮助
我已经读了所有我能找到的东西,但找不到一个方法来做到这一点。我甚至尝试了字符串连接:
$myCommand = "New-DynamicDistributionGroup -Name $dgName -RecipientFilter { ExtensionCustomAttribute1 -eq " + $dgCode1 + " }"
但这仍然抛出了无效筛选器语法错误
请问怎么做?我对PowerShell很陌生
谢谢,默里
编辑:谢谢你,我很荣幸
一个更完整的例子可以复制我试图实现的线条喙的易读性:
$dgName = "Class2-3Parents"
$dgCode1 = "P"
$dgSubCode1 = "Class2"
$dgSubCode2 = "Class3"
New-DynamicDistributionGroup -Name $dgName -RecipientFilter
"ExtensionCustomAttribute1 -eq '$dgCode1' -and ( ExtensionCustomAttribute2 -eq '$dgSubCode1' -or ExtensionCustomAttribute2 -eq '$dgSubCode2' ) "
结果将生成以下内容的筛选器:
((ExtensionCustomAttribute1 -eq 'P') -and (((ExtensionCustomAttribute2 -eq 'Class2') -or (ExtensionCustomAttribute2 -eq 'Class3')))) ...
非常感激。
Murray这似乎是对筛选器使用脚本块表示法的问题。所有Microsoft帮助页都显示使用脚本块{}作为Exchange命令使用的OPATH筛选器和ActiveDirectory模块使用的Active Directory筛选器,这是一种不正确的做法,因为它们不是脚本块。以下几点会有更好的结果
New-DynamicDistributionGroup -Name $dgName -RecipientFilter "ExtensionCustomAttribute1 -eq '$dgCode1'"
某些脚本块将有自己的作用域。该作用域不知道在该作用域之外创建的变量的任何信息。这似乎是使用脚本块表示法进行筛选的问题。所有Microsoft帮助页面都显示为这些筛选器使用脚本块{},这通常是不正确的做法。看看使用新的DynamicDistributionGroup-Name$dgName-RecipientFilter扩展定制属性1-eq'$dgCode1'是否有更好的效果。先生,你真是个天才!对就这样。我显然需要阅读有关脚本块的内容,以理解语法的含义和您编写的内容。我测试了我需要创建的过滤器,一切正常。请参见我的问题,请编辑上面的内容。:-:-我编辑了我的问题,而不是回答它,因为当我这样做时,版主似乎会删除我的帖子!请添加您的答案,以便我可以接受它。再次感谢。