Powershell получает рекламные дни пользователя до истекшего пароля - PullRequest
0 голосов
/ 05 мая 2020

Я хочу экспортировать дни в просроченную информацию о пароле. Я кое-что пробовал. но удачи.

если срок действия пользователя уже истек, я хочу отображать его как «просроченный».

function accountExpiresToString($accountExpires) {
    if (($_.AccountExpires -eq 0) -or 
        ($_.AccountExpires -eq [int64]::MaxValue)) {
        "Never expires"
    }
    else {
        [datetime]::fromfiletime($accountExpires)
    }
}


$EndDate    = (Get-Date)


Get-ADUser -Identity "User" -Properties * | Select @{l="expiration_date";e={ accountExpiresToString($_.AccountExpires)}}, @{Name="RemainingDays";Expression={(new-timespan -start $EndDate -end ([datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed"))).Days}}

Мой желаемый результат:

name,expiration_date,remaining days
user01,never expires,15
user02,never expires,expired

1 Ответ

1 голос
/ 05 мая 2020

Не проверено, но я думаю, это должно сработать:

$today = (Get-Date).Date
$properties = 'PasswordExpired', 'PasswordNeverExpires', 'PasswordNotRequired', 
              'msDS-UserPasswordExpiryTimeComputed', 'EmailAddress', 'CanonicalName'
Get-ADUser -Filter * -Properties $properties |
ForEach-Object {
    $expire = $null
    if ($_.PasswordNotRequired)      { $remaining = 'Password not required' }
    elseif ($_.PasswordNeverExpires) { $remaining = 'Never expires' }
    elseif ($_.PasswordExpired)      { $remaining = 'Expired' }
    else { 
        $expire = [datetime]::FromFileTime($_.'msDS-UserPasswordExpiryTimeComputed')
        $remaining = ($expire.Date - $today).Days
    }
    [PsCustomObject]@{
        'Name'            = $_.SamAccountName  # or $_.Name if you prefer
        'Email_Address'   = $_.EmailAddress
        'OU'              = $_.CanonicalName -replace '(^[^/]+/)|(/[^/]+$)'
        'Expiration_Date' = $expire
        'Remaining_Days'  = $remaining
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...