![]() |
Блокировка\разблокировка учётных записей в Active Directory
Помогите с написанием скрипта.
Проблема заключается в следующем. На новом месте работы от прошлого админа достался скрипт на блокировку учёток в 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 } |
Время: 03:03. |
Время: 03:03.
© OSzone.net 2001-