【发布时间】:2014-08-11 20:44:18
【问题描述】:
我正在尝试使用我的工资系统中的信息更新 AD 属性。我有一个很好的员工信息转储,并且可以更新大部分内容,但是我遇到了一些小问题,希望有人比我能提供的帮助更好地使用 Powershell。
--- UpdateInfo.ps1 ---
Import-Module ActiveDirectory
$Users=Import-Csv C:\info_update.csv
foreach($u in $Users)
{
Get-ADUser -Filter "employeeID -eq '$($u.employeeID)'" -properties * | set-aduser -replace @{title="$($u.title)";extensionAttribute1="$($u.title)";givenName="$($u.givenName)";initials="$($u.initials)";middleName="$($u.middleName)";sn="$($u.sn)";physicalDeliveryOfficeName="$($u.physicalDeliveryOfficeName)";streetAddress="$($u.streetAddress)";l="$($u.l)";st="$($u.st)";co="$($u.co)";countryCode="$($u.countryCode)";c="$($u.c)";postalCode="$($u.postalCode)";department="$($u.department)"}
}
--- info_update.csv ---
employeeID,givenName,initials,middleName,sn,name,title,physicalDeliveryOfficeName,streetAddress,l,st,co,countryCode,c,postalCode,department,manager
"111","Smith","Q","Quincy","John","Smith, John Q.","Tech II","Springfield, IL","800 E Monroe St.","Springfield","IL","United States","840","US","62701","IT","540"
两个问题:
- 我无法更新“名称”字段。我以为是空间的原因,但physicaldeliveryofficename也有空间......而且工作正常。
- 我需要查找经理 ID(最后一列),返回经理的 DN,并使用它来更新经理属性。
如果有人能提供帮助,我将不胜感激。我觉得我真的很接近,但我忽略了一些东西。
谢谢!
---更新--- 感谢@TheMadTechnician
这是最终答案。
Import-Module ActiveDirectory
$Users=Import-Csv C:\Job_titles.csv
foreach($u in $Users)
{
$Mgr = Get-ADUser -Filter "employeeID -eq '$($u.manager)'" | Select -ExpandProperty DistinguishedName
Get-ADUser -Filter "employeeID -eq '$($u.employeeID)'" -properties * | set-aduser -replace @{title="$($u.title)";extensionAttribute1="$($u.title)";givenName="$($u.givenName)";displayName="$($u.name)";initials="$($u.initials)";middleName="$($u.middleName)";sn="$($u.sn)";physicalDeliveryOfficeName="$($u.physicalDeliveryOfficeName)";streetAddress="$($u.streetAddress)";l="$($u.l)";st="$($u.st)";co="$($u.co)";countryCode="$($u.countryCode)";c="$($u.c)";postalCode="$($u.postalCode)";department="$($u.department)";manager="$Mgr"} -PassThru | Rename-ADObject -NewName "$($u.name)"
}
【问题讨论】:
-
您尝试设置管理器时遇到什么错误?根据文档,将您的 AD 用户对象传递给 Set-ADUser -Manager "Bob Smith" 应该没问题。
-
该记录已将经理列为“540”。除非那个人的父母有一种非常病态的幽默感,否则我怀疑那是他的名字。是否有某个地方将该号码与名称相关联的列表?
-
经理字段列出了经理的员工ID号。对于该部分,我需要查找该经理员工 ID 的 DN,并将 DN 注入到用户的更新中。
标签: powershell csv active-directory