我尝试使用该New-ADComputer
-ServicePrincipalNames
参数,但没有成功。
$comp = New-ADComputer -passthru -name "server1" -path "ou=Org2,ou=Org1,dc=mydomain,dc=com" -DNSHostName "server1.mydomain.com" -serviceprincipalnames @{add="HOST\server1","HOST\server1.mydomain.com"}
但这会导致此错误:
New-ADComputer : The name reference is invalid
At line:1 char:10
+ $comp1 = New-ADComputer -name "server1" -path "ou=Org2,ou=Org1,dc=mydomain,dc=com...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (CN=server1,ou=Org2,ou=Org1,dc=mydomain,dc=com:String) [New-ADComputer], ADException
+ FullyQualifiedErrorId : The name reference is invalid,Microsoft.ActiveDirectory.Management.Commands.NewADComputer
如果我删除该-serviceprincipalnames
参数并像这样使用它:
$comp = New-ADComputer -passthru -name "server1" -path "ou=Org2,ou=Org1,dc=mydomain,dc=com" -DNSHostName "server1.mydomain.com"
$comp.serviceprincipalname.add("HOST\server1")
$comp.serviceprincipalname.add("HOST\server1.mydomain.com")
Set-ADComputer -Instance $comp
它运行良好,但这导致了两步过程。
我不想使用两步过程(由于多个 DC 和对象复制的问题),因此想弄清楚为什么该命令不起作用New-ADComputer
。
答案1
我遇到了同样的问题,似乎 new-adcomputer 将 UPN 添加到 serviceprincipalname 字段的方式存在错误。很可能是因为它必须将反斜杠转换为正斜杠,而使用 new-adcomputer 时无法正确执行此操作。
但是,如果您使用带有正斜杠 UPN 的管道 set-adcomputer,它将正确创建您的计算机。
有效的管道 ServicePrincipalNames 广告计算机创建的示例。
new-adcomputer -name 'test-pc01' -SAMAccountName 'test-pc01' -passthru -path "OU=TestComputers,OU=Domain,DC=Domain,DC=local" -DNSHostName 'test-pc01.domain.local' -enabled $true | Set-ADComputer -ServicePrincipalNames @{Add='HOST/test-pc01','TERMSRV/TEST-PC01'}
我不确定它是否能满足您的多步骤要求,但它可能会帮助您找到解决方案。