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

使用PowerShell执行Unsecure Join失败,请求技术排查帮助

解决Unsecured Join域时Add-Computer的参数错误问题

从你提供的错误日志和命令来看,核心问题是**Add-Computer的参数组合冲突**,导致系统返回0x57(无效参数)错误。具体来说,日志里的NetpJoinDomainOnDs: Machine password and the user account are passed. Error out.明确说明:你同时传递了机器账户密码和用户凭证,这两个参数在UnsecuredJoin场景下是互斥的。

下面给你两个可行的解决思路,对应不同的参数组合方式:

方案1:使用预创建计算机账户的凭证(带$后缀)

AD中计算机账户的SAM账户名默认是计算机名+$(比如你的EC2AMAZ-P9HUK50$),而你之前创建PSCredential时用的是不带$的名称,这也会导致凭证匹配失败。修正命令如下:

# 确认主机名匹配
if ((& hostname) -ne 'EC2AMAZ-P9HUK50') { throw "Unexpected hostname!" }

# 使用带$的计算机账户名创建凭证
$acctName = 'EC2AMAZ-P9HUK50$'
$password = 'FOOBARNON'
$passwordSS = ConvertTo-SecureString -String $password -AsPlainText -Force
$passCred = New-Object PSCredential($acctName, $passwordSS)

# 仅使用UnsecuredJoin选项,去掉PasswordPass(避免参数冲突)
Add-Computer -DomainName "sub.example.local" -Options UnsecuredJoin -Credential $passCred

方案2:直接传递机器账户密码,不使用Credential参数

这种方式更贴近你成功的netdom命令逻辑,利用PasswordPass选项传递预创建账户的密码,不需要额外指定凭证:

# 确认主机名匹配
if ((& hostname) -ne 'EC2AMAZ-P9HUK50') { throw "Unexpected hostname!" }

$password = 'FOOBARNON'
$passwordSS = ConvertTo-SecureString -String $password -AsPlainText -Force

# 组合UnsecuredJoin和PasswordPass选项,用AccountPassword传递密码
Add-Computer -DomainName "sub.example.local" -Options UnsecuredJoin,PasswordPass -AccountPassword $passwordSS

额外验证点

在执行命令前,再确认以下几点:

  • 预创建的AD计算机账户状态为已启用,密码与你使用的FOOBARNON完全一致
  • 待加入域的计算机当前未加入任何域,处于WORKGROUP工作组
  • 网络连通性正常,能访问域控制器sub.example.local

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:12:41