2015-04-09 3 views
0

Я пытаюсь использовать этот скрипт powershell для обновления пользователей AD. В идеале я буду обновлять кучу атрибутов, но пока я просто пытаюсь заставить его обновить отдел, чтобы я узнал, работает ли он.Как обновить пользователей AD с помощью импорта PowerShell и CSV?

Import-Module ActiveDirectory 

$dataSource=import-csv "c:\ADupdate.csv" 
foreach($dataRecord in $datasource) { 
$employeeID=$dataRecord.employeeID 

# List of attributes to update 
$department=$dataRecord.department 

Get-ADUser -SearchBase "ou=Test,ou=OurUsers,ou=Logins,dc=domain,dc=com" -Identity $employeeID -Properties department | Set-ADUser -Replace @{department=$department} 

} 

ответ

0

Выяснил свою проблему. Вот что я в конечном итоге использовал, если кому-то еще интересно ... хотя я использую множество атрибутов.

Import-Module ActiveDirectory 

$users = Import-Csv -Path c:\update.csv 

foreach ($user in $users) { 
Get-ADUser -Filter "employeeID -eq '$($user.employeeID)'" -Properties * -SearchBase "ou=Test,ou=OurUsers,ou=Logins,dc=domain,dc=com" | 
Set-ADUser -employeeNumber $($user.employeeNumber) -department $($user.department) -title $($user.title) -office $($user.office) -streetAddress $($user.streetAddress) -City $($user.City) -state $($user.state) -postalCode $($user.postalCode) -OfficePhone $($user.OfficePhone) -mobile $($user.mobile) -Fax $($user.Fax) -replace @{"extensionAttribute1"=$user.extensionAttribute1; "extensionAttribute2"=$user.extensionAttribute2; "extensionAttribute3"=$user.extensionAttribute3} 
} 
+0

Не используйте '-Properties *', если вы не собираетесь использовать _all_ свойств. '-Properties" title "," department "," streetAddress "и т. Д. Были бы более эффективными. На самом деле, в вашем случае вам это совсем не нужно, поскольку ваши значения подаются CSV – Matt

Смежные вопросы