powershell - 如何使用变量在 New-DynamicDistributionGroup 上设置 -RecipientFilter
问题描述
我想通过 csv 导入创建一些动态分发列表。我希望 -RecipientFilter 使用 csv 数据中的值。所以,我正在努力解决语法并且没有运气。我的实际过滤器将有几个部分,但我什至无法让这个简单的部分工作。
通过变量设置 -Name 可以正常工作。
$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
但这会引发"Cannot bind parameter 'RecipientFilter' to the target. Exception setting "RecipientFilter": "Invalid filter syntax. For a description of the filter parameter syntax see the command help."
我已经阅读了我能找到的所有内容,但找不到这样做的方法。我什至尝试了字符串连接:
$myCommand = "New-DynamicDistributionGroup -Name $dgName -RecipientFilter { ExtensionCustomAttribute1 -eq " + $dgCode1 + " }"
但这仍然引发了“无效的过滤器语法”错误。
请问这怎么做?我对 PowerShell 很陌生。
谢谢,默里
编辑:感谢@AdminOfThings
一个更完整的示例,可以复制我试图实现的目标(为了便于阅读,线喙):
$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')))) ...
非常感谢。默里
解决方案
这似乎是对过滤器使用脚本块表示法的问题。所有 Microsoft 帮助页面都显示将脚本块 ( {}
) 用于 OPATH 过滤器(由 Exchange 命令使用)和 Active Directory 过滤器(由 ActiveDirectory 模块使用),这是不正确的做法,因为它们不是脚本块。下面会有更好的结果。
New-DynamicDistributionGroup -Name $dgName -RecipientFilter "ExtensionCustomAttribute1 -eq '$dgCode1'"
某些脚本块将有自己的范围。该作用域对在作用域之外创建的变量一无所知。
推荐阅读
- r - 对不同的正态分布进行积分得到 0 概率
- gnuplot - 带有 gnuplot 的 4D 绘图
- javascript - 定义一个值在 1 到 100 之间的变量
- angular - 是否可以选择一个文件夹并以角度 9 上传其中的所有文件?
- c++ - 如何将 C++ 系统调用连接到 freertos
- c++ - 向量的内存位置不连续
- php - 尝试在 Arch 上升级 DokuWiki 农场设置,wiki 现在完全被冲洗
- python - 使用API直接调用google cloudfunction
- c# - 执行 INSERT 时出现 SQL 错误:'s' 附近的语法不正确
- javascript - 如何在登录页面上添加 Android 和 iOS 设备图像