Войти

Показать полную графическую версию : PowerShell: импорт данных в AD из файла


Perersmeshnik
19-02-2014, 15:55
Здравствуйте!

Есть одна задачка, для воплощения решения которой в скрипт не хватает знаний. Подскажите, пожалуйста.

В нашей конторке номер телефона закреплен за рабочим местом и равен ему.
Имеется файлик с условным названием office.csv, где только два поля telephoneNumber и physicalDeliveryOfficeName. Эти данные никогда не меняются.
Когда сотрудник переезжает, то у него меняется номер телефона. Новый номер телефона в ручную исправляется телефонистом в AD.
Нужен скрипт, который бы смотрел в AD у пользователя номер телефона и подставлял из файлика соответствующее расположение.

У нас уже используется скрипт по редактированию других полей. Данные берутся из выгрузки кадровой базы.
Скрипт следующий:
#Импортируем всех пользователей
$users = Import-Csv C:\Scripts\Import_Info\users.csv -Header DisplayName,Company,Department,extensionAttribute10,extensionAttribute11,Title,employeeID,displayNam ePrintable | Select-Object -Skip 1
foreach ($user in $users)
{
#Ищем пользователя по ФИО,если в DisplayName формат не ФИО,то изменить на свое или поиск только по Ф
$temp = Get-QADUser -displayName $user.DisplayName
if ($temp.name)
{
$find = [ADSI]"LDAP://$($temp.dn)"
#Проверяем свойства

$user | Get-Member -MemberType NoteProperty | Foreach {
if ($user.($_.Name) -ne $find.($_.Name))
{
#Свойства не совпадают,заменяем из файла
$find.($_.Name) = $user.($_.Name)
$find.SetInfo()
}

}
}
else { Write-Host "Problems with $($user.DisplayName)"}
}

Можно ли модифицировать уже существующий скрипт?
Если первое невозможно или неудобно, то помогите, пожалуйста, с новым скриптом.
Заранее благодарю!

Kazun
19-02-2014, 17:04
$users = Import-Csv C:\Scripts\Import_Info\users.csv
$users | Foreach {
$filter = "(&(telephoneNumber=$($_.telephoneNumber))(!physicalDeliveryOfficeName=$($_.physicalDeliveryOfficeName) ))"
Get-QADUser -LdapFilter $filter | Set-QADUser -Office $_.physicalDeliveryOfficeName
}

Perersmeshnik
20-02-2014, 09:44
Большое спасибо!




© OSzone.net 2001-2012