New-ADUser无法连接名称和域名

时间:2018-03-30 10:53:55

标签: windows powershell

我尝试将userprincipalname创建为用户名和硬编码域名的组合

csv文件:

name,displayname,givenname,surname
dhall,Don Hall,Don,Hall

代码:

Import-csv "c:\output.csv" | ForEach-Object {new-aduser -name $_.name -UserPrincipalName ("{0}@{1}" -f $_.name,"Dev.domain.Net") -DisplayName "$($_.givenname $_.surname)" -givenName $_.givenname -surname $_.surname -path "OU=Workspaces,DC=Dev,DC=domain,DC=Net" -AccountPassword (convertto-securestring passs -asplaintext -force) -Enabled  [System.Convert]::toboolean($true)) -ChangePasswordAtLogon ([system.convert]::ToBoolean($true))}

得到:

At line:1 char:159
+ ...  -f $_.name,"Dev.domain.Net") -DisplayNa
+
Unexpected token '$_' in expression or stateme
    + CategoryInfo          : ParserError: (:)
    + FullyQualifiedErrorId : UnexpectedToken

也试过-UserPrincipalName ([string]::Concat($_.name,"@dev.domain.net")) 但同样的错误

PS C:\>  $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      14393  1944

Windows server 2016

1 个答案:

答案 0 :(得分:1)

不确定导致该错误的原因(目前没有AD控制器进行测试,因此无法验证)但是在我需要多次重用属性的情况下,我倾向于分配它到一个临时变量(使编写代码稍微容易一些,并且不会遇到管道变量更新的问题)。

Import-CSV "c:\output.csv" | ForEach-Object {
    $name = $_.name
    $upn  = "{0}@{1}" -f $name,"dev.domain.net"
    New-ADUser -Name $name -UserPrincipalName $upn #...
}