如何用PowerShell结合Azure AD/AD从CSV邮箱填充员工ID列
用PowerShell通过邮箱填充CSV的Employee ID列
一、通过Azure AD填充Employee ID
前置要求
- 先安装Azure AD PowerShell模块:
Install-Module -Name AzureAD -Force -AllowClobber - 连接到Azure AD:
Connect-AzureAD
完整脚本
# 替换为你的CSV文件路径 $csvInputPath = "C:\data\your_source.csv" $csvOutputPath = "C:\data\filled_employees.csv" # 导入原始CSV数据 $csvData = Import-Csv -Path $csvInputPath # 遍历每一行数据,查询并填充EmployeeID foreach ($row in $csvData) { # 跳过空邮箱的行 if ([string]::IsNullOrWhiteSpace($row.OwnerEmail)) { $row.EmployeeID = "无OwnerEmail" continue } # 通过用户邮箱查询Azure AD用户 $adUser = Get-AzureADUser -Filter "UserPrincipalName eq '$($row.OwnerEmail)'" if ($adUser) { # 填充EmployeeID,注意Azure AD中属性名是EmployeeId(大小写敏感) $row.EmployeeID = $adUser.EmployeeId } else { # 未找到匹配用户时标记 $row.EmployeeID = "未找到匹配用户" } } # 导出填充后的CSV,-NoTypeInformation避免生成多余的类型头 $csvData | Export-Csv -Path $csvOutputPath -NoTypeInformation -Encoding UTF8
额外说明
- 如果你的
OwnerEmail对应的是用户的代理邮箱(而非主UserPrincipalName),可以把Filter改成:$adUser = Get-AzureADUser -Filter "ProxyAddresses eq 'smtp:$($row.OwnerEmail)'" - 确保执行脚本的账号拥有Azure AD用户的读取权限
二、通过本地Active Directory填充Employee ID
前置要求
- 确保已安装AD PowerShell模块(域控制器默认自带,普通机器可通过RSAT工具安装):
Install-WindowsFeature RSAT-AD-PowerShell - 执行脚本的机器需加入域,或能直接连接到域控制器
完整脚本
# 替换为你的CSV文件路径 $csvInputPath = "C:\data\your_source.csv" $csvOutputPath = "C:\data\filled_employees.csv" # 导入原始CSV数据 $csvData = Import-Csv -Path $csvInputPath # 遍历每一行数据,查询并填充EmployeeID foreach ($row in $csvData) { # 跳过空邮箱的行 if ([string]::IsNullOrWhiteSpace($row.OwnerEmail)) { $row.EmployeeID = "无OwnerEmail" continue } # 通过邮箱查询AD用户,指定返回EmployeeID属性 $adUser = Get-ADUser -Filter "mail -eq '$($row.OwnerEmail)'" -Properties EmployeeID if ($adUser) { $row.EmployeeID = $adUser.EmployeeID } else { # 未找到匹配用户时标记 $row.EmployeeID = "未找到匹配用户" } } # 导出填充后的CSV $csvData | Export-Csv -Path $csvOutputPath -NoTypeInformation -Encoding UTF8
额外说明
- 如果AD中用户邮箱存储在
UserPrincipalName属性而非mail,修改Filter为:$adUser = Get-ADUser -Filter "UserPrincipalName -eq '$($row.OwnerEmail)'" -Properties EmployeeID
内容的提问来源于stack exchange,提问作者CoCoBl
相关产品推荐
相关产品推荐

