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

通过PowerShell创建AD用户:复制命令可行但脚本执行失败求助

解决PowerShell脚本创建AD用户失败的问题

兄弟,从你贴的代码片段来看,直接执行命令能成但脚本跑失败,核心是几个典型的PowerShell远程执行和语法坑,我帮你捋清楚并修正:

问题根源拆解

  1. 远程会话用错了方式
    你用的Enter-PSSession是交互式远程会话,适合手动敲命令,但脚本里用它的话,后续的变量定义、创建用户命令其实都是在本地执行的,根本没跑到DC服务器上,这自然创建不了用户。脚本里远程执行命令得用Invoke-Command。

  2. 本地变量没传到远程环境
    你在本地定义的$name、$surname这些变量,默认不会自动同步到远程会话里,远程脚本块根本拿不到这些值,创建命令当然会报错。

  3. 明显的拼写错误
    你贴的创建命令里-Surname "$surnam..."少了最后一个字母e,写成$surnam了,这也是语法错误的一环。

修正后的完整脚本

直接用这个脚本就能正常跑了,我把所有坑都填上了:

# 本地获取用户输入
$name = Read-Host "Vorname?"
$surname = Read-Host "Nachname?"
# 这里可以改成让用户输入密码更安全,比如:$plainPassword = Read-Host "Passwort?" -AsSecureString
$plainPassword = "pa$$w0rd"

# 远程连接DC并创建AD用户
Invoke-Command -ComputerName DC -Credential dd\administrator -ScriptBlock {
    # 定义脚本块接收的参数
    param($givenName, $surName, $plainPass)
    
    # 把明文密码转成安全字符串
    $securePassword = $plainPass | ConvertTo-SecureString -AsPlainText -Force
    
    # 创建AD用户(记得根据你的AD架构调整-Path参数)
    New-ADUser -Name "$surName $givenName" `
               -GivenName $givenName `
               -Surname $surName `
               -AccountPassword $securePassword `
               -Enabled $true `
               -Path "OU=Benutzer,DC=dd,DC=local"
} -ArgumentList $name, $surname, $plainPassword

Write-Host "AD用户创建流程执行完毕,请检查DC上的用户是否存在!"

额外注意事项

  • 确保运行脚本的电脑已经安装了RSAT-AD-PowerShell模块(Windows 10/11可以在"可选功能"里安装)
  • 密码里的$$在PowerShell里会被解析成单个$,如果你的实际密码是pa$w0rd,那脚本里要写成"pa$w0rd"`(用反引号转义)
  • -Path参数一定要对应你的AD组织单元路径,不然用户会被创建到默认的CN=Users容器里,根据你的实际情况调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:45:06