Powershell拆分显示名称并使用它来填充名字

时间:2016-08-25 17:36:21

标签: powershell powershell-v2.0 powershell-v3.0

我的代码需要一些帮助。我在OU中有用户,他们有显示名称属性但是名字/姓氏是空的。我试图使用PowerShell填充它们。这是我到目前为止所得到的:

get-aduser -filter * -SearchBase 'OU=FTE,OU=GLS,OU=Staff,DC=domain,DC=com’ | % {$_.name –split " "}

这给了我John Doe的输出

约翰 DOE

现在我正在尝试使用此设置这些值,但它失败了:

$SplitName = $_.name –split " "

get-aduser -filter * -SearchBase 'OU=FTE,OU=GLS,OU=Staff,DC=domain,DC=com’ | % {Set-ADUser -Identity $_ -GivenName $SplitName[0] -Surname $SplitName[1]}

我认为我没有正确使用拆分,但我不确定。

2 个答案:

答案 0 :(得分:1)

如果没有AD,我就不明白为什么这不起作用:

get-aduser -filter * -SearchBase 'OU=FTE,OU=GLS,OU=Staff,DC=domain,DC=com’ | % {
       $splitName = $_.name –split " "
       Set-ADUser -Identity $_ -GivenName $SplitName[0] -Surname $SplitName[1]
    }

答案 1 :(得分:0)

你总是可以使用一个范围,也可以将中间的最后一个组合成一个姓氏。就像John Van Smith一样,$ var [1 ..- 1] #VanSmith。

PS> Get-ADUser -SearchBase 'OU=FTE,OU=GLS,OU=Staff,DC=domain,DC=com' -Filter * | % {
     $dnSplit = $_.Name -split " "; Set-ADUser -Identity $_ -GivenName $dnSplit[0] -Surname $($dnSplit[1..-1] -join "")
}