Автор Тема: PowerShell - скрипт экспорта учетных записей AD и их аттрибутов в CSV  (Прочитано 2595 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sysadmin

  • Administrator
  • сисадми́н
  • *****
  • Сообщений: 8746
  • Karma: +121/-0
  • Пол: Мужской
    • Share Post
    • сайт для сис. админов и не только...
Экспорт учетных записей из АД и их атрибутов можно выполнить используя PS, процедура в принципе достаточно простая, ранее для этих целей использовал dsquery, csvde и даже c#, теперь для этих целей решил попробовать PowerShell, итак сам скрипт:

# Author Yevgeniy Goncharov aka xck
# http://sys-admin.kz

Import-Module ActiveDirectory

# Ou Array list
$OUArray = @("OU=Users,OU=Office1,OU=Company,DC=domain,DC=local", "OU=Users,OU=Office2,OU=Company,DC=domain,DC=local", "OU=Users,OU=Office3,OU=Company,DC=domain,DC=local")

# String workout
$separator = "OU=Users,OU=", ",OU=Company,DC=domain,DC=local"
$option = [System.StringSplitOptions]::RemoveEmptyEntries

# Loop OUs
for ($i=0; $i -lt $OUArray.length; $i++) {
   
    # Get current date, mun, hoours... and miliseconds. If need add to file name ))
    $date = get-date -f HH-mm-ss.fff_dd-MM-yyyy
   
    # Split
    $ou = $OUArray[$i]
    $ou = $ou.split($separator,$option)
   
    # File name
    $csvfile = "c:\tmp\Users_" + $ou + ".csv"
   
# Get users data
    Get-ADUser -Filter * -SearchBase $OUArray[$i] -Properties * |
   
    Select-Object @{Label = "Имя сотрудника";Expression = {$_.DisplayName}},
    @{Label = "Должность";Expression = {$_.Title}},
    @{Label = "Компания";Expression = {$_.Company}},
    @{Label = "Департамент";Expression = {$_.Department}},
    @{Label = "Офис";Expression = {$_.Office}},
    @{Label = "Телефон";Expression = {$_.telephoneNumber}},
    @{Label = "Email";Expression = {$_.Mail}},
    @{Label = "Руководитель";Expression = {%{(Get-AdUser $_.Manager -server $ADServer -Properties DisplayName).DisplayName}}},
    @{Label = "Статус";Expression = {if (($_.Enabled -eq 'TRUE')  ) {'Enabled'} Else {'Disabled'}}}, # the 'if statement# replaces $_.Enabled
    @{Label = "Последний раз был в системе";Expression = {$_.lastlogondate}},
    @{Label = "Расположение (OU)";Expression = {$ou}} |
   
     Sort-Object -Property Name | Export-Csv -path $csvfile -encoding unicode

}

Кратоке описание:
$OUArray - массив с OU'шками от кад необходимо экспортировать данные по учетным записям
$OUArray[$i] - элемент масиива, то бишь OU
$ou - путем сплита строк получаем наименования типа Office1, Office2, Office3, используется для наименования файлов, добавления колонки "Расположение (OU)"

Далее вытаскиваются все данные по юзерам из указанных OU, фильтруются по аттрибутам, сохраняются в CSV файл.
« Последнее редактирование: Январь 14, 2016, 10:27:11 am от sysadmin »
дорогу осилит идущий...
......................
MCP, MCTS, RHCSA
......................
also aka xck...

 


xx
Подскажите программу для контроля учетных записей.

Автор VladSH

1 Ответов
874 Просмотров
Последний ответ Июнь 09, 2017, 11:48:47 pm
от NiX
xx
Поиск залоченных (Locked-Out) учетных записей в AD

Автор sysadmin

0 Ответов
2859 Просмотров
Последний ответ Июль 25, 2011, 05:47:30 pm
от sysadmin
xx
Поиск в AD неактивных пользователей (учетных записей)

Автор sysadmin

0 Ответов
1441 Просмотров
Последний ответ Июнь 08, 2016, 10:43:24 am
от sysadmin
xx
Массовое изменение свойств учетных записей пользователей

Автор sysadmin

0 Ответов
2684 Просмотров
Последний ответ Апрель 05, 2010, 01:24:58 pm
от sysadmin