Всем привет.
Выбирая из AD учетки которые не работали более 90 дней обнаружил интересную статистику по итогам. Как известно такой запрос можно сделать с помощью Get-ADUser или Search-ADAccount.
Пишем:
$d = (Get-Date).AddDays(-90)
$t = New-Timespan –Days 90
Get-ADUser -filter {(enabled -eq "false") -and (lastlogondate -lt $d)} -properties cn,lastlogondate | Select CN,LastLogonDate | measure
ИЛИ
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | sort Name | Select Name,LastLogonDate,DistinguishedName | measure
ИЛИ
Search-ADAccount –UsersOnly –AccountInactive –DateTime $d | sort Name | Select Name,LastLogonDate,DistinguishedName | measure
Так вот в первом запросе итог часто больший чем во втором и третьем. Почему так? А дело в том что Search-ADAccount всегда выбирает и те учетки по которым входа никогда не было, т.е. у которых поле lastlogondate содержит "пусто".
Поэтому для Get-ADUser надо добавить условие lastlogondate -notlike '*':
Get-ADUser -filter {(enabled -eq "false") -and ((lastlogondate -lt $d) -or (lastlogondate -notlike '*'))} -properties cn,lastlogondate | Select CN,LastLogonDate | measure
Выбирая из AD учетки которые не работали более 90 дней обнаружил интересную статистику по итогам. Как известно такой запрос можно сделать с помощью Get-ADUser или Search-ADAccount.
Пишем:
$d = (Get-Date).AddDays(-90)
$t = New-Timespan –Days 90
Get-ADUser -filter {(enabled -eq "false") -and (lastlogondate -lt $d)} -properties cn,lastlogondate | Select CN,LastLogonDate | measure
ИЛИ
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $t | sort Name | Select Name,LastLogonDate,DistinguishedName | measure
ИЛИ
Search-ADAccount –UsersOnly –AccountInactive –DateTime $d | sort Name | Select Name,LastLogonDate,DistinguishedName | measure
Так вот в первом запросе итог часто больший чем во втором и третьем. Почему так? А дело в том что Search-ADAccount всегда выбирает и те учетки по которым входа никогда не было, т.е. у которых поле lastlogondate содержит "пусто".
Поэтому для Get-ADUser надо добавить условие lastlogondate -notlike '*':
Get-ADUser -filter {(enabled -eq "false") -and ((lastlogondate -lt $d) -or (lastlogondate -notlike '*'))} -properties cn,lastlogondate | Select CN,LastLogonDate | measure
На сегодня все.
2 comments:
Search-ADAccount не сочетает –TimeSpan и -Searchbase ???
Search-ADAccount не умеет выбирать все свойства, по этому передаем найденное в Get-ADUser, который это умеет.
Post a Comment
А что вы думаете по этому поводу?