I have aa script that outputs user infomration from a collection of security groups. With assistance from this group, I was able to add the users’ Manager and manager email, as well as L2 Manager and L2 Manager email. Well, now I am now needing to include the user’s Department, as well as the L2 managers Department. I am still trying to learn the properties and how to extract that information. Any help is appreciated. I have included the section of the script I am using to extract what is currently working.
$AllMembers = foreach($ADGroup in $ADgroups) {
#Get-ADGroupMember -Identity $group | Select SamAccountName, Name, Manager
Get-ADGroupMember -Identity $ADgroup | Select -ExpandProperty DistinguishedName
}
# Removes group names, duplicate IDs and adds manager
$AllMembersData = $AllMembers | Get-ADObject | ?{$_.objectclass -eq 'user'}
#USerDetails
$Level1Managers = @{}
$Level2Managers = @{}
$NoManagerDetails = @{
Name = 'N/A'
Mail = 'N/A'
}
$Level1Managers.Add('NoManager',$NoManagerDetails)
$Level2Managers.Add('NoManager',$NoManagerDetails)
$UserDetails = foreach ($Member in $AllMembersData) {
$User = Get-ADUser $Member -Properties Mail,Manager
if ($User.Manager) {
$L1Manager = $User.Manager
if ($L1Manager -notin $Level1Managers.Keys) {
$L1ManagerDetails = Get-ADUser $L1Manager -Properties Mail,Manager
$Level1Managers.Add($L1Manager,$L1ManagerDetails)
}
if ($Level1Managers.$($L1Manager).Manager) {
$L2Manager = $Level1Managers.$($L1Manager).Manager
if ($L2Manager -notin $Level2Managers.Keys) {
$L2ManagerDetails = Get-ADUser $L2Manager -Properties Mail,Manager
$Level2Managers.Add($L2manager,$L2ManagerDetails)
}
}
else {
$L2Manager = 'NoManager'
}
}
else {
$L1Manager = 'NoManager'
$L2Manager = 'NoManager'
}
[PSCustomObject] @{
Name = $User.Name
sAMAccountName = $User.SamAccountName
Enabled = $User.Enabled
Mail = $User.Mail
Manager = $Level1Managers.$($L1Manager).Name
ManagerEmail = $Level1Managers.$($L1Manager).Mail
L2Manager = $Level2Managers.$($L2Manager).Name
L2ManagerEmail = $Level2Managers.$($L2Manager).Mail
}
}
$UserDetailsUniq = $UserDetails | Select-Object sAMAccountName, Name, Mail, Enabled, Manager, ManagerEmail, L2Manager, L2ManagerEmail,Department | Sort-Object -Property sAMAccountName -Unique