Update Manager Attribute on AD by Importing CSV file

Keeganz 1 Reputation point
2022-02-08T07:42:55.35+00:00

Hello,

How can I update the reporting manager attribute on AD based on the user's email address / UserPrincipalName instead of the user's name.

I have seen some examples online but still a bit confuse. Appreciate some help. Thank you !

CSV file sample
UserEmail ManagerFullname
john@keyman .com Tim Wang

Active Directory
Active Directory
A set of directory-based technologies included in Windows Server.
6,975 questions
Windows Server PowerShell
Windows Server PowerShell
Windows Server: A family of Microsoft server operating systems that support enterprise-level management, data storage, applications, and communications.PowerShell: A family of Microsoft task automation and configuration management frameworks consisting of a command-line shell and associated scripting language.
5,628 questions
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Clément BETACORNE 2,496 Reputation points
    2022-02-08T10:18:11.197+00:00

    Hello,

    You can do it what you will have to do is:

    1. Search for the manager user based on the email address
    2. Modify the target user manager with the previously user object you get from 1

    Below an example :

    $CSV = Import-Csv -path Example_csv.csv -Delimiter ";"  
    foreach($line in $CSV) {  
        $Manager = Get-ADUser -LDAPFilter "(mail=$($line.UserEmail))"  
        Set-ADUser xxx -Manager $Manager  
    }  
    

    My CSV look like this :
    UserEmail;ManagerFullname
    john@keyman .com;Tim Wang

    Regards,


  2. Clément BETACORNE 2,496 Reputation points
    2022-02-08T13:21:27+00:00
    $CSV = Import-Csv -Path Example_csv.csv -Delimiter ";"
    foreach($line in $CSV) {
        $Manager = Get-ADUser -Filter "Name -like '$($line.ManagerFullname)'"
        $TargetUser = Get-ADUser -Filter "UserPrincipalName -like '$($line.UserEmail)'"
        if(@($Manager).Count -lt 2) {
            Set-ADUSer $TargetUser -Manager $Manager
        } else {
            Write-Output "More than 1 user exist with this name $($line.ManagerFullname)"
        }
    }
    

    I posted it here to have the actual answer


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.