none
массовое изменение св в AD RRS feed

  • Вопрос

  • Всем привет.

    Настала пора навести порядок в св-вах пользователей AD. Есть excel файл, там есть столбцы ФИО, тел, должность, email.... Нужно занести эти данные в св-ва пользователей AD.

    Помогите скрипт написать.

    Я получил логины этих пользователей, а как загрузить нужные св-ва в AD, через csvde???


    MCITP:EA. MCSA. MCTS:Exchange Configuring

    26 ноября 2012 г. 10:14

Ответы

  • входные файлы:

    ExportAD.csv:

    Name,Department,Title
    Иванова Светлана Васильевна,аппарат управления,бухгалтер

    PhoneExport.csv

    Name,OfficePhone,MobilePhone,HomePhone
    Петрова Ольга Ивановна,707,+79121111111,713111

    #Получаем данные по сотрудникам из Active Directory
    $AdDB = Get-ADUser -Filter * | Where-Object {$_.Enabled -eq $True}| Select-Object Name, SamAccountName 
    #Всасываем данные по должностям и отделам сотрудников из csv 
    #$UsrDB = Import-Csv "\\dc1\public\V8\Exchange\ActiveDirectory\ExportAD.csv" | select Name,Department,Title -unique
    #Всасываем данные по телефонам сотрудников
    $UsrDB = Import-Csv "d:\scripts\phoneexport.csv" | select Name,OfficePhone,MobilePhone,HomePhone -unique
    ForEach ($aduser in $addb) {
    
    $UsrDb | ForEach-Object {
    
    if ($_.Name -eq $Aduser.Name)	
    {
    
    	#Выполнение операции "Set" над целевыми объектами "Телефоны" сотрудников  
    	Set-ADUser -Identity $Aduser.SamAccountName -OfficePhone $_.OfficePhone -MobilePhone $_.MobilePhone  -HomePhone $_.HomePhone 
    		Write-Host " $($Aduser.Name) $($_.OfficePhone), $($_.MobilePhone), $($_.HomePhone)"
    
    	
    
    #Выполнение операции "Set" над целевыми объектами "Отдел" и "Должность" сотрудников
    #Set-ADUser -Identity $Aduser.SamAccountName  -Department $_.Department -Title $_.Title
    #	Write-Host " $($Aduser.Name) , $($_.Department), $($_.Title) "
    		
    	
    
    
    			}
    
    		}
    
    	}
    	
    
    


    MCP,MCTS
    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    • Предложено в качестве ответа ILYA [ sie ] SazonovModerator 27 декабря 2012 г. 7:30
    • Помечено в качестве ответа KazunEditor 3 января 2013 г. 11:31
    27 декабря 2012 г. 6:49

Все ответы

  • а через PowerShell не подойдет?
    26 ноября 2012 г. 22:00
  • Укажите формат входного файла (какие столбцы)
    29 ноября 2012 г. 7:20
  • Укажите формат файла, напишу скрипт для Powershell. На PoSH красивей и быстрее.
    29 ноября 2012 г. 12:42
  • В смысле формат???? Поля в таблице excel??????


    MCITP:EA. MCSA. MCTS:Exchange Configuring

    26 декабря 2012 г. 10:40
  • как данные расположены в файле? Хочется видеть что-то в духе
    логин;свойство1;свойство2;..;свойствоХ

    сценарий будет иметь примерно такой вид

    import-module activedirectory
    $header = "login","prop1","prop2"
    $file = import-csv "путь к файлу" -delimiter ';' -header $header
    foreach ($user in $file)
    {
    set-aduser $User.login -property1 $user.prop1 -property2 $user.prop2 -confirm:$false 
    }

    26 декабря 2012 г. 13:36
  • ФИО, Email, Тел.


    MCITP:EA. MCSA. MCTS:Exchange Configuring

    27 декабря 2012 г. 6:18
  • входные файлы:

    ExportAD.csv:

    Name,Department,Title
    Иванова Светлана Васильевна,аппарат управления,бухгалтер

    PhoneExport.csv

    Name,OfficePhone,MobilePhone,HomePhone
    Петрова Ольга Ивановна,707,+79121111111,713111

    #Получаем данные по сотрудникам из Active Directory
    $AdDB = Get-ADUser -Filter * | Where-Object {$_.Enabled -eq $True}| Select-Object Name, SamAccountName 
    #Всасываем данные по должностям и отделам сотрудников из csv 
    #$UsrDB = Import-Csv "\\dc1\public\V8\Exchange\ActiveDirectory\ExportAD.csv" | select Name,Department,Title -unique
    #Всасываем данные по телефонам сотрудников
    $UsrDB = Import-Csv "d:\scripts\phoneexport.csv" | select Name,OfficePhone,MobilePhone,HomePhone -unique
    ForEach ($aduser in $addb) {
    
    $UsrDb | ForEach-Object {
    
    if ($_.Name -eq $Aduser.Name)	
    {
    
    	#Выполнение операции "Set" над целевыми объектами "Телефоны" сотрудников  
    	Set-ADUser -Identity $Aduser.SamAccountName -OfficePhone $_.OfficePhone -MobilePhone $_.MobilePhone  -HomePhone $_.HomePhone 
    		Write-Host " $($Aduser.Name) $($_.OfficePhone), $($_.MobilePhone), $($_.HomePhone)"
    
    	
    
    #Выполнение операции "Set" над целевыми объектами "Отдел" и "Должность" сотрудников
    #Set-ADUser -Identity $Aduser.SamAccountName  -Department $_.Department -Title $_.Title
    #	Write-Host " $($Aduser.Name) , $($_.Department), $($_.Title) "
    		
    	
    
    
    			}
    
    		}
    
    	}
    	
    
    


    MCP,MCTS
    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    • Предложено в качестве ответа ILYA [ sie ] SazonovModerator 27 декабря 2012 г. 7:30
    • Помечено в качестве ответа KazunEditor 3 января 2013 г. 11:31
    27 декабря 2012 г. 6:49