我有一个CSV文件,其中包含我所有的测试脚本AD用户。 CSV文件包含以下所有信息:
用户已创建。其中一些用户没有 userPrincipalName ,其他所有属性都可以。
我想编写一个脚本,该脚本会将 userPrincipalName 添加到所有用户。
我尝试过的事情:
$CSVusers = import-csv C:\CorpCSV.csv
$Users = $CSVusers.SamAccountName
$Users | % {Get-ADUser $_ | Set-ADUser $_ -userPrincipalName $Users}
我没有收到任何错误,但似乎没有任何反应。该属性在AD上仍为空。 (请参阅附件)。
答案 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
}