You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Powershell从文本文件行中提取Domain域名与Username用户名

解决方案

通过正则匹配精准提取domain\username格式的内容,无需硬编码字符串替换,容错性更高。

代码实现

提取最新的登录用户(取最后一条匹配结果,匹配你的原需求)

# 读取日志文件,筛选包含登录用户信息的行,取最后一条
$logLine = Get-Content "C:\Windows\ccm\logs\execmgr.log" | Where-Object { $_ -match 'The logged on user is (\w+\\\w+)' } | Select-Object -Last 1
# 提取domain\username格式结果
$domainUser = $matches[1]
# 输出验证结果
$domainUser

提取日志中所有唯一的登录用户

Get-Content "C:\Windows\ccm\logs\execmgr.log" | ForEach-Object {
    if ($_ -match 'The logged on user is (\w+\\\w+)') {
        $matches[1]
    }
} | Where-Object { $_ } | Select-Object -Unique

原代码问题说明

  • 误用Get-Content $fil:$fil是你替换前缀后的字符串内容,不是文件路径,无需再次调用Get-Content读取
  • 硬编码字符串替换容错性差:如果日志行的前缀出现微小变动,提取逻辑就会失效,用正则匹配目标格式适配性更强

内容的提问来源于stack exchange,提问作者Varun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:54:01