使用脚本添加userPrincipalName

时间:2018-12-04 13:53:07

标签: typescript powershell active-directory

我有一个CSV文件,其中包含我所有的测试脚本AD用户。 CSV文件包含以下所有信息:

  • ID号
  • 名字
  • 姓氏
  • SamAccountName
  • OU路径

用户已创建。其中一些用户没有 userPrincipalName ,其他所有属性都可以。

我想编写一个脚本,该脚本会将 userPrincipalName 添加到所有用户。

我尝试过的事情:

$CSVusers = import-csv C:\CorpCSV.csv
$Users = $CSVusers.SamAccountName
$Users | % {Get-ADUser $_ | Set-ADUser $_ -userPrincipalName $Users}

我没有收到任何错误,但似乎没有任何反应。该属性在AD上仍为空。 (请参阅附件)。

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要指定所需的UserPrincipleName。
看来这不是您输入的CSV文件的一部分。
通常,UserPrincipleName为sAMAccountName@DnsDomainName

如果用户都在您登录的同一域中,则可以使用$env:USERDNSDOMAIN[System.Net.Dns]::GetHostEntry($env:COMPUTERNAME).HostName

构造域名部分。
$CSVusers = Import-Csv C:\PollogenCSV.csv
# get an array of just the sAMAccountNames
$Users = $CSVusers.SamAccountName
$Domain = $env:USERDNSDOMAIN  # or use [System.Net.Dns]::GetHostEntry($env:COMPUTERNAME).HostName
$Users | ForEach-Object { 
    # construct the UserPrincipalName
    $upn = "{0}@{1}" -f $_, $Domain
    Get-ADUser $_ | Set-ADUser -UserPrincipalName $upn
}