![]() |
Проверка остатка дней до закрытия учетной записи
всем привет! не могу сообразить, как вывести учетки, у которых AccountExpirationDate заканчивается через 3 дня. То есть, за 3 дня до закрытия уз должно быть уведомления. Не могу сообразить как сделать выборку
get-aduser -SearchBase "...." -filter * -properties AccountExpirationDate | where {($today - ($_.AccountExpirationDate)) -eq '3' } | select samaccountname где today - $today=Get-date как правильно это сформулировать для поша? |
Наверное как то так.
Код:
$today= (Get-Date).AddDays(+3) Ну то есть если в свойствах пользователя поставили дату 13 марта, то AccountExpirationDate будет 14 марта, имейте это ввиду. Если надо предупреждать з атри дня, то надо делать так Код:
$today= (Get-Date).AddDays(+4) |
Цитата:
тут получается, что он выбирает , где $_.AccountExpirationDate содержит сегодняшнюю дату +4 дня вперед? к примеру, есть testuser1 с датой 13 марта 2018 но скрипт его не выгружает напрмиер, where {($_.AccountExpirationDate -eq (Get-date).adddays(-3) ) } по идее бы должно работать, здесь дата истекания равно дата сегодня -3 дня. но оно сравнивает видимо еще по веремени. а время у дат закрытия 00,00 |
о, все! ставил дату не верно х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 } } |
Время: 16:53. |
Время: 16:53.
© OSzone.net 2001-