使用AzureAD(或Active Directory)填充CSV文件中的Employee Id列



我有一个简单的4列CSV文件。我试图使用OwnerEmail列和Azure AD(或On-Prem Active Directory)使用PowerShell填充员工ID列。

原始:

tbody> <<tr>
员工ID部门编号OwnerEmail成本
074674test@conso.com4353.345
456246tester@conso.com3452.453

在网上搜索答案时,首先将任务分解成更小的任务,然后再搜索这些单独的任务。

您已经知道如何向集合中添加新列,所以现在需要:

  1. 循环遍历集合中的项
  2. 通过email地址获取AD账号并读取employeeID
  3. 导出数据到CSV

如果搜索"powershell"再加上这些,你会发现很多答案。

但是我将帮助您完成步骤1和2,它们看起来像这样(用于从本地广告中读取):

$employees = $CSVImport | Select-Object "employeeID",*
foreach ($employee in $employees) {
$user = Get-ADUser -Filter "EmailAddress -eq '$($employee.OwnerEmail)'" -Properties employeeID
$employee.employeeID = $user.employeeID
}

然后您可以使用Export-Csv$users保存回文件。

如果找不到用户帐户,您可能需要一些错误处理。

使用已计算的属性通过再次查询ad来插入值:

$CSVImport | 
Select-Object @{
Name = "employeeID"
Expression = { 
try
{
(Get-ADUser -Filter "EmailAddress -eq '$($_.OwnerEmail)'" -Properties 'EmployeeID').EmployeeID
}
catch 
{
'Not Found'
}
}
}, *

由于AD cmdlet是错误终止默认情况下,我把它放在一个try{} catch{}语句来处理错误,如果用户没有找到他们的电子邮件。

相关内容

  • 没有找到相关文章

最新更新