![]() |
Ldapquery - сравнение двух дат
Всем привет!
Пытаюсь с помощью ldapquery выдернуть все учетные записи из ActiveDirectory с несколькими условиями: 1. Учетная запись включена 2. Дата из атрибута ExtensionAttribute7 должна быть позднее, чем дата в ExtensionAttribute15. В Extension атрибутах даты в формате dd.mm.yyyy. Соответственно, если в ExtensionAttribute7 стоит дата позже, чем дата в ExtensionAttribute15, то эти учетные записи и должны вернуться. Но если просто написать >= Код:
(&(objectCategory=person)(objectClass=user) (ExtensionAttribute7>=ExtensionAttribute15) (!(userAccountControl:1.2.840.113556.1.4.803:=2))) А если <= Код:
(&(objectCategory=person)(objectClass=user) (ExtensionAttribute7<=ExtensionAttribute15) (!(userAccountControl:1.2.840.113556.1.4.803:=2))) Помогите, пожалуйста, понять логику ldapquery при работе с датами и написать правильный запрос. Запросы запускаю через оснастку "Пользователи и компьютеры". Может дата на самом деле - это просто строка, и нужно как-то перевести строку в дату? Если да, то как это сделать? |
Powershell
Код:
Get-ADUser -filter "enabled -eq 'True'" -Properties ExtensionAttribute7,ExtensionAttribute15 |? {($_.ExtensionAttribute7 -as [datetime]) -gt ($_.ExtensionAttribute15 -as [datetime])} |select name,samaccountname,ExtensionAttribute15,ExtensionAttribute7 |
Цитата:
Спасибо, это работает. А как такое можно сделать через ldapquery без powershell? |
Полагаю, что никак.
|
могут быть нюансы с конвертацией в datetime в зависимости от системного языка, поэтому надёжнее [Datetime]::ParseExact() с указанием cultureinfo ru-RU
|
Время: 14:01. |
Время: 14:01.
© OSzone.net 2001-