我试图从包含电子邮件地址和职务的CSV文件更新Active Directory中的职务,但我遇到了一个问题,因为CSV文件不包含用户的“-Identity”,只包含他们的电子邮件地址。
这是我目前得到的:
$csv = Import-Csv -Path "C:\Folder\JobTitles.csv"
ForEach ($item In $csv)
{
Set-ADUser -EmailAddress $item.Email -Title $item.Title
}
我遇到的问题是,当我运行这个命令时,它提示我输入每个用户的身份。我知道我应该用这个来代替:
Set-ADUser -Identity $item.SamAccountName -Title $item.Title
但这有个问题。在我们的广告中,一半的员工“用户登录名(Windows 2000之前)”使用“名首字母姓”格式,一半使用“名.姓”格式。从我在测试中看到的情况来看,这是-Identity正在从/查找的字段,但该信息不是我的CSV文件的一部分。
我的问题是,有没有一种方法可以让“Set-ADUser”只使用电子邮件地址作为唯一的用户标识符/身份?
谢谢!尼克
2条答案
按热度按时间fivyi3re1#
不完全是有一种低效的方法,使用电子邮件帐户名使用
Get-ADUser
获取用户对象,然后使用Set-ADUser
修改对象:我说“低效”是因为
-Filter
ing并不是真正的高性能-但是如果用户对象已经设置了电子邮件地址,它就可以工作。chy5wohz2#
mail
在AD中不是唯一属性,所以你应该小心使用它。