宏是特殊字符串,其值会根据该宏的功能被替换为另一个字符串。ADManager Plus支持多种类型的宏,这些宏在执行时会解析动态值。

    例如:在 %sAMAccountName% 宏中,输入值将为宏执行对象的 SAM 账户名称。

    宏语法

    在ADManager Plus中使用宏时,必须遵循以下语法规范。根据宏的类别或类型,其前缀会有所不同。

    • %<前缀>.<宏名称>%
    • %<前缀>.<宏名称>(参数1, 参数2, ...)%
    • %<前缀>.<宏名称>(#%<前缀>.<宏名称>%#, 参数2, ...)%

    ADManager Plus中的不同类型宏

    宏类型 前缀 可用宏
    操作详情 act
    环境变量 env 环境变量选项卡下配置。
    自定义函数 fx
    实用程序 -
    AD 属性 ad
    Microsoft 365 属性 m365

    如何在ADManager Plus中使用宏?

    在支持宏的下列模块中,点击宏选择器图标icon-percentage ,并按需配置。

    • 入站 webhook
    • 外发 webhook
    • Webhook模板
    • 属性映射格式
    • 自定义脚本配置
    • 通知模板

    重要提示:

    在 ADManager Plus 中使用宏时,建议遵循以下提示。

    • 宏区分大小写。添加宏至标题、参数等位置时,请确保使用正确的单词大小写形式。
    • 若宏在解析过程中未接收有效字符串值,则将被替换为空字符串。
    • 宏必须以% 符号 开头并以% 符号 结尾。
    • 当宏添加时未指定前缀,系统将首先通过环境变量层次结构进行解析,随后解析AD属性。
    • 在嵌套宏中,内部宏必须用#符号包裹。例如:%fx.findAndReplace(input:#%ad.OU_DN_NAME%#,find:test.com,replace:test123.com)%

    嵌套宏

    ADManager Plus中的嵌套宏允许在另一个宏内部嵌入或调用宏。使用嵌套宏时 需用#符号包裹内部宏。环境变量查找替换宏URI组件 编码解码宏均属于嵌套宏示例。

    示例:

    • %fx.findAndReplace(input:#%ad.OU_DN_NAME%#,find:test.com,replace:test123.com)%

    Active Directory 宏

    Active Directory (AD) 属性宏可动态获取宏执行对象(用户/组)的 LDAP 值。默认情况下,ADManager Plus 提供二十个 AD 属性宏。若需添加自定义属性,请在“管理 > LDAP 属性”中配置。添加自定义属性时,请确保其关联到相应的报表类别。

    Microsoft 365 宏

    这些宏可动态获取宏执行对象(用户/组)的 Microsoft 365 属性值。ADManager Plus 默认提供 18 个 Microsoft 365 属性宏。

    操作详情

    时间戳宏

    时间戳宏是用于动态表示特定日期和时间值的占位符或变量。使用此宏时,请在操作详情中选择时间戳宏,并指定日期和时间格式,该格式将在每次使用宏时实时更新。

    例如:

    在自动化用户入职任务时,可通过如下所示的时间戳宏将用户账户创建的起始日期设置为自动化配置完成后两天。

    语法:

    %act.timestamp_<日期格式>_<时间间隔类型>_<时间间隔值>%

    示例:

    %act.timestamp_dd-MM-yyyy_afterNDays_2%

    输入值 输出值
    若宏解析时的当前日期为:2025年1月1日 2025-03-01

    环境变量

    环境变量是一组名称-值对,可作为宏用于存储较少变更的值(如认证令牌、ID等)。创建新Webhook模板时,可在URL、Header、Parameter和Message Body中使用环境变量。

    语法

    %env.<变量名>%

    示例

    %env.securedToken%

    输入值 输出值
    %env.securedToken% sd#123#78sd

    自定义函数

    创建其值从脚本中获取的自定义函数。在解析变量宏时,脚本执行的结果值将作为自定义函数的值使用。

    注意:您也可将敏感信息存储在脚本输出参数中,并将其作为环境变量中的嵌套宏添加。

    语法:

    %fx.<变量名>_<参数1>_...<参数n>%

    示例:

    %fx.generateSecuredToken_#%act.timestamp_dd-MM-yyyy_当前时间%#_%admin%

    输入值 输出值
    %fx.generateSecuredToken_#%act.timestamp_dd-MM-yyyy_当前时间%#_%admin% 生成安全令牌脚本路径将添加在此处。

    执行时间将采用dd-MM-yyyy格式(例如01-01-2024)作为第一个参数,admin作为第二个参数。

    两个值将在脚本中解析,脚本输出将成为宏的值。

    查找替换

    查找替换宏可帮助您搜索并定位源字符串中的特定部分,将其替换为另一字符串。在ADManager Plus中,您可对源字符串和宏进行查找替换。使用方法:在"选择宏"弹出窗口中,依次进入"函数" > "查找替换"。

    语法:

    %fx.findAndReplace(input:<输入值>,find:<查找值>,replace:<替换值>)%

    示例:

    %fx.findAndReplace(input:#%ad.OU_DN_NAME%#,find:test.com,replace:test123.com)%

    输入值 输出值
    若用户所属OU为: DistinguishedName = "OU=IAM users,DC=test,DC=com"。

    "OU=IAM users,DC=prod,DC=com"

    URI编码

    URI编码宏的功能类似于实际的JavaScript encodeURI组件。默认情况下,webhook模板的API URL和参数将在执行前进行编码。除此之外,若需对其他值进行编码,请使用此选项。

    语法:

    %fx.encodeURIComponent("<value>")%

    示例:

    %fx.encodeURIComponent("Ad secure pwd")%

    输入值 输出值
    L*urO@82# L*urO%4082#%0A

    注意:您 也可将敏感信息存储在环境变量中,并将其作为嵌套宏添加到编码URI宏中。

    解码URI

    解码URI宏的工作原理类似于实际的JavaScript decodeURI组件。若需解码从集成应用程序获取的编码属性值,请在解码URI组件字段中输入该值。

    输入值 输出值
    Ad%20安全%20密码 Ad安全密码

    检索正则表达式匹配项

    此宏可在入站 webhook 中搜索并定位配置端点属性列中的目标模式值。在"检索正则表达式匹配"字段( 选择宏 > 函数)中,提供列名及搜索匹配的模式。完成后点击添加。

    这样,从端点获取的数据将仅包含API处理所需的字符串模式,并舍弃属性值中的其余内容。

    注意:" 检索正则表达式匹配项"宏仅限于命名格式中使用。

    实用工具

    追加

    若需连续使用两个宏,在从端点获取数据时,请在两个宏之间添加:APPEND:字符串。

    语法:

    %<前缀>.<宏名>%:APPEND:%<前缀>.<宏名>%

    示例:

    %ad.givenName%:APPEND:%ad.department%

    输入值 输出值
    如果用户的姓名为 test, 部门名称为 accounts。 测试账户