2013-02-25 5 views
0

Я использую следующий Однострочник, чтобы получить список пользователей, которые не отключены, и чьи счета истекают, с некоторыми свойствами:Powershell скрипт игнорирует фильтр

Get-ADUser -Filter {(Enabled -eq $true) -and (accountExpires -ne 0)} -Properties name, mail, c, physicalDeliveryOfficeName, telephoneNumber, manager, title, description | select-object name, mail, c, physicalDeliveryOfficeName, telephoneNumber, manager, title, description 

Он работает, за исключением того, что хватает все в моем домене, а не только те, чьи аккаунты истекают, как указано. Почему он игнорирует часть сценария accountExpires?

ответ

2

Причиной неправильного результата является ваше неправильное предположение, что каждая неисчерпаемая учетная запись имеет значение 0 в атрибуте accountExpires. В моих тестах применяется только администратор. Каждый другой счет был [int64]::MaxValue там - так что вам нужно, чтобы включить это в фильтре:

$Max = [int64]::MaxValue 
Get-ADUser -Filter { 
    (Enabled -eq $true) -and 
    (accountExpires -ne 0) -and 
    (accountExpires -ne $Max) 
} 
+0

Спасибо, кроме этого хватает все счета, которые делают истекает; напротив того, что я хочу. Есть ли способ отменить это? – Pickle

+0

Реверсирование должно быть простым путем реверсирования логики фильтра '...) -and ((acountExpires -eq 0) -or (accountExpires -eq $ Max))' – BartekB

Смежные вопросы