• PowerShell - Аудит использования парольной политики

    imageПродолжая тему анализа доменных учетных записей пользователей на предмет их соответствия действующей парольной политике предлагаю ещё один вариант скрипта из заметки  PowerShell – Поиск пользователей домена с устаревшими паролями. В текущем варианте используется библиотека AD для PowerShell 2.0

    В указанном примере в конкретном OU выбираются все действующие учетные записи пользователей, за исключением сервисных, для которых значение атрибута SamAccountName начинается с символов “s-” и выполняется сравнение даты последней смены пароля с максимально возможным значением (текущая дата минус 185 дней) 

    Import-Module ActiveDirectory

    $SearchOU = "OU=Domain Users,DC=mydom,DC=com"

    $PWAgeDaysLimit = 185

     

    $Users = Get-ADUser -Filter {(Enabled -eq $True) -AND (SamAccountName -notlike "s-*")} `

    -SearchBase $SearchOU `

    -Properties CN, SamAccountName, PasswordLastSet, PasswordNeverExpires, CannotChangePassword, LastLogonDate

     

    $OldestDate = (Get-Date).AddDays(-$PWAgeDaysLimit)

    $UsersOldPWD = $Users | Where-Object {$_.PasswordLastSet -le $OldestDate}

    $UsersOldPWD | Select `

    @{label="User Full Name";expression={$_.CN}},`

    @{label="SamAccountName";expression={$_.SamAccountName}},`

    @{label="PWD Last Set";expression={$_.PasswordLastSet}},`

    @{label="PWD Never Expirest";expression={$_.PasswordNeverExpires}},`

    @{label="PWD Cannot Change";expression={$_.CannotChangePassword}},`

    @{label="Last Logon";expression={$_.LastLogonDate}}`

    | Sort -Property "PWD Last Set"`

    | Format-Table  –AutoSize

     

    Write-Host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

    write-host "Total user accounts in OU: " $Users.Count

    write-host "Users with passwords not changed in" $PWAgeDaysLimit "days: " $UsersOldPWD.Count

    Write-Host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

  • PowerShell – Поддержание групп безопасности политики репликации паролей RODC в актуальном состоянии

    imageПри использовании контроллеров домена «только на чтение» (RODC) для каждого RODC должна быть определена доменная группа безопасности, в которую входят учетные записи пользователей, чьи учетные данные могут реплицироваться на этот RODC. В крупной географически распределённой инфраструктуре с большим количеством контроллеров домена задача поддержания состава этих групп безопасности «в рукопашную» может стать проблемой, особенно если учесть «человеческий фактор», когда например, в каком-то из удалённых подразделений местный администратор создаёт новую учетную запись доменного пользователя, а включить в группу репликации паролей эту запись забывает. Для того чтобы исключить в данном случае «человеческий фактор», можно автоматизировать данный процесс с помощью PowerShell. Рассмотрим пример скрипта, который можно включить в планировщик задач на контроллере домена на периодическое выполнение.

    Читать далее...

  • PowerShell – Поддержание группы безопасности для Password Settings objects (PSOs) в актуальном состоянии

    imageПо мотивам применения Password Settings objects (PSOs) с нацеливанием объектов PSO на доменные группы безопасности встаёт вопрос о поддержании состава этих групп в актуальном состоянии. В моём окружении все учетные записи, находящиеся в определённом OU, должны быть включены в доменную группу безопасности, к которой применяется PSO, что само по себе уже есть критерий, по которому можно автоматизировать задачу поддержания группы в актуальном состоянии с помощью PowerShell. Представляю соответствующий скрипт.

    Читать далее...