0

我正在尝试将一些参数从 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 文件中现在在这个字段中是主管的全名。

4

1 回答 1

1

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

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

显然,我为您未使用的示例添加了一些属性。还将我的标题名称替换为您的实际标题名称。我也尽量避免在 CSV 的标题中出现空格。需要在 -objectAttributes 中设置非标准属性,如员工 ID 和扩展属性等

于 2014-08-20T15:17:45.380 回答