使用 New-ADComputer 的 -ServicePrincipalNames

使用 New-ADComputer 的 -ServicePrincipalNames

我尝试使用该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'}

我不确定它是否能满足您的多步骤要求,但它可能会帮助您找到解决方案。

相关内容