пятница, 16 января 2015 г.

2012R2. AD. Выгрузка свойств пользователей включая членство в группах в csv

Этот скрипт

  • создает папку с именем текущей даты по  указаному пути (с проверкой наличия таковой)
  • выгружает из указанного контейнера AD свойства пользоватетей, включая членсто в группах
  • экспортирует результат в csv

Создаем файл get-users-info.ps1
# Задайте контейнер для анализа
import-module ActiveDirectory
$ADUserParams=@{
'Server' = 'XXX'
'Searchbase' = 'OU=XXX,DC=XXX,DC=XX'
'Searchscope'= 'Subtree'
'Filter' = '*'
'Properties' = '*'
}

$CurrentDate = Get-Date
if ($CurrentDate.Day -lt 10) {
$newday = "0" + $CurrentDate.Day
}
else {
$newday = $CurrentDate.Day
}
if ($CurrentDate.Month -lt 10) {
$newmonth = "0" + $CurrentDate.Month
}
else {
$newmonth = $CurrentDate.Month
}
$reportfolder = "\\XXX\ea_docs\it\ИТ\Reports\AD\" + [string]$CurrentDate.Year +"."+ [string]$newmonth +"."+ [string]$newday
if (!(Test-Path $reportfolder)) { New-Item -Path $reportfolder -ItemType "directory" }
$reportfilename = $reportfolder  + "\users.csv"

$SelectParams=@{
'Property' = 'SAMAccountname', 'CN', 'title', 'DisplayName', 'Description', 'EmailAddress', 'mobilephone',@{name='businesscategory';expression={$_.businesscategory -join '; '}}, 'office', 'officephone', 'state', 'streetaddress', 'city', 'employeeID', 'Employeenumber', 'enabled', 'lockedout', 'lastlogondate', 'badpwdcount', 'passwordlastset', 'created', @{Name='MemberofGroup'; e={ ($_.MemberOf | Get-AdGroup | sort name | foreach {$_.name}) -join ';'}}
}

get-aduser @ADUserParams | select-object @SelectParams  | export-csv $reportfilename -Encoding utf8

Создаем в планировщике задачу на запуск bat. Расписание по вкусу.
powershell.exe -file "\\...\get-info.ps1"
В этот-же батник  цепляю остальные скрипты, формирующие отчеты по AD.
Во всех скриптах одинаковый код по созданию $reportfolder



Комментариев нет:

Отправить комментарий