PowerShell - Изменение атрибутов всех пользователей AD из exel

Ответить
Аватара пользователя
admt

PowerShell - Изменение атрибутов всех пользователей AD из exel

Сообщение admt »

Имеется домен и 4000 пользователей (в домен входят пользователи нескольких дочерних организаций), поставили задачу у всех пользователей изменить атрибуты (если они стоят) и добавить (если их нету) такие как company,department,title,telephoneNumber,mail. Данные выгружают из 1C отдел кадров в Exel файле, типа Организация,ФИО,Должность,Отдел,Номер телефона,Электронный адрес.



сделал из этого файлика csv вида:

company,department,title,displayName,telephoneNumber,mail

ООО Компания,Кадры,Специалист,Петров Иван,+79121111111,petrov@company.ru



Подскажите как можно решить проблему. Помогите с PowerShell т.к. не очень знаю его, но так полагаю что это единственный нормальный способ это сделать.



Спасибо.
Аватара пользователя
exo

Re: PowerShell - Изменение атрибутов всех пользователей AD из exel

Сообщение exo »

можно попробовать
dsmod user
или
Set-ADUser
подсунуть ваш csv.

я когда давным давно делал... но немного по другому. не очень красиво, но зато получилось:

я написал команду в Excel для dsmod user, где в полях стояли ваши значения - а потом просто растянул команду на 70 пользователей )

Далее копи-паст всех команд и запуск в командной строке.
Аватара пользователя
admt

Re: PowerShell - Изменение атрибутов всех пользователей AD из exel

Сообщение admt »

Пробовал вот таким вот скриптом но не получаеться

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!"

}
Аватара пользователя
megaloman

Re: PowerShell - Изменение атрибутов всех пользователей AD из exel

Сообщение megaloman »

Не берусь предоставить готовое решение - не на чем отладить, да и некогда. ИМХО, надо задачу ставить по другому: у Вас есть Excel-файл, не надо его во что-то преобразовывать, напишите для него макрос. И PowerShell тут не при чём. Как пример прикрепляю Excel - файл, который использую. Один макрос создаёт учетные записи в домене по данным на одном листе, второй - меняет некоторые атрибуты учетки из списка на другом листе. Это не готовое решение для Вашего случая, это направление, где его можно найти.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»