Показать полную графическую версию : Проверка остатка дней до закрытия учетной записи
flamebornet
13-03-2018, 16:37
всем привет! не могу сообразить, как вывести учетки, у которых AccountExpirationDate заканчивается через 3 дня. То есть, за 3 дня до закрытия уз должно быть уведомления. Не могу сообразить как сделать выборку
get-aduser -SearchBase "...." -filter * -properties AccountExpirationDate | where {($today - ($_.AccountExpirationDate)) -eq '3' } | select samaccountname
где today - $today=Get-date
как правильно это сформулировать для поша?
Molchune
13-03-2018, 17:13
Наверное как то так.
$today= (Get-Date).AddDays(+3)
get-aduser -filter * -properties AccountExpirationDate | Select-Object samaccountname, AccountExpirationDate | where {($_.AccountExpirationDate) -match $today.Date }
Единственный ньюанс, при дате AccountExpirationDate например сегодня, в свойствах, стоит дата будущего дня.
Ну то есть если в свойствах пользователя поставили дату 13 марта, то AccountExpirationDate будет 14 марта, имейте это ввиду. Если надо предупреждать з атри дня, то надо делать так
$today= (Get-Date).AddDays(+4)
flamebornet
13-03-2018, 17:31
Наверное как то так. »
благодарю, а конструкция -match $today.Date что означает?
тут получается, что он выбирает , где $_.AccountExpirationDate содержит сегодняшнюю дату +4 дня вперед?
к примеру, есть testuser1 с датой 13 марта 2018
но скрипт его не выгружает
напрмиер, where {($_.AccountExpirationDate -eq (Get-date).adddays(-3) ) } по идее бы должно работать, здесь дата истекания равно дата сегодня -3 дня. но оно сравнивает видимо еще по веремени. а время у дат закрытия 00,00
flamebornet
14-03-2018, 08:52
о, все! ставил дату не верно хD
если кому еще интересно - вот еще вариант
cls
Get-Variable | Remove-Variable -Confirm:0 -ErrorAction SilentlyContinue
$now = Get-Date
$users = Get-ADUser -SearchBase "..." -filter {(name -like "*") -and (Enabled -eq $true)} -Properties AccountExpirationDate,Enabled
$users | % {
$AED = $_.AccountExpirationDate
$diffD = $AED - $now
$raz = $diffD.Days
$SAM = $_.SamAccountName
If ($raz -eq 3){
$SAM
}
}
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.