在Azure Log Analytics中用Kusto从可分辨名称提取用户与域名
在Azure Log Analytics中从可分辨名称(DN)提取用户和域名的Kusto实现
以下是直接可用的Kusto查询,能从DN中提取用户名和完整域名:
// 替换为你的实际数据表名 let targetTable = datatable(DN:string) [ "cn=User One,OU=Accounts,OU=Administrative,DC=internal,DC=local,DC=com", "cn=Jane Doe,OU=Users,DC=contoso,DC=com" ]; targetTable // 提取用户名:匹配cn=后到第一个逗号前的内容 | extend User = extract(@"cn=([^,]+)", 1, DN) // 分割DN为数组并筛选DC开头的域名段 | extend DomainSegments = split(DN, ",") | extend DomainSegments = array_filter(DomainSegments, segment => startswith(segment, "DC=")) // 移除DC前缀并拼接成标准域名 | extend DomainSegments = array_map(DomainSegments, segment => replace_string(segment, "DC=", "")) | extend Domain = strcat_array(DomainSegments, ".") // 保留目标列 | project DN, User, Domain
关键逻辑说明:
- 用户名提取:通过
extract函数结合正则,精准捕获cn=后到第一个逗号之间的文本,即使cn字段不在DN开头也能生效。 - 域名生成:
- 用
split将DN按逗号拆分为数组元素; array_filter筛选出所有以DC=开头的域名分段;array_map移除每个分段的DC=前缀;strcat_array用点号拼接分段,形成标准域名格式。
- 用
内容的提问来源于stack exchange,提问作者floopsandRoot
相关产品推荐
相关产品推荐

