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)"}
}
Можно ли модифицировать уже существующий скрипт?
Если первое невозможно или неудобно, то помогите, пожалуйста, с новым скриптом.
Заранее благодарю!
Есть одна задачка, для воплощения решения которой в скрипт не хватает знаний. Подскажите, пожалуйста.
В нашей конторке номер телефона закреплен за рабочим местом и равен ему.
Имеется файлик с условным названием 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)"}
}
Можно ли модифицировать уже существующий скрипт?
Если первое невозможно или неудобно, то помогите, пожалуйста, с новым скриптом.
Заранее благодарю!