AD用户签名生成脚本IF语句实现:根据移动值输出指定标识
解决AD用户移动值判断的签名脚本问题
嘿,我来帮你搞定这个签名生成脚本里的AD移动值判断问题!看起来你需要在AD用户存在有效Mobile字段值时,在签名的联系人行里加上|M标记,对吧?我来给你修正IF语句的逻辑,同时结合你给出的代码片段整合进去。
核心修正逻辑
首先要确保你已经正确获取了AD用户的对象(比如objUser),这是判断Mobile属性的前提。然后在输出联系人信息的代码段中,插入正确的判断逻辑:
' Contact line objSelection.Font.Size = 8 objSelection.Font.Color = RGB(0,0,0) objSelection.TypeText "P: " & strPhoneNumber ' 替换为你实际的电话变量 ' 关键判断:检查AD用户的Mobile属性是否存在且非空 If Not IsEmpty(objUser.Mobile) And Trim(objUser.Mobile) <> "" Then objSelection.TypeText " |M " End If ' 继续执行后续脚本逻辑(示例:添加邮箱) objSelection.TypeText " E: " & strEmail
为什么这样写?
Not IsEmpty(objUser.Mobile):如果AD中该用户未配置Mobile属性,这个属性会返回Empty,此判断确保属性确实存在。Trim(objUser.Mobile) <> "":避免Mobile字段仅包含空白字符的情况(比如误输入空格),此时我们不需要显示|M标记。
补充:获取AD用户对象的示例
如果你还没有获取AD用户对象的代码,这里提供一个通过NT登录名绑定的示例(可根据你的脚本实际情况调整):
Dim objUser, strUserNTName strUserNTName = "jdoe" ' 替换为目标用户的NT登录名 ' 通过NT登录名绑定到AD用户 Set objUser = GetObject("WinNT://" & GetObject("LDAP://rootDSE").Get("dnsHostName") & "/" & strUserNTName & ",user")
这样修改后,当AD用户有有效的Mobile值时,就会在电话后自动添加|M,否则直接跳过,继续执行后续的签名生成流程。
内容的提问来源于stack exchange,提问作者Nick Schmidt
相关产品推荐
相关产品推荐

