Войти

Показать полную графическую версию : Блокировка\разблокировка учётных записей в Active Directory


NV_NV
01-03-2018, 17:51
Помогите с написанием скрипта.
Проблема заключается в следующем.
На новом месте работы от прошлого админа достался скрипт на блокировку учёток в AD по времени простоя.
Сейчас руководство ставит задачу - разработать скрипт автоматического отключения и включения учетной записи согласно графика отпусков (сам график ручками в .csv файл загонять буду).
Причина автоматизации - пользователей более тысячи человек.
AD крутится на 2008 R2 сервере

Сам скрипт:
$LogFolder = "C:\Scripts\Disable\Log\"
$LogFile = $LogFolder + "Disable"

$OU = "OU=Users,OU=RU,DC=----,DC=----"

$UnusedDays = 3

$CurrentDate = Get-Date -format yyyy_MM_dd
$CurrentTime = Get-Date -format HH_MM_ss

$DateLastActive = (Get-Date) - (new-timespan -days $UnusedDays)
$DateLastActiveTimeStamp = (Get-Date $DateLastActive).ToFileTime()

$LogFile = $LogFile + "_Date_" + $CurrentDate + "_Time_" + $CurrentTime + ".csv"

$ADUsersForWork = Get-ADUser -Filter { (((lastLogonTimestamp -lt $DateLastActiveTimeStamp) -or (-not (lastLogonTimestamp -like "*"))) -and (whenCreated -lt $DateLastActive)) } -SearchBase "$OU" -Prop DisplayName,DistinguishedName,whenCreated,lastLogonTimestamp,lastLogonTimestamp,Description
echo $ADUsersForWork | Select DisplayName,DistinguishedName,whenCreated,lastLogonTimestamp,Description,@{n="lastLogonDate";e={[datetime]::FromFileTime($_.lastLogonTimestamp)}} | Out-File $LogFile

ForEach($usr In $ADUsersForWork) {
# disable user
dsmod user $usr.DistinguishedName -disabled yes
}




© OSzone.net 2001-2012