|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Изменение атрибутов всех пользователей AD из exel |
|
PowerShell - Изменение атрибутов всех пользователей AD из exel
|
Новый участник Сообщения: 26 |
Имеется домен и 4000 пользователей (в домен входят пользователи нескольких дочерних организаций), поставили задачу у всех пользователей изменить атрибуты (если они стоят) и добавить (если их нету) такие как company,department,title,telephoneNumber,mail. Данные выгружают из 1C отдел кадров в Exel файле, типа Организация,ФИО,Должность,Отдел,Номер телефона,Электронный адрес.
сделал из этого файлика csv вида: company,department,title,displayName,telephoneNumber,mail ООО Компания,Кадры,Специалист,Петров Иван,+79121111111,petrov@company.ru Подскажите как можно решить проблему. Помогите с PowerShell т.к. не очень знаю его, но так полагаю что это единственный нормальный способ это сделать. Спасибо. |
|
Отправлено: 15:43, 05-03-2014 |
Ветеран Сообщения: 12417
|
Профиль | Отправить PM | Цитировать можно попробовать dsmod user или Set-ADUser подсунуть ваш csv.
я когда давным давно делал... но немного по другому. не очень красиво, но зато получилось: я написал команду в Excel для dsmod user, где в полях стояли ваши значения - а потом просто растянул команду на 70 пользователей ) Далее копи-паст всех команд и запуск в командной строке. |
------- Отправлено: 15:53, 05-03-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Пробовал вот таким вот скриптом но не получаеться
Import-Module ActiveDirectory #Import CSV $csv = @() $csv = Import-Csv -Path "sample.csv" #Get Domain Base $searchbase = Get-ADDomain | ForEach { $_.DistinguishedName } #Loop through all items in the CSV ForEach ($item In $csv) { #Check if the OU exists $check = [ADSI]::Exists("LDAP://$($searchbase)") If ($check -eq $True) { Try { #Check if the User already exists $Name=$item.Name $user=Get-ADUser -Filter {Name -eq $Name} $user.telephoneNumber=$item.telephoneNumber $user.mail=$item.mail Set-ADUser -Instance $user Write-Host "User $($user.Name) changed!" } Catch { Write-Host "User $($item.Name) is not existed!" } } Else { Write-Host "Target OU can't be found! Operation skipped!" } |
Отправлено: 16:03, 05-03-2014 | #3 |
Ветеран Сообщения: 2721
|
Профиль | Отправить PM | Цитировать Не берусь предоставить готовое решение - не на чем отладить, да и некогда. ИМХО, надо задачу ставить по другому: у Вас есть Excel-файл, не надо его во что-то преобразовывать, напишите для него макрос. И PowerShell тут не при чём. Как пример прикрепляю Excel - файл, который использую. Один макрос создаёт учетные записи в домене по данным на одном листе, второй - меняет некоторые атрибуты учетки из списка на другом листе. Это не готовое решение для Вашего случая, это направление, где его можно найти.
|
------- Отправлено: 18:07, 07-03-2014 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Изменение реестра у всех пользователей | Сержа | Microsoft Windows NT/2000/2003 | 3 | 26-08-2013 04:32 | |
PowerShell - [решено] Изменение имени пользователей в AD | ratibor79 | Скриптовые языки администрирования Windows | 9 | 16-02-2013 16:46 | |
Массовое изменение настроек пользователей в AD Win 2003 | Fenia | Microsoft Windows NT/2000/2003 | 5 | 25-06-2012 17:01 | |
CMD/BAT - [решено] изменение атрибутов папки | sov44 | Скриптовые языки администрирования Windows | 5 | 01-09-2011 18:38 | |
Изменение атрибутов файла .doc | Di373R | Хочу все знать | 8 | 31-05-2008 23:44 |
|