导入电子邮件地址并更新用户的经理



我有一个包含2列的csv文件。第一个是AD用户的电子邮件,第二个是AD客户经理的电子邮件。我需要一个脚本来读取csv文件,并根据csv中经理的电子邮件更新AD中的用户经理。

非常感谢您的帮助!

因此,您要做的第一件事就是列出要采取的步骤。

  1. 读取并使用CSV
  2. 获取AD用户
  3. 获取经理
  4. 设置管理器
  5. 合并脚本
  1. 谷歌搜索"powershell csv"。您将找到"导入CSV"命令。然后你必须测试一下你能用CSV做些什么。

  2. 谷歌搜索"获取广告用户"。您将找到Get-ADUser命令。

  3. 管理器也必须存在于AD中,并且将使用与步骤2中相同的命令。

  4. 谷歌搜索"集合经理广告"。您会发现使用Set ADUser命令是可能的。

  5. 现在你必须结合并使用一些逻辑来将各个部分放在一起

有很多不同的方法来实现它,但这里有一个简单的例子:

$csvFile = Import-CSV -Path "C:Tempad_managers.csv" -Delimiter ";" # Check what delimiter you use comma or semicolon
foreach($user in $csvFile){
$usersEmail = $user.userEmail # Note that userEmail is the column header name
$managersEmail = $user.managerEmail # Note that managerEmail is the column header name
if($usersEmail -and $managersEmail){
$adUser = $false
$adManager = $false
try{
$adUser = Get-ADUser -Filter {Emailaddress -eq $usersEmail} -Properties manager
$adManager = Get-ADUser -Filter {Emailaddress -eq $managersEmail}
}catch{
Write-Host "Error while searching for user, error: $_" -ForegroundColor Red
break
}
if($adUser -and $adManager){
try{
Write-Host "Setting manager: $($adManager.Name) for user: $($adManager.Name)"
Set-ADUser -Identity $adUser.objectGUID.Guid -Manager $adManager.objectGuid.Guid -Confirm:$false -WhatIf # What if will show what it would do without actually doing it
}catch{
Write-Host "Error while setting manager: $($adManager.Name) for user: $($adManager.Name), error: $_" -ForegroundColor Red
break    
}
}else{
Write-Host "Not all mandatory values found. User: $usersEmail. Manager: $managersEmail." -ForegroundColor Yellow
}
}
}

请务必尝试并理解每个部分,并在谷歌上进行额外的逻辑和解释!

最新更新