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

通过本地CSV批量创建AD用户并传递至远程服务器的问题

解决本地CSV远程创建AD用户的问题

报错原因

你遇到的Supply values for the following parameters: Name:错误,根源是代码里的两个明确问题:

  • 远程脚本块内无法访问本地会话的$User变量,脚本里的-Description $User.EmpolyID会导致该参数值为空,进而引发New-ADUser参数校验失败。
  • AccountPassword参数的ConvertTo-SecureString命令未用括号包裹,PowerShell会将其解析为多个独立参数,导致密码参数无效。

修正后的代码

$Users = Import-CSV E:\example.csv
$Session = New-PSSession -Computername server1 -Credential user@domain.com

# 可选优化:如果CSV条目多,先把文件复制到远程服务器再批量处理,减少远程调用开销
# Copy-Item -Path E:\example.csv -Destination "C:\temp\" -ToSession $Session

foreach ($User in $Users) {
    Invoke-Command -Session $Session -Scriptblock {
        Param($FirstName, $LastName, $EmpolyID, $OU, $GroupName)
        # 先生成安全字符串密码,避免参数解析错误
        $securePassword = ConvertTo-SecureString "changpassfirst" -AsPlainText -Force
        
        New-ADUser `
            -Name ($FirstName + $LastName) `
            -DisplayName ($FirstName + $LastName) `
            -Surname $LastName `
            -GivenName $FirstName `
            -SamAccountName $EmpolyID `
            -Path $OU `
            -Description $EmpolyID `
            -Enable $true `
            -ChangePasswordAtLogon $true `
            -AccountPassword $securePassword
        
        Add-ADGroupMember -Identity $GroupName -Members $EmpolyID
    } -ArgumentList $User.FirstName, $User.LastName, $User.EmpolyID, $User.OU, $User.GroupName
}

# 使用完会话后关闭
Remove-PSSession $Session

核心修正点

  • 把-Description $User.EmpolyID替换为-Description $EmpolyID,改用脚本块内部的参数变量,避免访问本地会话的$User。
  • 将ConvertTo-SecureString命令的结果存入变量(或直接用括号(ConvertTo-SecureString ...)包裹),确保AccountPassword参数拿到正确的安全字符串值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:50:12