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

求助:通过CSV使用PowerShell删除AD用户并输出结果的问题

批量删除AD用户脚本问题排查与解决

问题背景

需要基于CSV文件中的用户名列表批量删除AD用户,单条删除命令Remove-ADUser -Identity Username1可正常执行,但修改适配指定CSV格式的脚本后,出现以下异常:

  • 运行无屏幕输出
  • 未生成操作结果日志CSV
  • AD用户未被删除

排查与解决过程

经自行排查,问题根源为CSV文件格式不符合脚本预期,恢复原有CSV格式后脚本恢复正常运行。

正确实现脚本示例

以下是适配标准CSV格式(含Username列)的批量删除脚本,同时输出操作结果到日志文件:

# 定义CSV路径与结果日志路径
$userListPath = ".\ADUsersToDelete.csv"
$resultLogPath = ".\ADUserDeletionResults.csv"

# 初始化结果数组
$results = @()

# 读取CSV并循环处理
Import-Csv -Path $userListPath | ForEach-Object {
    $username = $_.Username
    $result = [PSCustomObject]@{
        Username = $username
        Status   = ""
        Message  = ""
    }

    try {
        # 实际删除前可先加-WhatIf参数测试执行效果
        Remove-ADUser -Identity $username -Confirm:$false -ErrorAction Stop
        $result.Status = "Success"
        $result.Message = "用户已成功删除"
    }
    catch {
        $result.Status = "Failed"
        $result.Message = $_.Exception.Message
    }

    # 实时输出操作结果到屏幕
    Write-Host "$username - $($result.Status): $($result.Message)"
    # 将结果存入数组
    $results += $result
}

# 导出操作结果到CSV日志文件
$results | Export-Csv -Path $resultLogPath -NoTypeInformation -Encoding UTF8

关键注意事项

  • CSV格式要求:必须包含名为Username的列,示例CSV内容:
    Username
    User01
    User02
    User03
    
  • 权限要求:需以具备AD用户删除权限的账号运行脚本
  • 测试建议:首次运行时给Remove-ADUser命令添加-WhatIf参数,验证目标用户匹配逻辑,避免误删
  • 编码问题:若CSV包含中文或特殊字符,需保存为UTF-8编码,读取时可通过Import-Csv -Encoding UTF8指定编码

内容的提问来源于stack exchange,提问作者S.Mahmood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:57:14