将用户属性从CSV文件导入Active Directory(更新AD)

时间:2014-08-20 11:53:51

标签: powershell import active-directory quest

我正在尝试将csv文件中的一些参数导入AD。我希望通过电子邮件匹配数据。我正在使用Quest ActiveRoles Management Shell。

Import-Csv c:\Test.csv |ForEach-Object {
Set-QADUser 'ou=User,ou=Accounts,ou=PL,dc=test,dc=com'  
if(($_.E-mail Address)=mail){ $_.HR Department Code -department 
$_.HR Department Code -telephoneNumber $_.Reports to L1 Formal Name -manager}
else
(Write-Host 'ERROR, User not present in AD')
}

这个循环有什么问题?是否可以使用这些白色空间,例如"人力资源部门代码" ,我尝试用变量替换它,但它不起作用。我用这个想法来写这个。我正在使用$ _。将它与来自csv

的列/ att名称相匹配

http://dmitrysotnikov.wordpress.com/2008/10/03/update-active-directory-user-accounts-from-csv-file/

**更新

我目前正在使用的代码:

Import-Csv 'C:\Test_Peoplesoft.csv' | foreach-object{set-qaduser -mail $_.'E-mail Address' -Department $_.'HR Department Code'  -telephoneNumber $_.'HR Department Code'}

现在没有任何事情发生,它只是开始而且永不停止,看起来没有任何反应。 我已经跳过了管理员字段,因为必须有一个登录名,而我的csv文件现在是这个字段的主管全名。

1 个答案:

答案 0 :(得分:1)

我不认为您的if语句实际上是在比较您的csv电子邮件和您的AD电子邮件。只需将电子邮件用作身份参数:

  Import-Csv $file | foreach-object{set-qaduser $_.email -Department $_.department -Manager $_.manager -Title $_.title -ObjectAttributes @{employeeID=($_.employeeID)}}

显然,我为您未使用的示例添加了一些属性。还用我的实际标题名称替换我的标题名称。我还尝试在CSV中避免使用标题中的空格。需要在-objectAttributes

中设置无标准属性,如员工ID和扩展属性等