Azure Kusto:不区分大小写解析规范名提取用户与域名
Kusto解析规范名:兼容大小写提取用户名和域名
你原来的解析代码仅支持大写CN=/DC=,遇到小写cn=/dc=就返回空值。用parse-where kind=regex flags=i时因为正则写法问题没生效,试试下面的方案:
可行查询代码
// 不区分大小写提取用户名:匹配CN=或cn=,捕获到第一个逗号前的内容 | parse-where kind=regex flags=i MemberName with * "cn=" TargetUser "," * // 提取域名起始部分:从第一个DC/dc开始到结尾 | parse-where kind=regex flags=i MemberName with * "dc=" TargetDomain // 把所有大小写的",dc="替换成点号,拼接完整域名 | extend TargetDomain = replace_regex(TargetDomain, @"(?i),dc=", ".") // 只保留需要的列 | project TargetUser, TargetDomain
效果验证
针对你提供的三个样本数据,执行后输出完全符合预期:
| TargetUser | TargetDomain |
|---|---|
| test one | Locale1.boing.com |
| test two | Locale2.com |
| test three | Locale3.Locale31.Locale32.com |
关键说明
flags=i让正则忽略大小写,不管是CN还是cn、DC还是dc都能匹配replace_regex里的(?i)确保替换时也不区分大小写,一次性处理所有,DC=/,dc=- 如果用户名里有逗号这种极端情况,可以把捕获用户名的正则改成
(?i)cn=([^,]*),精准截取到第一个逗号前的内容
内容的提问来源于stack exchange,提问作者floopsandRoot
相关产品推荐
相关产品推荐

