Если пользовательское свойство accountExpires
равно 0 или 9223372036854775807, срок действия учетной записи никогда не истекает. Чтобы получить список учетных записей, срок действия которых истекает через определенное количество дней, вы должны сделать:
$refDate = (Get-Date).AddDays(30)
$expiringUsers = Get-ADUser -Filter 'Enabled -eq $true' -SearchBase "CN=Users,DC=mydomain,DC=de" -Properties AccountExpirationDate, accountExpires |
Where-Object {($_.accountExpires -gt 0 -and $_.accountExpires -ne 9223372036854775807) -and ($_.AccountExpirationDate -le $refDate)} |
Select-Object Name, DistinguishedName, AccountExpirationDate
Далее вам необходимо отправить это администратору по электронной почте.
Существуют различные способы делая это, конечно, приведенный ниже пример отправляет результат в виде CSV-вложения.
# don't send mail if there are no expiring users found
if ($expiringUsers.Count) {
# write the results to csv file
$outFile = Join-Path -Path $env:TEMP -ChildPath ('{0:yyyy-MM-dd}_ExpiringUsers.csv' -f (Get-Date))
$expiringUsers | Export-Csv -Path $outFile -NoTypeInformation
# use splatting for cmdlets that take a lot of parameters
$mailParams = @{
SmtpServer = 'smtp.fabrikam.com'
From = 'troi@fabrikam.com'
To = 'admin@fabrikam.com'
Subject = 'Expiring user accounts'
Body = 'Please find the list of expiring user accounts in the attachment'
Attachments = $outFile
# See https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/send-mailmessage
# for more parameters you might want to use
}
Send-Mailmessage @mailParams
Write-Host "$($expiringUsers.Count) user accounts are set to expire within the next 30 days. An email has been sent."
}
else {
Write-Host 'No user accounts are set to expire within the next 30 days'
}
Get-ADUser
по умолчанию возвращает следующие свойства: DistinguishedName
, Enabled
, GivenName
, Name
ObjectClass
, ObjectGUID
, SamAccountName
, SID
, Surname
и UserPrincipalName
. Свойство AccountExpirationDate
- это значение свойства accountExpires
, конвертированное в местное время.