我有一个CSV文件,包含我所有的测试脚本AD用户。CSV文件包含以下所有信息:
用户是被创建的。其中一些用户没有userPrincipalName,所有其他属性都很好。
我想编写一个脚本,它将向所有用户添加userPrincipalName。
我试过的是:
$CSVusers = import-csv C:\CorpCSV.csv
$Users = $CSVusers.SamAccountName
$Users | % {Get-ADUser $_ | Set-ADUser $_ -userPrincipalName $Users}我没有发现任何错误,但似乎什么也没发生。AD上的属性仍然是空的。(见附件)。

发布于 2018-12-04 15:01:08
您需要指定所需的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
}https://stackoverflow.com/questions/53614493
复制相似问题