Skip to content

Instantly share code, notes, and snippets.

@terrytrent
Created March 11, 2016 17:43
Show Gist options
  • Save terrytrent/c6da9436d531d261f51f to your computer and use it in GitHub Desktop.
Save terrytrent/c6da9436d531d261f51f to your computer and use it in GitHub Desktop.
$adPath = 'LDAP://DC=contoso,DC=msft'
$objDomain = New-Object -TypeName System.DirectoryServices.DirectoryEntry -ArgumentList ($adPath)
$CSV = Import-Csv -Path file.csv
foreach($record in $CSV)
{
$employeeFromRecord = $($record.employee).trim()
$managerFromRecord = $($record.manager).trim()
$ObjSearchEmployee = New-Object -TypeName System.DirectoryServices.DirectorySearcher -ArgumentList ($objDomain)
$ObjSearchEmployee.Filter = "(&(objectCategory=person)(objectClass=user)(employeeID=$employeeFromRecord))"
$allSearchResultEmployee = $ObjSearchEmployee.FindAll()
$ObjSearchManager = New-Object -TypeName System.DirectoryServices.DirectorySearcher -ArgumentList ($objDomain)
$ObjSearchManager.Filter = "(&(objectCategory=person)(objectClass=user)(sAMAccountname=$managerFromRecord))"
$userManager = $ObjSearchManager.FindAll()
$userManagerDN = $userManager.Properties.distinguishedname
$userManagerDisplayname = $userManager.Properties.displayname
foreach($result in $allSearchResultEmployee)
{
$user = [adsi]$result.path
$userDisplayName = $user.displayName
$user.put('manager',"$userManagerDN")
$user.SetInfo()
Write-Host -Object "$userManagerDisplayname is now the manager of $userDisplayName"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment