|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Импорт из CSV в AD с помощью PowerShell |
|
|
PowerShell - [решено] Импорт из CSV в AD с помощью PowerShell
|
Новый участник Сообщения: 29 |
Добрый день!
Такая задача стоит: Из файла .csv (составленного сторонним софтом) импортировать в ActiveDirectory изменения в списоке пользователей, заменяя устаревшую информацию (телефоны, должности) в AD. Новых юзверей создавать не надо. Только менять несоответствующую информацию. Т.е. есть файл типа: В AD есть пользователь Иван Иваныч, с неправильным или пустым email, телефоном и т.п. Нужно, чтобы программа меняла данные в AD, при несовпадении с данными из csv. Долго бьюсь, читал много в интернетах - пока что не получается. Пробовал вот эту тему , подправим под себя (как умел), не помогло. Может кто готовое решение показать? |
|
Отправлено: 17:57, 03-07-2012 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Приведите результат скрипта с тестовым пользователем.
|
Отправлено: 12:47, 20-07-2012 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 29
|
Профиль | Отправить PM | Цитировать Исключеие при вызове "SetInfo" с "0" аргументами: "Для службы каталогов указан недопустимый синтаксис атрибута." C:\modlog.ps1:28 знак:29 + $objuser.SetInfo <<<< () +CategoryInfo : NotSpecified: (:) [],MethodInvocationException +FullyQualifiedErrorId:CatchFromBaseAdapterMethodInvokeTI csv: |
Отправлено: 13:00, 20-07-2012 | #22 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $users = Import-Csv c:\list10.csv -Delimiter ";" $props = $users | Get-Member -MemberType NoteProperty | Select -Expand name foreach ($user in $users) { Try{ $objuser = ([adsisearcher]"(mail=$($user.mail))").FindOne().GetDirectoryEntry() } Catch { continue } $log = New-Object Text.StringBuilder $props | Foreach { $prop = $_.ToLower() $oldprop = $objuser.InvokeGet($prop) if ($user.$prop -ne $oldprop -and $user.$prop) { $objuser.Put("$prop",$user.$prop) $text = "{0} : old {1} new {2} prop {3} - {4}" -f $objuser.name[0],$oldprop,$user.$prop,$prop,(Get-Date) $log.AppendLine($text) | Out-Null } } Try { $objuser.SetInfo() if($log.ToString()) { $log.ToString() | Out-File C:\result.txt -Append } } Catch { $_ } } |
Отправлено: 13:29, 20-07-2012 | #23 |
Новый участник Сообщения: 29
|
Профиль | Отправить PM | Цитировать Всё, теперь код, под мои условия, - ИДЕАЛЕН!!!
ОГРОМНОЕ СПАСИБО! |
Отправлено: 15:45, 20-07-2012 | #24 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
MySQL - Импорт XML в SQL | u_ku_shu | Программирование и базы данных | 8 | 22-07-2012 17:47 | |
PowerShell - PowerShell | bort-747 | Скриптовые языки администрирования Windows | 0 | 10-04-2012 11:29 | |
PowerShell - Импорт пользователей с помощью POwerShell и CSV файла. | Temafet | Скриптовые языки администрирования Windows | 19 | 18-01-2012 16:45 | |
Система - Windows PowerShell | shoot | Программное обеспечение Windows | 13 | 27-11-2011 02:23 | |
Разное - PowerShell | Butunin Klim | Программирование и базы данных | 1 | 31-07-2008 18:39 |
|