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



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

Import-Module ActiveDirectory
Import-Csv 'C:psEmailIDIFS.csv' | ForEach {
Get-ADUser -Filter "EmailAddress -eq '$($_email)'" -Properties Name, 
emailAddress, SAMAccountName, employeeNumber | `
Select Name, emailAddress, SamAccountName, employeeNumber | `
Export-CSV 'C:psADResults.csv' -NoTypeInformation
}

不幸的是,当我运行它时,我收到以下错误:

Get-ADUser:无法识别搜索过滤器 C:\Users\jfoote\Nextcloud\Local\scripts\ADEmployeeNumber.ps1:3 char:1 + 获取 ADUser -过滤器 "电子邮件地址 -eq '$($_email('" -属性名称, ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + 类别信息 : 未指定: (:)[Get-ADUser], ADException + FullQualifiedErrorId : ActiveDirectoryServer:8254,Microsoft.ActiveDirectory.Management.Command.GetADUser

看起来您只是在这一行中缺少一个句点:

Get-ADUser -Filter "EmailAddress -eq '$($_email)'" -Properties Name, emailAddress, SAMAccountName, employeeNumber

$_email可能应该$_.email(假设您的 CSV 文件中有一个名为"电子邮件"的标题(。

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

Get-ADUser $_.email -Properties Name, emailAddress, SAMAccountName, employeeNumber

效果完全一样。它只是更容易阅读。

最新更新