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

使用PowerShell处理CSV时,如何忽略不存在的数据并继续执行?

解决PowerShell执行AD组添加时遇错误中断的问题

问题分析

你的脚本存在两个关键问题:

  1. 循环变量使用错误:Foreach($EmployeeID in $Snumber) 中,你引用了整个CSV数组的$Snumber.EmployeeID,这会导致每次循环都把所有员工ID传给Add-ADGroupMember,而非当前循环的单个员工ID。
  2. 错误处理参数错误:你使用的$ErrorAction = 'continue'是错误的,PowerShell全局错误偏好设置的变量名是$ErrorActionPreference,而非$ErrorAction;另外,也可以直接给目标cmdlet指定-ErrorAction参数来控制单条命令的错误行为。

修正后的脚本

方法1:给Add-ADGroupMember单独指定错误行为

这种方法更灵活,仅针对当前命令生效:

$Snumber = Import-Csv c:\temp\Snumber.csv
Foreach($EmployeeID in $Snumber)
{
    # 使用当前循环的员工ID,添加-ErrorAction Continue确保报错后继续执行
    Add-ADGroupMember -Identity "Group" -Members $EmployeeID.EmployeeID -ErrorAction Continue
}

方法2:设置全局错误偏好

如果希望整个脚本内所有命令都遇到错误后继续执行,可以设置全局变量:

# 设置全局错误行为为继续执行(会显示错误信息)
$ErrorActionPreference = 'Continue'
$Snumber = Import-Csv c:\temp\Snumber.csv
Foreach($EmployeeID in $Snumber)
{
    Add-ADGroupMember -Identity "Group" -Members $EmployeeID.EmployeeID
}

说明

  • -ErrorAction Continue:命令执行出错时,会显示错误信息,但不会中断脚本,继续执行后续循环。
  • 如果你想完全隐藏错误信息,可以把Continue换成SilentlyContinue,但仍会继续执行后续操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:12:52