[英]Extracting AD records attributes from a group but need manager's email address as well
我有這個腳本,它從安全組中獲取所有成員,然后將一堆他們的屬性提取到文件中。 除拉出經理的電子郵件地址外,它均能正常工作。 奇怪的是,如果我運行此命令直接在PowerShell中獲取經理的電子郵件地址,它將返回他們的電子郵件地址。
這是整個腳本:
Get-ADGroupMember -Identity "ACP Users" -Recursive |
Get-ADUser -Property employeeNumber, SN, Manager, GivenName, Name, Office,
Mobile, emailaddress, Department, Title,
samaccountname, officephone, homephone |
select employeeNumber,SN, GivenName,Manager, Office, Mobile,
emailaddress,Department, Title, samaccountname,
officephone,homephone,enabled |
Select-object @{Name='Empno';Expression={$_."employeeNumber"}},
@{Name='EmployeeName';Expression={$_."GivenName" + ' ' + $_."SN"}},
@{N='Manager';E={(Get-ADUser $_.Manager).Name}},
@{N='ManagerSAM';E={(Get-ADUser $_.Manager).samaccountname}},
@{N='ManagerEmail';E={(Get-ADUser(Get-ADUser $._samaccountname -Properties manager).manager -properties mail).mail}},
@{Name='EmployeeEmail';Expression={$_."emailAddress"}},
@{Name='Office';Expression={$_."Office"}},
@{Name='Title';Expression={$_."Title"}},
@{Name='Department';Expression={$_."Department"}},
enabled |
Export-Csv -Path C:\temp\ACP_Uers.csv -NoTypeInformation
如果我在PowerShell中手動運行此部件,它將手動返回Active Directory用戶記錄,則效果很好:
(Get-ADUser(Get-ADUser chuck.east -Properties manager).manager -Properties mail).mail
作為整個腳本運行時的文件輸出,您可以看到經理的電子郵件為空白,但可以獲取經理和經理的山姆。
"Empno","EmployeeName","Manager","ManagerSAM","ManagerEmail","EmployeeEmail","Office","Title","Department","enabled" "8921","Chuck East","Jim Dean","jim.dean",,"Chuck.East@sb.com","East","BSA","IT","True"
是否知道為什么不提取經理的電子郵件?
@{N='ManagerEmail';E={
(Get-ADUser(
Get-ADUser $._samaccountname - Properties manager).manager -properties mail).mail
}
},
您輸入的錯字是$._samaccountname
。 應該是$_.samaccountname
我不確定您為什么偏離了先前的模式。 這應該工作:
@{N='ManagerEmail';E={
Get-ADUser $_.manager -properties mail).mail
}
},
當然,您可以一次獲得管理器對象,而不是三倍...並且根據Matt的建議,構建對象而不是使用Select-Object,如下所示:(未經測試...在我的手機上)
Get-ADGroupMember -identity “ACP Users” -Recursive | get-aduser -Property employeeNumber,SN, Manager, GivenName, Name,Office, Mobile, emailaddress,Department, Title, samaccountname,officephone,homephone | Foreach-Object {
$manager = Get-ADUser $_ -Properties email
$outputData = [ordered] @{
Empno=$_."employeeNumber"
EmployeeName=$_."GivenName" + ' ' + $_."SN"
Manager=$manager.distinguishedName
#etc for the other properties you want
}
New-object psobject -properties $outputData
} | Export-csv -path C:\temp\ACP_Uers.csv -NoTypeInformation
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.