Этот скрипт
Создаем файл 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
- создает папку с именем текущей даты по указаному пути (с проверкой наличия таковой)
- выгружает из указанного контейнера 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
Комментариев нет:
Отправить комментарий