我有一个powershell脚本,它基于CSV文件构建活动目录用户。它的属性定义如下:
-GivenName $_.FirstName `
-Surname $_.LastName `
-SamAccountName $_.UserName `我希望添加DisplayName属性,以便将$.FirstName和$.LastName与中间的空格组合起来。我试过:
-DisplayName $_.FirstName + " " + $_.LastName `但是上面的方法不起作用,它给出了一个错误。
有人能好心地建议我如何从CSV数据中用名字和姓氏来定义DisplayName属性吗?
谢谢
发布于 2020-03-16 22:51:08
当PowerShell看参数传递给命令时,每个单个令牌被解释为单独的输入参数。
将字符串连接包装在子表达式($())中,以将其作为单个字符串传递:
Set-ADUser ... -DisplayName $($_.FirstName + " " + $_.LastName)或者使用可扩展的字符串:
Set-ADUser ... -DisplayName "$($_.FirstName) $($_.LastName)"作为戴利笔记,您可能希望使用名为“溅”的技术来组织参数参数,而不是将它们拆分成多行:
Import-Csv users.csv |ForEach-Object {
$parameterArgs = @{
Name = $_.Name
SamAccountName = $_.UserName
GivenName = $_.FirstName
Surname = $_.LastName
DisplayName = $_.FirstName,$_.LastName -join ' '
}
# pass our parameter arguments by "@splatting"
New-ADUser @parameterArgs
}https://stackoverflow.com/questions/60714158
复制相似问题