Active directory 用于从电子邮件列表中获取员工编号的PowerShell脚本

Active directory 用于从电子邮件列表中获取员工编号的PowerShell脚本,active-directory,Active Directory,我有一个CSV文件中的电子邮件地址列表,我想从中获取导出到新CSV文件中的每一行的员工编号。我尝试了一个powershell脚本,但我有点挣扎,想知道是否有人能给我指出正确的方向 Import-Module ActiveDirectory Import-Csv 'C:\ps\EmailIDIFS.csv' | ForEach { Get-ADUser -Filter "EmailAddress -eq '$($_email)'" -Properties Name, emailAddress,

我有一个CSV文件中的电子邮件地址列表,我想从中获取导出到新CSV文件中的每一行的员工编号。我尝试了一个powershell脚本,但我有点挣扎,想知道是否有人能给我指出正确的方向

Import-Module ActiveDirectory
Import-Csv 'C:\ps\EmailIDIFS.csv' | ForEach {
Get-ADUser -Filter "EmailAddress -eq '$($_email)'" -Properties Name, 
emailAddress, SAMAccountName, employeeNumber | `
Select Name, emailAddress, SamAccountName, employeeNumber | `
Export-CSV 'C:\ps\ADResults.csv' -NoTypeInformation
}
不幸的是,当我运行此命令时,出现以下错误:

Get ADUser:此时无法识别搜索筛选器 C:\Users\jfoote\Nextcloud\Local\scripts\ADEmployeeNumber.ps1:3 char:1 +获取ADUser-Filter“EmailAddress-eq'$($_email)”—属性名称。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:NotSpecified:(:)[Get ADUser],异常 +FullyQualifiedErrorId:ActiveDirectoryServer:8254,Microsoft.ActiveDirectory.Management.Commands.GetADUser


看起来您只是在这行中错过了一个句点:

Get-ADUser -Filter "EmailAddress -eq '$($_email)'" -Properties Name, emailAddress, SAMAccountName, employeeNumber
$\u电子邮件
可能应该是
$\u.email
(假设您的CSV文件中有一个名为“email”的标题)

请注意,
Identity
参数中也可以使用电子邮件地址,这是默认参数。所以你可以这样简化它:

Get-ADUser $_.email -Properties Name, emailAddress, SAMAccountName, employeeNumber
效果完全一样。它只是更容易阅读