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

如何修改PowerShell脚本:保留原输入并为不存在的用户名输出NOMATCH至CSV

解决AD用户查询脚本的两个需求

下面是修改后的PowerShell脚本,可同时满足保留原始输入用户名和标记不存在用户的需求:

Import-Module ActiveDirectory

# 读取用户名列表并逐个处理
$results = foreach ($originalUser in Get-Content Usernames.txt) {
    # 查询AD用户,抑制不存在时的错误提示
    $adUser = Get-AdUser -Identity $originalUser -Properties Name, DisplayName, SamAccountName, Surname, Mail, TelephoneNumber, Department, Office, DistinguishedName, Enabled, Modified -ErrorAction SilentlyContinue

    # 根据查询结果构造输出对象
    if ($adUser) {
        # 用户存在时,映射AD属性并添加原始用户名
        [PSCustomObject]@{
            OriginalUsername   = $originalUser
            Name               = $adUser.Name
            DisplayName        = $adUser.DisplayName
            SamAccountName     = $adUser.SamAccountName
            Surname            = $adUser.Surname
            Mail               = $adUser.Mail
            TelephoneNumber    = $adUser.TelephoneNumber
            Department         = $adUser.Department
            Office             = $adUser.Office
            DistinguishedName  = $adUser.DistinguishedName
            Enabled            = $adUser.Enabled
            Modified           = $adUser.Modified
            MatchStatus        = "MATCH"
        }
    }
    else {
        # 用户不存在时,标记NOMATCH,属性字段统一标记或留空
        [PSCustomObject]@{
            OriginalUsername   = $originalUser
            Name               = "NOMATCH"
            DisplayName        = "NOMATCH"
            SamAccountName     = "NOMATCH"
            Surname            = "NOMATCH"
            Mail               = "NOMATCH"
            TelephoneNumber    = "NOMATCH"
            Department         = "NOMATCH"
            Office             = "NOMATCH"
            DistinguishedName  = "NOMATCH"
            Enabled            = $null
            Modified           = $null
            MatchStatus        = "NOMATCH"
        }
    }
}

# 导出结果到CSV文件,UTF8编码避免中文乱码
$results | Export-CSV Username_To_DisplayName.csv -NoTypeInformation -Encoding UTF8

关键修改说明

  • 保留原始用户名:新增OriginalUsername字段,直接绑定循环中的输入用户名变量,确保输出始终包含原始输入内容。
  • 标记不存在用户:通过-ErrorAction SilentlyContinue屏蔽查询失败的错误,判断查询结果是否为空,为空则生成标记为NOMATCH的对象,同时新增MatchStatus字段明确匹配状态。
  • 编码优化:导出时指定-Encoding UTF8,避免中文属性出现乱码问题(可根据实际环境调整)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:15:41